From: Jonathan Kirwan
Subject: Re: Keypad keys per IO pin
References: <email@example.com> <firstname.lastname@example.org> <email@example.com> <firstname.lastname@example.org> <email@example.com>
X-Newsreader: Forte Agent 1.92/32.572
NNTP-Posting-Date: Wed, 15 Jan 2003 20:06:30 GMT
Organization: AT&T Broadband
Date: Wed, 15 Jan 2003 20:06:30 GMT
On Wed, 15 Jan 2003 08:04:07 -0500, "NCS Radio"
>Thanks for the analysis! That was great reading!
Thanks for the site. It cast my mind off in a fun direction.
>What is the "simplex" topology you refer to where you can read 15 switches
>w/6 I/O lines?
A simplex is used in a precise way in algebraic topology. A
line segment is 1-dim, a triangle is 2-dim, a tetrahedron is
3-dim, and so on.
However, that's more than I was trying to say about it.
Actually, I meant the 2-d "shadow" of one of these N-dim shapes.
In 2-D, it's really easy. Just take any polygon and connect all
the vertices together to all the other vertices. For a 4-sided
polygon (a square will do), you have to cross-connect the
opposing corners so you have six lines connecting four vertices.
(This simplex square is just a shadow image of the tetrahedron.
To try your mind at it, just to be sure you "see" this, first
draw a triangle and then place a "dot" in the center of it. Now
draw a line from that center dot to each of the three vertices
of the triangle. That's one kind of shadow of the tetrahedron.
Now draw a square and cross connect the opposing corners, as I
mentioned above. Now try and "see" that this simplex square is
actually the same tetrahedron just rotated so that one of the
diagonals is a "behind edge" and the other diagonal is a "front
edge" oriented precisely. If you do this, I think you'll see
that both of these are just two special shadows of the same kind
of 3-d object.)
Anyway, getting back to your question, take those same 5 I/O
lines. Draw a pentagon and cross connect all the vertices so
that you have a "star" in side it. This gives you a total of 10
lines. Now imagine that each of these lines is a connected
switch, instead. That's 10 switches. Connect the I/O lines to
the vertices. Now, you can scan the switches by activating one
and only one I/O line as an output, one at a time, and "seeing"
which of the other four inputs show a connection.
With 6 I/O lines, it's a hexagon with the inscribed lines, which
is six switches around the perimeter and another nine switches
on the inscribed lines, for a total of up to 15 switches with 6
I/O lines. You can actually detect some combinations of two
switches being depressed this way. But it takes some effort to
maximize that ability.
You get (N^2-N)/2 switches with N I/O lines, this way, with no
extra parts. You can use the same topology, with two oppositely
arranged LEDs along each line or edge and with small valued
resistors going from each I/O line to a vertex in order to
selectively control up to (N^2-N) LEDs, as well. Typically,
this is good if you only need one of them ON at a time. But you
can do multiplexing tricks along with enabling multiple edges at
a time to get some interesting effects.