Сопряжение однопроводной матрицы клавиатуры 4х4 с AVR микроконтроллером

Эта статья демонстрирует особый способ сопряжения матрицы клавиатуры 4х4 с микроконтроллером AVR ATmega32. Клавиатура является одним из важнейших устройств ввода, используемая в проектах электроники. Это один из самых простых способов, чтобы отправить команды или инструкции электронной системе.

Но при разработке традиционной матричной клавиатуры вам требуется больше контактов ввода/вывода. Например, если вы разрабатываете клавиатуру 4х4 из 16 клавиш, вам требуется восемь цифровых линий ввода/вывода микроконтроллера.

Этот проект использует только один аналоговый вывод микроконтроллера для достижения той же цели, и поэтому освободившиеся контакты можно использовать для иных целей.

sopryazhenie-odnoprovodnoj-matricy-klaviatury-4x4-3

На рисунке выше показана блок-схема однопроводной клавиатуры с жидкокристаллическим дисплеем (LCD). Схема состоит из клавиатуры 4х4, которая предназначена для ввода данных в микроконтроллер через один провод, микроконтроллера ATmega32 для обработки полученных данных, блока питания и LCD 16х2 для отображения данных.

Схема и принцип работы

Принципиальная схема однопроводной матричной клавиатуры 4×4 с использованием AVR показана на следующем рисунке.

sopryazhenie-odnoprovodnoj-matricy-klaviatury-4x4-2

Она состоит из понижающего трансформатора X1, 16 кнопок (S1-S16), 16 резисторов (от R1 до R16), стабилизатора напряжения 7805 (IC1), микроконтроллера ATmega32 (IC2), ЖК-дисплея (LCD1) и несколько дополнительных компонентов.

Всю схему можно поделить на три блока: источник питания, дисплей и клавиатуру.

Источник питания

Переменное напряжение сети 220В при помощи понижающего трансформатора уменьшает напряжение до 9 В (250 мА) (X1), выпрямляется диодным мостом (BR1) и фильтруется конденсаторами C1 и C2. Необходимое напряжение в 5В получается посредством стабилизатора 7805. Светодиод LED1 указывает на наличие питающего напряжения.

Дисплей

В схеме используется ЖК-модуль с жидкокристаллическим дисплеем Hitachi HD44780 с разрешением 16×2 (LCD1). Как правило, 16-символьный 2-строчный ЖК-модуль имеет восемь линий передачи данных (от D0 до D7). В этом проекте для передачи данных мы используем только четыре линии данных (от D4 до D7). Линии данных с D0 по D3 отключены. Передача данных между HD44780 и микроконтроллером завершается после того, как 4-битные данные отправляются дважды.

Разъемы PortD от PD0 до PD3 микроконтроллера (IC2) подключены к линиям данных D4-D7 LCD1. Контрольные линии LCD1, то есть чтение/запись (R/W), выбор регистров (RS) и включение (EN), подключаются к PD5, PD4 и PD6 IC2 соответственно.

Клавиатура

В общей сложности матрице 4×4 используются 16 кнопок. Один вывод каждой кнопки подключен к общему проводу схемы, а другой подключен последовательно с одним из резисторов R1-R16. За подробностями обратитесь к  таблице.

sopryazhenie-odnoprovodnoj-matricy-klaviatury-4x4-4

В этом проекте мы используем принцип делителя напряжения для идентификации каждой нажатой кнопки. Здесь  резистор R19 (1кОм) фиксирован и подключен к источнику питания 5 В. Когда вы нажимаете какую-либо кнопку, то соответствующий резистор, который соединен последовательно с этой кнопкой, формирует цепь делителя напряжения.

В результате мы получаем изменения напряжения на выводе 39 (PA1) IC2, который является входом АЦП (аналого-цифровой преобразователь) микроконтроллера.

Напряжение, полученное на выводе ADC1, определяется соотношением:

Vout = Vin × {Ri / (R19 + Ri)}

Резистор R19 имеет постоянное значение (1кОм) и напряжение Vin также является постоянным (5В).

Программа микроконтроллера

Программа для микроконтроллера написана на языке «C» с использованием программных функций AVR Studio 4.

Работа программы очень проста, так как все кнопки подключены только к одному выводу микроконтроллера (ADC1). Программа периодически считывает входные переключатели через контакт ADC1.

После декодирования значения АЦП на ЖК-дисплее отображается соответствующий номер/значение кнопки.

Конструкция и тестирование

Рисунок печатной платы и компоновка показаны на рисунке ниже.

sopryazhenie-odnoprovodnoj-matricy-klaviatury-4x4-1

После сборки схемы поместите ее в подходящую коробку. Подключите выводы вторичной обмотки  трансформатора X1 к разъему CON1. Установите LCD1 на печатную плату и поместите собранную плату в небольшую коробочку. Установите переключатель S17 на передней панели коробки.

Когда вы подаете питание 9В через переключатель S17, LED1 светится, указывая на наличие питания в схеме. Подождите пока не закончиться инициализация LCD1 и микроконтроллера IC2. Если все в порядке, вы увидите на ЖК-дисплее сообщение «No Key Press» (клавиша не нажата).

sopryazhenie-odnoprovodnoj-matricy-klaviatury-4x4-5Далее нажмите любую кнопку. Соответствующее значение отобразиться на ЖК-дисплее. На рисунке  показано сообщение на ЖК-дисплее при нажатии кнопки S13.

sopryazhenie-odnoprovodnoj-matricy-klaviatury-4x4-6

Скачать прошивку и исходный код (скачено: 1)


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

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

*