Сенсорний модуль на 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-біт
ATtiny13A
1
C1 Конденсатор 0.1 мкФ 1
R1-R3 Резистор
1 МОм
3
Додати все

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

Top