Сенсорний модуль на 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 | |||
Прикреплені файли:
- TOUCH SENSOR - код.rar (122 Кб)
- TOUCH SENSOR - Плата під ЛУТ.rar (36 Кб)