В этом руководстве мы собираемся связать сенсорную клавиатуру 4x2 (8 клавиш) с микроконтроллером ATMEGA32A. Все мы знаем, что клавиатура - одно из самых важных устройств ввода, используемых в электронике. В этом модуле нет настоящих клавиш, но есть специально разработанные емкостные металлические контактные площадки, которые очень чувствительны. Таким образом, когда человек соприкасается с одной из колодок, в соответствующем контуре происходит изменение емкости, и это изменение будет обнаружено управляющей электроникой в модуле. В ответ на касание соответствующий выходной контакт пэда становится высоким.
Для восьмиклавишной сенсорной панели у нас будет восемь выходов. Хотя в этом модуле есть и другие функции, мы не будем их здесь обсуждать.
Необходимые компоненты
Аппаратное обеспечение: микроконтроллер ATMEGA32, блок питания (5 В), ПРОГРАММАТОР AVR-ISP, JHD_162ALCD (16x2LCD), конденсатор 100 мкФ, конденсатор 100 нФ, резистор 1 кОм (2 шт.), Модуль сенсорной клавиатуры.
Программное обеспечение: Atmel studio 6.1 или Atmel studio 6.2, прогисп или flash magic.
Принципиальная схема и объяснение работы
В схеме PORTB ATMEGA32 подключен к LCD порту данных. Здесь следует не забыть отключить связь JTAG в PORTC с ATMEGA, изменив байты предохранителя, если вы хотите использовать PORTC как обычный порт связи. В LCD 16x2 всего 16 контактов, если есть подсветка, если подсветки нет, то будет 14 контактов. Можно включить или оставить контакты подсветки. Теперь в 14 контактах 8 контактов данных (7-14 или D0-D7), 2 контакта источника питания (1 и 2 или VSS и VDD или gnd & + 5v), 3- й контакт для контроля контрастности (VEE-контролирует толщину символов. показаны) и 3 штифта управления (RS, RW и E)
В схеме вы можете заметить, что я взял только два управляющих контакта, это дает гибкость для лучшего понимания, бит контрастности и READ / WRITE не часто используются, поэтому их можно замкнуть на землю. Это переводит ЖК-дисплей в режим максимальной контрастности и чтения. Нам просто нужно управлять контактами ENABLE и RS, чтобы отправлять символы и данные соответственно.
Подключения, которые выполняются для ЖК-дисплея, приведены ниже:
PIN1 или VSS на землю
PIN2 или VDD или VCC на питание +5 В
PIN3 или VEE на землю (дает максимальный контраст для новичков)
PIN4 или RS (выбор регистра) к PD6 uC
PIN5 или RW (чтение / запись) на землю (перевод ЖК-дисплея в режим чтения упрощает взаимодействие для пользователя)
PIN6 или E (включить) к PD5 uC
PIN7 или D0 - PB0 uC
PIN8 или D1 - PB1 микроконтроллера
PIN9 или D2 - PB2 uC
PIN10 или D3 - PB3 uC
PIN11 или D4 - PB4 uC
PIN12 или D5 - PB5 микроконтроллера
PIN13 или D6 - PB6 uC
PIN14 или D7 - PB7 uC
В схеме вы можете видеть, что мы использовали 8-битную связь (D0-D7), однако это не обязательно, мы можем использовать 4-битную связь (D4-D7), но с 4-битной коммуникационной программой становится немного сложнее.
Итак, соблюдая приведенную выше таблицу, мы подключаем 10 контактов ЖК-дисплея к контроллеру, в котором 8 контактов являются контактами данных и 2 контакта для управления.
Прежде чем идти дальше, важно знать, что емкостной модуль работает при напряжении 2,5 В. А также ток, потребляемый сенсорным модулем, невысокий. Так что для получения 2,5В для модуля от 5В мы будем использовать схему делителя напряжения.
Схема формирователя делителя напряжения на резисторах представлена на рисунке ниже.
Теперь схема делителя напряжения обеспечивает низкие напряжения для модулей и других источников. Как показано на рисунке, выходное напряжение в средней точке представляет собой отношение сопротивлений. Таким образом, для получения 2,5 В от 5 В мы будем использовать R1 = R2 = 1 кОм, поэтому для напряжения питания 5 В напряжение средней точки будет 2,5 В относительно земли. Это напряжение от схемы делителя подается на модуль. К нему подключен конденсатор для фильтрации гармоник, как показано на принципиальной схеме.
Выходной порт сенсорного модуля подключен к контроллеру atmega, поэтому всякий раз, когда касаются пэда, соответствующий контактный вывод становится высоким. Это изменение логики воспринимается контроллером. Контроллер показывает цифру на ЖК-дисплее в зависимости от контакта, который становится высоким.
В целях безопасности можно отключить все выходные контакты модуля на землю через резисторы 10 кОм, хотя это не обязательно.
Работа с ИНТЕРФЕЙСОМ СЕНСОРНОЙ КЛАВИАТУРЫ лучше всего описана в пошаговом коде C, приведенном ниже.