I have an old computer keyboard that I'm trying to scan using an Arduino.
It has a 6 x 8 matrix with switches that are normally open.
My scanning routine sets a row HIGH and scans the columns for a corresponding high. All pins have 10K pulldown resistors.
The code works correctly, but I find that when multiple keys are pressed I get a phantom key.
For example, if a row 1 has a key pressed on column 1 and 2, and row 2 has a key pressed on column 1, I find that they key on row 2, column 2 is considered pressed because the voltage travels to column 2 through row 1, column 1 to row 1 column 2, making column 2 high.
This must be an old problem, is there a common solution?
Here are some pics to illustrate:
No keys pressed:
Row1 set high, "A" is held so Col1 reads high,
Row2 set high, "A", "B" and "C" are held, Col2 reads high, read as "D"