В первой части статьи мы рассмотрели схему интерфейса 12-кнопочной клавиатуры на базе таймера 555.
Рассмотрим теперь основные моменты в работе и настройке интерфейса клавиатруы.
Выходы частоты и одиночного импульса
Как видно, схема имеет два выхода: выход частоты (на схеме обозначен как TOCKI) и выход импульса (на схеме – RA2).
Выход частоты, непосредственно с вывода 3 таймера, подается на вывод микроконтроллера TOCKI (вход Таймера 0 PIC16F628A) для измерения генерируемой частоты. Второй выход – это выход таймера со сглаживающим конденсатором Cp. При нажатии кнопки на клавиатуре последовательность импульсов с выхода таймера сглаживается конденсатором в единственный импульс. Этот импульс является сигналом для микроконтроллера, что нажата кнопка на клавиатуре. Резистор Rp (3.6 кОм) предназначен для разряда конденсатора Cp при отпускании кнопки клавиатуры, что необходимо для генерации импульса при следующем нажатии кнопки. Диод D1 предназначен для изолирования двух выходов.
Значение номиналов резистора Rp и конденсатора Cp
Значение резистора Rp не выбирается произвольным. Если значение слишком велико, то мы получим слишком большую задержку по времени между двумя нажатиями любых клавиш, т.к. потребуется больше времени для разряда конденсатора Cp. В тоже время, значение сопротивления не должно быть слишком малым, так как напряжение на конденсаторе в значительной степени уменьшится, при следовании двух последовательных импульсов с выхода таймера 555. Мы выбрали значения резистора Rp=3.6 кОм и конденсатора Cp=1 мкФ. В этом случае постоянная времени RC будет равна 0.0036 c. Это означает, что если выходная частота таймера 278 Гц (1/0.0036), напряжение на конденсаторе может снизится до 63% от его амплитудного значения между двумя последовательными импульсами. Как видно, значения Rp и Cp также выбраны не достаточно эффективно, чтобы сгладить все рабочие частоты.
Следовательно, значения Rp и Cp должны быть подобраны так, чтобы постоянная времени RC была достаточна для сглаживания всех рабочих частот и, между тем, должна быть достаточно малой, чтобы пользователь мог нажимать кнопки на клавиатуре с минимальной задержкой. Текущие значения Rp и Cp вводят задержку 5 мс, кроме того, минимальная частота (из таблицы в первой части статьи) равна 1516 Гц, что намного выше 278 Гц.
Роль резистора Rc
Если посмотрите на схему интерфейса клавиатуры, вы увидите, что резистор Rc имеет сопротивление 10 МОм и включен непосредственно между Vcc и конденсатором С. Данный резистор играет очень интересную роль. Когда пользователь отпускает кнопку, несинхронизированный мультивибратор останавливается, поскольку из цепи исключается резистор R2 (типовая схема включения). Мы знаем, что выходной каскад таймера 555 имеет RS триггер. Предположим, что триггер был сброшен (что означает высокий уровень на выходе 555) в момент, когда кнопка клавиатуры была отпущена. В этом случае теряется путь для подачи сигнала низкого уровня на вход сброса (т.к. исключили резистор R2), пока мы не обеспечим альтернативное решение для перезарядки конденсатора С. Как только конденсатор заряжается до 2/3 напряжения питания, на выходе снова появляется сигнал низкого уровня. Помните, что мы должны убедиться, что выходное напряжение падает до 0, прежде чем будет нажата следующая кнопка. Так вот, резистор Rc заботится об этом процессе. Большое значение его сопротивления (10 МОм) гарантирует, что имеет небольшое влияние на зарядку конденсатора С при нормальной работе.
Функциональная схема таймера 555 и анимация работы таймера
Часть 3. Подключение интерфейса клавиатуры к микроконтроллеру, основные моменты в ПО микроконтроллера, демонстрация работы.