Go Down

Topic: fake-keyboard > multiplexers (Read 892 times) previous topic - next topic


Hello !

For a project, i need to build a "fake-keyboard" : to send "keypressed" messages, sequentially. After some searches, i only found complex solutions that focus on the protocol part, and simulate the messages. So, i opened an old keyboard (USB) and found that you could "mechanically" produce the "keypressed" messages by connecting a specific row and a column of the push-buttons matrix.

This made me think that with one multiplexer for the row, and one for the column, we can select any key (after some observations of the matrix), and by connecting both "common in/out" pin of the multiplexers, produce the connection...

...but it doesn't work. I made many different tests, and can't fix it. I'm using 4067B 16-channels multiplexer and i tried to use them in another project, but it doesn't work too. Even if I understand "theoritically" how it works.

I'm not an electronician at all, and maybe it's a resistor problem : where to put them and which value ? Between "vss" and arduino's "ground" ? Or the "enable"/"inhibit" pin, connected to + or ground ? Do I need to add a "pull resistor" ???

Please help me !


Oct 19, 2009, 05:29 pm Last Edit: Oct 19, 2009, 05:41 pm by RIDDICK Reason: 1
i like the 4067 mux/demux... works fine...

did u read the datasheet (family + package)?

did u connect the "INHIBIT" pin to 0V (VSS)?
when i connect the "INHIBIT" pin to 0V it works...

resistors r not required...

between pin 1 and 0V u could put a volt meter and
at pin 2+12+15 0V and at pin 3+24 5V...
then u can play with pins 10+11+13+14 and c how the volt meter shows different numbers...



thanks for the reply !...
i made the tests you suggested and discovered that one of the pin controlling the 4-bit address was dead and kept always to high-state. So typical....
I'm happy that this solution works because i find it easier than using transistor as relays on each key.
And now i'm sure that "enable/inhibit" has to be connected to ground... i'm french and sometimes it's not very easy to deal with english technical datasheets !
I hope your advices will help me to solve the problems i have with another project using also 4067 multiplexers... In this project I have 7 multiplexers working in parallel... anyway, it's always the same problem : on the breadboard it's not easy to hook up so many pins, and when you solder your project every mistake is a long job to fix...
many thanks !


and when you solder your project every mistake is a long job to fix.

But that's good, it means you have a great reason to learn how to do it properly first time.

Imagine if all you mistakes had to be corrected by laying out a new PCB every time. That's the position of professional engineers.  ;)

Go Up