Keyboard scan producing extra keypresses

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"

LEDs require a series resistor to limit current flow.

Ghosting diodes:

Unfortunately I think this keyboard does not have diodes. Typing "the" very quickly reads as "thke".

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.