Hello, this is my first post here and I am not really an electronics guy but a programmer, so please bear with me.
So I have a project which I use to teach students a number of concepts in programming, primarily binary, hexadecimal and low-level programming. It works by allowing the students to wire up a front panel with 10 inputs, each representing 1, 2, 4, 8, 16, 32, 64, 128, 256 and 512 respectively. As each connection is made the OLED display on the top outputs either the total in binary, hex and decimal or a simple instruction set.
I am using the I2C bus for the OLED.
My problem arises from my need for 10 inputs (one for each connector) and the Arduino not having that many to work with. I have looked at using ICs and the I2C bus, ICs and the SPI bus, relay banks, analog input using resistors to allow multiple switches on one input and a few other things I have forgotten
So my question, after all that, is this - what is the best approach and can you please elaborate.
Thanks in advance.