Сенсорный модуль на AVR

Бесспорно, что кнопочная клавиатура является одним из основных способов введения информации (выбор режима работы, установка параметров и т.д.) в микроконтроллерную поделку. Но иногда, гордый вид торчащих механических кнопок придаёт «громоздкость» внешнему виду вашего устройства. В этом случае можно применить сенсорную клавиатуру, благо, хорошее описание принципа действия и готовые схемные решения найти в интернете не составляет проблем. Не оставит в беде и 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)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.