Hello
I want to read a 4 x 4 button matrix and I have one of the Sparkfun breakout boards which provide connections for SWITCH1-4 and SW GND1-4. Before I really gave it any thought I assumed 4x4=16 buttons and started playing around with a pair of CD4021 shift registers ... and then it dawned on me that a 4x4 button matrix isn't just 16 buttons!
So my first question is, is my assumption correct?
So after a little research I discovered the CD4051 tutorials. The example refers to an 8x8 pad requiring 9 CD4051s if you want to register more than two simultaneous button presses! Then obviously I looked into all the Monome/Arduinome stuff which uses a 74HC165 (iirc). I looked at the firmware too which seemed very complicated for reading some buttons!
So my second question is, what is the best way for me to read a 4x4 button matrix? Is the Monome route more complex than it needed?
I guess in essence a 4x4 button pad is just 16 buttons but wired in a unique way. I've looked at the PCB and without cutting tracks I don't see how each could be isolated. The advantage of the Sparkfun boards is that they have the little round contact area and fit those nice rubber button sheets.
What's the advantage of button matrices then from an engineering perspective? Simply that they require fewer inputs to a micocontroller?
Thanks
Jim