Go Down

Topic: Controlling switch matrix (Read 1 time) previous topic - next topic

MikMo

Hi all Arduinians

I am planning a project where i need to control a switch matrix from Arduino. I'm not reading the switches, i actually want Arduino to simulate keypresses on a keyboard thats build as a matrx with 6 rows and 7 coloumns.

So somehow i need to short the relevant row / coloumn pair for the different switches.

How can i control all the switches ?
What extra components, like shift registers or whatever, do i need ?

Thanks

MikMo

http://ww.mikmo.dk

tkbyd

Are you SURE you want to take this on? It will not be easy!!! At least not taking your description of what you want to do at face value. There's probably a way to get your result, but not by the "obvious" route.

a) Do you have access to the 13 wires (6+7) by which the matrix is connected to it's host?

b) If you REALLY want to EXACTLY mimic "fingers on keys", you'll need to be able to connect 84 wires to the places on the matrix keyboard where it's SPST switch connects to the cirsuit board.

Those 84 wires could be taken to 84 opto-osolators which could be Arudino controlled, and act like "fingers on buttons".

MikMo

Thanks for the answer.

Yes i have acces to the 13 points on the edge of a circuit board.

I only need to simulate one key being pressed at at time. There are 40 keys tortal on the keyboard. So 2 of the 6 * 7 connections are not used.

How do you arrive at the number 84 ?

tkbyd

84: Each switch has two contacts!

I thought Google was going to let me down... shock! horror! Took ages to find....

http://www.rentron.com/serkey16.htm

... where you'll find matrix keypads explained.

Cheater

There are two approaches.

The simple but messy 'emulate pressing the button' method.
And the neat and tidy 'manipulate the matrix directly' method.

To manipulate the matrix you'll need to detect which row is being scanned and then if the row is the row your looking for, you need to flicker the column's line.
That'll use the least pins and but the code is trickier.

Go Up