Можна використовувати резистивні колодки для з'єднання, як ви показуєте, але ємнісні колодки, як правило, краще. Резистивні колодки залишають прямий зв'язок із ланцюгом відкритим назовні. Тому вони чутливі до пошкоджень від статичного розряду та шуму.
Ємні прокладки - це кращий метод, хоча вони потребують трохи більше вбудованого програмного забезпечення, принаймні, якщо ви хочете зробити це добре. Зауважте, що для отримання рівномірного захисту від шуму, резистивні прокладки також вимагають прошивки. Просто підключення двох колодок до чогось чутливого, як, наприклад, ворота FET, є поганою ідеєю. Ви не зможете скасувати загальний режим та інші зовнішні шуми.
Ось компонування невеликої дошки, яку я нещодавно зробив лише для дослідження ємнісних кнопок:
Накладки на ковпачки - це невеликі диски діаметром 150 міліметрів (3,8 мм) і в іншому випадку оточені грунтом на верхньому шарі. Мікроконтролер - це PIC 16LF1786. Він і всі інші частини, які не призначені для безпосереднього взаємодії з користувачем, встановлені в нижній частині цієї двошарової дошки.
PIC постійно сканує прокладки. Коли він виявляє зміну натиснутого / відпущеного відчуття колодки, він надсилає повідомлення через послідовний порт, оновляє світло вгорі праворуч і видає звуковий сигнал на прес.
Для тестування я можу змусити PIC регулярно надсилати його внутрішні значення для тиску кожної колодки. Ось графік усіх п’яти значень сенсу, окрім загального цифрового стану, що тисне, коли я натискав кожну подушечку послідовно пальцем:
Як бачите, захист від шуму винятковий. Навіть найслабший сигнал був понад 300, тоді як шум становив ± 2 або більше.
Пурпуровий слід із позначкою "Пресований" показує АБО окремих станів, що натискаються на кнопку. Її рівні показують поріг преси та випуску. Є багато додаткового сигналу, який не використовується в цьому випадку. Ці конкретні пороги були налаштовані, щоб мати можливість переносити кілька шарів паперу над кнопками.
Звичайно, є певне спритне поводження з кнопковими лініями та обробка, навіть якщо я сам це скажу, але явно результати досяжні за допомогою досить скромного мікроконтролера.
Я використовую це в реальному продукті, де той самий мікрофон також управляє відображенням символів. Це основна підсистема користувальницького інтерфейсу, яку я планую повторно використовувати в кількох майбутніх продуктах. Він взаємодіє з основним системним контролером через послідовний порт. Головний контролер посилає команди для запису на дисплей і отримує асинхронні повідомлення щоразу, коли стан кнопки змінюється.