I'm rebuilding my label printer to become an Internet service using an ESP8266. It's a fun project, never mind the usefulness. The keypad will be removed and instead my MCU emulates keypresses.
The keypad has:
- 8 pins that always have 3.2V (red cables on the picture)
- 7 pins that have 2.6V (black cables, faint LEDs)
When a key is pressed it connects one of the 8 pins with one or more of the 7 pins. I can verify this by connecting them (see picture for writing "ABC").
- "A" is red cable number 2 connected to black cable number 3.
- "B" is red cable number 3 connected to black cable number 3.
.... and so on. Plenty of combinations.
I could achieve my goal by replacing each of the buttons with a transistor. That would require 50 pins (because there are 50 buttons). Simple stupid, I can do that with a bunch of 545's. However, I'd like to see if it's possible to find a more clever solution.
How does this device know what pin I'm drawing current from? I can make six letters by adding voltage to each of the black pins. But I need the combination of red+black to get all combinations.
Would it work to somehow simulate drawing current from each red pin individually and at the same time add voltage to the black pins? Then I only need 15 pins, way fewer components.