Sí, parece una buena idea, pero de todos modos voy a proponer una alternativa que se me ocurrió.
Si tiene acceso a puertas lógicas, puede asignar muchos nbotones a ceil(log2(n + 1))pines a través de la lógica booleana. Como ejemplo, si tiene 4 botones, pero solo 2 pines, puede crear una configuración como esta:
Buttons | Pins
---- | --
0123 | 01
---- | --
0001 | 00
0010 | 01
0100 | 10
1000 | 11
Es decir, button0presionado debe tener pin0y pin1bajo; button1, pin0bajo y pin1alto; button2, pin0alto y pin1bajo; y button3, pin0y pin1alto.
De esto surgirían las siguientes expresiones booleanas
pin0 = button2 OR button3
pin1 = button1 OR button3
De este modo, se podría realizar una asignación de 4 botones a 2 pines con solo 2 compuertas OR. Sin embargo, necesitaría un pin adicional y algo de lógica adicional para indicar si se está presionando algún botón.
Por supuesto, aún habrá problemas si se presionan varios botones simultáneamente.
Además, si aún seguirá con el enfoque de resistencia, considere usar valores más grandes en las resistencias que no sean 100 ohmios, ya que 5 V a través de resistencias del orden de 100s de ohmios producirían una corriente del orden de 10s de mA, que es amable de innecesariamente alto. Supongo que valores más razonables serían 10k Ohm o 47k Ohm.