Тактовая кнопка используется для управления режимами устройства, выбора параметров работы, запуска/остановки выполнения команд и так далее.
В основе тактовой кнопки лежит механическое устройство, которое при нажатии опускает токопроводящие пластинки на контакты, замыкая их.
Как любое механическое устройство, кнопка подвержена такому эффекту как дребезг, что означает неплотный контакт между пластинами и проводниками, который может приводить к ложным срабатываниям системы, поэтому такие помехи необходимо фильтровать либо программно, либо аппаратно.
Для удобства и простоты использования мы разместили всю схему с необходимой обвязкой на одной плате.
Модуль представляет собой функционально законченную конструкцию, содержит подтягивающий резистор и конденсатор для предотвращения эффекта дребезга контактов. Резистор включен таким образом, что при нажатии на выходе (pin DO) будет низкий уровень Vout = 0 (pin DO). Если же кнопка не нажата, то на выходе устанавливается высокий Vout = Vcc.
Кроме этого на плате предусмотрен защитный резистор на 1кОм, который предотвратит поломку в случае, если пользователь по ошибке установил пин микроконтроллера как выход.
К модулю необходимо подключить только питание и выводы контроллера при помощи четырехконтактного разъема.
Подключение модуля осуществляется с помощью разъема XH-2.54-4P, выводы которого имеют следующие назначения:
VCC - питание
DO - цифровой выход
AO - NC (не задействован)
GND - земля (общий)
Чтобы начать работу с датчиком его необходимо подключить к микроконтроллеру по схеме ниже. Для быстрого и надежного подключения используйте QuatroPort A050.
Далее в микроконтроллер необходимо загрузить следующую программу.
//Номер вывода светодиода #define LED_PIN 13 //Номер вывода кнопки #define BUTTON_PIN 8 //Переменная для хранения состояния кнопки int state = 0; void setup() { //Инициализируем вывод 13 как выход pinMode(LED_PIN, OUTPUT); //Инициализируем вывод 8 как вход pinMode(BUTTON_PIN, INPUT); } void loop() { //Сохраняем состояние кнопки //в переменную state = digitalRead(BUTTON_PIN); //Если кнопка нажата if (state == LOW) { //Включаем светодиод digitalWrite(LED_PIN, HIGH); } else { //Выключаем светодиод digitalWrite(LED_PIN, LOW); } }
Теперь при нажатии на кнопку будет загораться встроенный светодиод на плате с микроконтроллером. При отпущенной кнопке светодиод выключается обратно.