Tak, wydaje się to dobrym pomysłem, ale w każdym razie zamierzam zaproponować alternatywę, która właśnie przyszła mi do głowy.
Jeśli masz dostęp do bramek logicznych, możesz zmapować wiele n
przycisków do ceil(log2(n + 1))
pinów za pomocą logiki logicznej. Na przykład, jeśli masz 4 przyciski, ale tylko 2 piny, możesz utworzyć konfigurację taką:
Buttons | Pins
---- | --
0123 | 01
---- | --
0001 | 00
0010 | 01
0100 | 10
1000 | 11
To znaczy, button0
presja powinna mieć pin0
i pin1
nisko; button1
, pin0
niski i pin1
wysoki; button2
, pin0
wysoki i pin1
niski; a button3
, pin0
i pin1
na wysokim poziomie.
Z tego wynikną następujące wyrażenia boolowskie
pin0 = button2 OR button3
pin1 = button1 OR button3
Odwzorowanie 4 przycisków na 2 piny można zatem zrealizować tylko z 2 bramkami OR. Potrzebny byłby jednak dodatkowy pin i trochę logiki, aby wskazać, czy którykolwiek przycisk jest w ogóle naciskany.
Oczywiście nadal będą występować problemy, jeśli kilka przycisków zostanie naciśniętych jednocześnie.
Ponadto, jeśli nadal będziesz stosować podejście opornikowe, rozważ użycie większych wartości na opornikach innych niż 100 omów, ponieważ 5 V przez rezystory rzędu 100s omów dałoby prąd rzędu 10s mA, co jest miłe niepotrzebnie wysokiej. Wydaje mi się, że bardziej rozsądne wartości to 10k Ohm lub 47k Ohm.