ЭФО предлагает со своего склада новую серию преобразователей интерфейсов USB UART компании FTDI FT232RNL-REEL

12-кнопочная клавиатура с двухпроводным интерфейсом. Часть 1. Теория и схема

В статье мы рассмотрим вариант организации 12-кнопочной клавиатуры для устройств на микроконтроллерах. Интерфейс клавиатуры потребует от микроконтроллера всего лишь две линии ввода/вывода: одна линия предназначена для информирования микроконтроллера о нажатии кнопки, вторая линия – для чтения информации о нажатой кнопке.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

12-кнопочная клавиатура на таймере 555

Как известно, клавиатуры используются в устройствах на микроконтроллерах для ввода пользовательской информации и управления. В общем случае, многокнопочная клавиатура организуется как матрица кнопок объединенных в столбцы и строки, таким образом, интерфейс такой клавиатуры потребует определенного минимального количества линий ввода/вывода микроконтроллера. Например, 12-кнопочная клавиатура организуется в формат 4×3 и потребует 7 линий ввода/вывода. Для определения нажатой кнопки на такой клавиатуре микроконтроллер должен просканировать все столбцы и строки. В сети Интернет много информации относительно этой техники.

Здесь мы рассмотрим иной интерфейс клавиатуры, требующей всего лишь две линии ввода/вывода микроконтроллера. Основа нашей 12-кнопочной клавиатуры – интегральный таймер 555, который сконфигурирован как несинхронизированный мультивибратор. Также для проверки работоспособности клавиатуры мы будем использовать микроконтроллер PIC16F628A, который будет считывать информацию с выхода таймера, определять какая кнопка нажата и отображать код нажатой кнопки на символьном LCD дисплее.

Теория

Рассматриваемая техника реализации клавиатуры основывается на очень простом принципе. Значение выходной частоты несинхронизированного мультивибратора определяется двумя резисторами и конденсатором, ее значение рассчитывается по формуле, представленной на рисунке 1.

Схема включения таймера и формула расчета частоты
Рис. 1. Схема включения таймера 555 в режиме генератора импульсов и формула расчета выходной частоты.

Если мы выберем постоянными значение резистора R1 и конденсатора С, изменение выходной частоты будет связано с изменением резистора R2. Таким образом, если каждую кнопку клавиатуры подключим к различным резисторам, то при нажатии на кнопки мы получим различные значения частоты на выходе таймера. Микроконтроллер может измерить выходную частоту генератора и определить какая кнопка нажата.

На первый взгляд это кажется более сложной техникой, поскольку могут потребоваться вычисления с плавающей точкой при вычислении частоты. Кроме того, выходная частота таймера 555 окажется нестабильной. Но эти проблемы можно решить правильным выбором значений резисторов и использованием встроенного в микроконтроллер таймера.

Принцип работы нашей клавиатуры

При нажатии одной из кнопок клавиатуры, резистор с определенным значением включается между выводом 7 (Разряд) и выводом 6 (Останов) таймера 555, завершая схему несинхронизированного мультивибратора. Выходные импульсы подсчитываются за период 100 мс встроенным таймером микроконтроллера. Определение микроконтроллером нажатой кнопки производится по количеству переполнений таймера. Т.е., если количество переполнений таймера равно 5, то была нажата кнопка 5. Если была нажата кнопка 0, то переполнения таймера микроконтроллера не произойдет.

Принципиальная схема интерфейса клавиатуры

Схема 12-кнопочной клавиатуры на таймере 555
Кликните для увеличения

На схеме показано, как можно подключить 12 кнопок к таймеру 555 для генерации 12 различных частот. Резисторы R0 – R# – это 12 различных резисторов, которые включаются в цепь (между выводом 6 и 7 таймера) в соответствии с нажатой кнопкой.

Для нашего случая номинал резистора R1 – 1 кОм, конденсатора C – 0.01 мкф, в соответствии с типовой схемой включения. В нижеследующей таблице видно соответствие между различными номиналами резистора R2 для каждой кнопки, частотой и количеством переполнений таймера 0 микроконтроллера. Заметим, что некоторые из этих резисторов являются составными для получения нужного номинала.

R1=1 кОм,  С=0.01 мкФ
Кнопка № Номинал
резистора R2,
Ом
Выходная
частота,
Гц
Количество
импульсов
за 100 мс
Количество
переполнений
Таймера 0
0 47000 1515.79 151.58 0
1 22000 3200 320 1
2 12000 5760 576 2
3 8200 8275.86 827.59 3
4 5600 11803.28 1180.33 4
5 4700 13846.15 1384.62 5
6 3900 16363.64 1636.36 6
7 3400 18461.54 1846.15 7
8 2800 21818.18 2181.82 8
9 2530 23762.38 2376.24 9
* 2200 26666.67 2666.67 *
# 2000 28800 2880 #

Для боле стабильной работы схемы нужно применять электронные компоненты (конденсатор и резисторы) с допуском менее 5%.

Часть 2. Описание работы схемы, значение и выбор времязадающих компонентов схемы.

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: 2-Wire Keypad Interface Using a 555 Timer. Part 1 Theory and Schematic

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя