Oui, cela semble être une bonne idée, mais de toute façon je vais proposer une alternative qui m'est venue à l'esprit.
Si vous avez accès aux portes logiques, vous pouvez mapper de nombreux n
boutons aux ceil(log2(n + 1))
broches via une logique booléenne. Par exemple, si vous avez 4 boutons, mais seulement 2 broches, vous pouvez créer une configuration comme celle-ci:
Buttons | Pins
---- | --
0123 | 01
---- | --
0001 | 00
0010 | 01
0100 | 10
1000 | 11
Autrement dit, button0
pressé devrait avoir pin0
et pin1
bas; button1
, pin0
bas et pin1
haut; button2
, pin0
haut et pin1
bas; et button3
, pin0
et pin1
élevé.
De là découleraient les expressions booléennes suivantes
pin0 = button2 OR button3
pin1 = button1 OR button3
Un mappage de 4 boutons à 2 broches pourrait ainsi être réalisé avec seulement 2 portes OU. Vous auriez cependant besoin d'une broche supplémentaire et d'une logique supplémentaire pour indiquer si vous appuyez sur un bouton.
Bien sûr, il y aura toujours des problèmes si plusieurs boutons sont enfoncés simultanément.
De plus, si vous allez toujours utiliser l'approche par résistance, envisagez d'utiliser des valeurs plus élevées sur les résistances autres que 100 ohms, car des résistances traversantes de 5 V de l'ordre de 100s d'ohms produiraient un courant de l'ordre de 10s de mA, ce qui est gentil. inutilement élevé. Je suppose que des valeurs plus raisonnables seraient de 10k Ohm ou 47k Ohm.