Re: Artificially extend switch closure time



On 2009-01-28, Ben Bradley <ben_u_bradley@xxxxxxxxxxx> wrote:

There's still the problem of detecting the switch closures in a
matrix. I see no non-scanning way to read all the switches. The best
bet is a microcontroller scanning at an adequately fast rate. The
fastest way I see is to activate all columns and as soon as a row is
activated do a binary search with the columns to find which one causes
the row activation.

all the rows have 10K pull ups
all the colums have 10K pull downs

each rows goes the + input of a comparitor
all the - inputs of these comparitors go to 3/4 Vcc

each column goes the - input of a comparitor
all the + inputs of these comparitors go to 1/4 Vcc

each comparitor feeds a monostable

each monostable drives a switch (eg 1/4 of a "4066") between the
"matrix controller" row or column inputs which corresponds to the
matrix conneection at the other end of the circuit the

rows like this

vcc
| .-------- matrix
[10K] __|___ controller
| |\ __________ | | | row(n) inoput
matrix--+------|-\ | | | / |
row(n) | >----|monostable|----|.../ |
3/4Vcc---|+/ |__________| | / |
|/ |__|___| 1/4 4066
|
|
`---- common point
shared by all rows and columns


columns like this

.-------- matrix
__|___ controller
|\ __________ | | | col(n) inoput
1/4Vcc ------|-\ | | | / |
| >----|monostable|----|.../ |
matrix -----+--|+/ |__________| | / |
column(n) | |/ |__|___| 1/4 4066
[10k] |
| |
gnd `---- common point
shared by all rows and columns


1/4 and 3/4 vcc can be taps off the same voltage divider.


.