Бесспорно, что кнопочная клавиатура является одним из основных способов введения информации (выбор режима работы, установка параметров и т.д.) в микроконтроллерную поделку. Но иногда, гордый вид торчащих механических кнопок придаёт «громоздкость» внешнему виду вашего устройства. В этом случае можно применить сенсорную клавиатуру, благо, хорошее описание принципа действия и готовые схемные решения найти в интернете не составляет проблем. Не оставит в беде и Arduino, предложив радиолюбителю выбрать между сенсорной кнопкой или 9-12-кнопочной панелью. Но, покупать сенсорную кнопку на своё устройство для меня было как-то не спортивно, а готовые 9 или 12-кнопочные клавиатуры были как-то чересчур для моих устройств, причём во многих из них информация передавалась по интерфейсу UART, который у меня обычно уже занят под иные задачи, а программную реализацию интерфейса делать было не особо охота. Потому, взяв прототипом реализацию сенсорной клавиатуры от небезызвестного мистера Chan(а), я сделал сенсорный модуль на 1, 2 и 3 кнопки, что зачастую вполне достаточно для работы с микроконтроллерными устройствами.
Ограничение на количество сенсорных кнопок накладывает применяемый микроконтроллер – Attiny13A-SSU , но даже его применение для однокнопочного сенсорного модуля по себестоимости выходит дешевле аналогичного модуля от Arduino.
Выводы модуля:
VCC – питание 3-5 В;
GND – земля;
SIG1-SIG3 – цифровой сигнал нажатия кнопки.
При нажатии кнопки, на соответствующем цифровом выводе появится логическая «1», хотя вы можете исправить в коде программы на «0», тогда будет полная имитация нажатия механической кнопки.
Схема сенсорного модуля на 3 кнопки
В случае слишком большой чувствительности сенсорных кнопок (на выходе модуля появляется сигнал до прикосновения к сенсорной панели) можно уменьшить сопротивление резисторов R1-R3. Исходник программы, как я уже упоминал, основан на коде от мистера Chan(а), однако функцию опроса сенсорных кнопок и определение нажатой кнопки я полностью переделал, повысив помехоустойчивость и реализовав надёжное определение нажатия и отпускания сенсорной кнопки.
В архиве представлен исходный код и прошивка для трёх исполнений модуля – на 1, 2 и 3 кнопки, единственное отличие битов конфигурации для последнего случая – установить галочку напротив бита RSTDISBL (на рисунках ниже — конфигурация для 1 и 2-х кнопок).
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
DD1
МК AVR 8-битATtiny13A1
C1
Конденсатор0.1 мкФ1
R1-R3
Резистор1 МОм3
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- TOUCH SENSOR — код.rar (122 Кб)
- TOUCH SENSOR — Плата под ЛУТ.rar (36 Кб)