Так, це здається гарною ідеєю, але все одно я запропоную альтернативу, яка щойно прийшла мені в голову.
Якщо у вас є доступ до логічних воріт, ви можете зіставити багато n
бутонів на ceil(log2(n + 1))
шпильки через булеву логіку. Наприклад, якщо у вас є 4 кнопки, але лише 2 шпильки, ви можете створити конфігурацію, як це:
Buttons | Pins
---- | --
0123 | 01
---- | --
0001 | 00
0010 | 01
0100 | 10
1000 | 11
Тобто button0
пресований повинен мати pin0
і pin1
низький; button1
, pin0
низький і pin1
високий; button2
, pin0
високий pin1
низький; і button3
, pin0
і pin1
високий.
З цього випливають наступні булеві вирази
pin0 = button2 OR button3
pin1 = button1 OR button3
Таким чином, відображення 4-х кнопок на 2-контактні шрифти можна здійснити лише за допомогою 2-х воріт. Вам знадобиться додатковий штифт і деяка додаткова логіка для вказівки, чи якась кнопка взагалі натиснута.
Звичайно, проблеми будуть, якщо одночасно натискати кілька кнопок.
Крім того, якщо ви все ще будете йти з резисторним підходом, подумайте про використання більших значень на резисторах, окрім того, що 100 Ом з 5 В через резистори порядку 100 ом призведе до струму на порядок 10 с мА, що є добрим надмірно високого. Я здогадуюсь, більш розумні значення становлять 10 к Ом або 47 к Ом.