Go Down

Topic: 4x4 key matrix, voltage drop issue? (Read 604 times) previous topic - next topic


Apr 30, 2013, 01:28 am Last Edit: Apr 30, 2013, 01:31 am by sylphid707 Reason: 1
Hey guys, I hav a 4x4 key matrix (the one in sparkfun that looks like a monome!) that I'm using with my project.

I have 2 of the digital pins from Arduino sending out select bits for the 4 rows to a sn74ls155 1-to-4 demux chip. the output of the demux chips are inverted, so i have the outputs of the demux connected to an inverter. The power source is unlimited, so basically the inverter is what's sourcing the current.

The 4 outputs of the inverter go into rows of the key matrix, then at the end, there is a pull-down resistor, because there seems to be excess voltage floating around the LS165 chip (PISO 8-bit register), which detects the key presses. 3 digital pins are used from the Arduino to control the 165 chip.

The problem is, the first 3 rows of the key matrix do not have enough voltage, for some reason. The last row, which is the closest to the output pins of the key matrix, is working fine and detects presses very well.

When the keys are not pressed, the voltage at the inputs of the 165 register is around 0.3~0.4 V.
When the keys are pressed, these are the following voltages:
Last row:
V on = 2.2 V
V on = 0.7 V
V on = 0.9V
V on = 1.5 V
so basically only the last row detects key presses..

The voltage at the outputs of the inverter (which is sourcing the current) have absolutely nothing going wrong (going back and forth from 0 to 4.4 V for all 4 pins).

Any suggestions to pull the voltage up???

btw I'm using a 4k-ohm resistor to pull-down the current, since the floating voltage of the 165 chip is around 1.2 V, which is recognized as a keypress, which is weird, cuz the 3rd row sends out arnd 1.5 V, but isnt detected...
and yeah, i have tried changing the pull-down resistor for individual rows, but the 'voltage difference' between on and off is constant, so its hard to choose the exact range and doesnt work.
have a great day =)

Go Up