Подключение панели с сенсорными кнопками к микроконтроллеру AVR ATmega32

В этой статье мы рассмотрим подключение 4×2 (8 кнопок) панели с сенсорными кнопками (touch keypad) к микроконтроллеру ATmega32A (семейство AVR). Мы все знаем, что панель с сенсорными кнопками (тачпад – в простонародье) является одним из самых важных устройств ввода в электронных схемах. Это устройство не имеет «реальных» кнопок, но зато имеет специально спроектированные металлические пластины, которые имеют высокую чувствительность. Когда кто-нибудь нажимает одну из этих пластин, происходит изменение емкости в соответствующей схеме и это изменение воспринимается электронным блоком устройства (панели). Откликом (ответом) на нажатие пластины является появление высокого напряжения на соответствующем выходном контакте.

Подключение панели с сенсорными кнопками к микроконтроллеру AVR ATmega32: внешний видТаким образом, для восьмиклавишного тачпада мы имеем восемь выходов. У него есть и другие особенности, но в этой статье мы не будем их рассматривать.

Необходимые компоненты

Аппаратное обеспечение

  1. Микроконтроллер ATmega32.
  2. Программатор AVR-ISP (купить на AliExpress), USBASP (купить на AliExpress) или другой подобный.
  3. JHD_162ALCD (ЖК дисплей 16×2).
  4. Тачпад (панель с сенсорными кнопками).
  5. Конденсатор 100 мкФ.
  6. Конденсатор 100 нФ.
  7. Резистор 1 кОм (2 шт.).
  8. Источник питания с напряжением 5 Вольт.

Программное обеспечение

  1. Atmel Studio версии 6.1 (или выше).
  2. Progisp или flash magic (необязательно).

Работа схемы

Схема устройства приведена на следующем рисунке.

Схема подключения панели с сенсорными кнопками к микроконтроллеру AVR ATmega32В представленной схеме PORTB микроконтроллера ATmega32 соединен с портом данным жидкокристаллического (ЖК) дисплея. При этом следует помнить о том, что необходимо деактивировать JTAG интерфейс микроконтроллера на порту PORTC при помощи изменения фьюзов (fuse bytes) если мы хотим использовать PORTC как обычный порт ввода/вывода. В ЖК дисплее (если мы не хотим использовать черный цвет) можно задействовать только 14 его контактов: 8 контактов для передачи данных (7-14 или D0-D7), 2 контакта для подачи питания (1&2 или VSS&VDD или gnd&+5v), 3-й контакт для управления контарстностью, 3 контакта для управления (RS&RW&E).

В представленной схеме мы использовали только 2 контакта управления ЖК дисплея для лучшего понимания работы схемы. Бит контраста и READ/WRITE используются нечасто, поэтому они могут быть замкнуты на землю. Это обеспечивает ЖК дисплею максимальную контрастность и переводит его в режим чтения. Теперь нам всего лишь нужно контролировать контакты ENABLE и RS чтобы передавать на ЖК дисплей символы и данные. Также на нашем сайте вы можете прочитать более подробную статью о подключении ЖК дисплея к микроконтроллеру ATmega32.

В схеме необходимо сделать следующие соединения с ЖК дисплеем:
PIN1 или VSS — земля
PIN2 или VDD или VCC — +5v питание
PIN3 или VEE — земля (обеспечивает максимальный контраст ЖК дисплею)
PIN4 или RS (Register Selection) – контакт PD6 микроконтроллера
PIN5 или RW (Read/Write) — земля (переводит ЖК дисплей в режим чтения что упрощает взаимодействие с ним для начинающих)
PIN6 или E (Enable) — контакт PD5 микроконтроллера
PIN7 или D0 — контакт PB0 микроконтроллера
PIN8 или D1 — контакт PB1 микроконтроллера
PIN9 или D2 — контакт PB2 микроконтроллера
PIN10 или D3 — контакт PB3 микроконтроллера
PIN11 или D4 — контакт PB4 микроконтроллера
PIN12 или D5 — контакт PB5 микроконтроллера
PIN13 или D6 — контакт PB6 микроконтроллера
PIN14 или D7 — контакт PB7 микроконтроллера

В схеме мы использовали 8-битную связь (D0-D7) ЖК дисплея с микроконтроллером, хотя можно было ограничиться и 4-битной – но в этом случае код программы стал бы немного сложнее. Таким образом, мы использовали 10 контактов ЖК дисплея, 8 из которых будут использоваться для передачи данных и 2 для управления.

Использованный в схеме тачпад работает от напряжения 2,5В, поэтому чтобы его запитать от используемого источника питания с напряжением 5В мы включаем на входе по питанию тачпада делитель напряжения из двух резисторов, представленный на следующем рисунке.

Схема делителя напряжения на двух резисторахПредставленный делитель обеспечивает тачпад пониженным напряжением. Таким образом, чтобы обеспечить на выходе делителя напряжение 2,5В при напряжении на входе 5В достаточно взять номиналы резисторов в этом делителе равные 1 кОм. Конденсатор на выходе делителя напряжения включен для фильтрации гармоник.

Выходной порт панели с сенсорными кнопками (тачпада) напрямую подключен к микроконтроллеру. Таким образом, всегда когда кто то нажимает клавишу тачпада на его соответствующем выходе появляется сигнал высокого напряжения. Это логическое изменение уровня воспринимается микроконтроллером. Микроконтроллер показывает на экране ЖК дисплея цифру, соответствующую номеру нажатой клавиши на тачпаде.

В целях безопасности можно еще все выходные контакты тачпада замкнуть на землю через резисторы 10 кОм, но это не обязательно.

Исходный код программы на языке C (Си) с пояснениями

Видео, демонстрирующее работу схемы


(1 голосов, оценка: 5,00 из 5)
Загрузка...


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

Ваш адрес email не будет опубликован. Обязательные поля помечены *