- Необходимый материал
- Принципиальная схема таймера обратного отсчета Arduino
- Код таймера обратного отсчета Arduino и объяснение
Таймер - это тип часов, используемых для измерения временных интервалов. Есть два типа таймеров, один из которых ведет отсчет от нуля для измерения прошедшего времени и называется секундомером. А второй отсчитывает время в обратном порядке от указанного пользователем времени, обычно называемого таймером обратного отсчета.
В этом уроке мы покажем вам, как создать таймер обратного отсчета с помощью Arduino. Здесь мы не используем какой-либо модуль часов реального времени (RTC) для получения времени. Продолжительность времени задается пользователем с помощью клавиатуры и ЖК-дисплея 16x2. И когда таймер достигает нуля, с помощью зуммера раздается звуковой сигнал.
Необходимый материал
- Arduino UNO
- ЖК-дисплей 16 * 2
- Матричная клавиатура 4 * 4
- Зуммер
- Нажать кнопку
- Потенциометр (10к)
- Резистор (10 кОм, 100 Ом)
- Соединительные провода
Принципиальная схема таймера обратного отсчета Arduino
Arduino Uno используется здесь в качестве основного контроллера. Клавиатура используется для ввода продолжительности времени, а ЖК-дисплей размером 16 * 2 используется для отображения обратного отсчета. Кнопка используется для запуска времени. Узнайте здесь, как подключить клавиатуру 4x4 к Arduino и ЖК-дисплей 16x2 к Arduino.
Код таймера обратного отсчета Arduino и объяснение
Полный код таймера Arduino приведен в конце этого проекта.
В этом коде ниже мы инициализируем библиотеки для клавиатуры и ЖК-дисплея, а также переменные, используемые в коде.
#включают
Теперь в приведенном ниже коде мы инициализируем номер. строк и столбцов для определения матрицы клавиатуры.
const byte ROWS = 4; // Четыре строки const byte COLS = 4; // Три ключа столбца char = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Для подключения матричной клавиатуры 4 * 4 к Arduino мы должны определить контакты для строк и столбцов. Итак, в приведенном ниже коде мы определили контакты для клавиатуры, а также для ЖК-дисплея 16x2.
byte rowPins = {6, 7, 8, 9}; // Подключаем клавиатуру ROW0, ROW1, ROW2 и ROW3 к этим контактам Arduino byte colPins = {10, 11, 12, 13}; // Подключаем клавиатуру COL0, COL1 и COL2 к t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Создает объект LC. Параметры: (rs, enable, d4, d5, d6, d7)
Приведенный ниже код используется для создания клавиатуры, Keypad kpd = Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS);
В коде функции void setFeedingTime () после нажатия кнопки мы можем ввести время для таймера, затем после ввода продолжительности времени таймера мы должны нажать D, чтобы начать обратный отсчет.
void setFeedingTime () {feed = true; int я = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print («Установить время кормления»); lcd.clear (); lcd.print ("ЧЧ: ММ: СС"); lcd.setCursor (0,1); в то время как (1) {ключ = kpd.getKey (); char j; если (ключ! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (ключ); r = ключ-48; i ++; j ++; если (j == 2 - j == 5) {lcd.print (":"); j ++; } задержка (500); } если (ключ == 'D') {ключ = 0; сломать; }} lcd.clear (); }
В функции void setup () мы инициализировали ЖК-дисплей и последовательную связь и определили контакты как INPUT и OUTPUT в приведенном ниже коде.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, ВЫХОД); pinMode (A1, ВЫХОД); pinMode (A3, ВХОД); pinMode (A4, ВЫХОД); }
Работа этого таймера обратного отсчета Arduino проста, но код немного сложен. Код поясняется комментариями в коде.
Первоначально он будет печатать «Таймер Arduino» на ЖК-дисплее, пока вы не нажмете кнопку. Как только вы нажмете кнопку, она попросит ввести продолжительность обратного отсчета, вызвав функцию « setFeedingTime ». Затем вы можете ввести продолжительность с помощью клавиатуры. Затем вам нужно нажать «D», чтобы сэкономить время и запустить таймер обратного отсчета. Здесь, в функции void loop () , мы выполнили некоторые вычисления, чтобы уменьшить время секунды на секунду и показать правильные значения часов, минут и секунд (ЧЧ: ММ: СС) в соответствии с оставшимся временем. Весь код хорошо объяснен комментариями. Вы можете проверить полный код и демонстрационное видео ниже.
Когда таймер достигает нуля, зуммер начинает пищать и издает звуковой сигнал только 100 раз (согласно коду). Чтобы выключить зуммер, нажмите и удерживайте кнопку. Вы можете использовать кнопку в любое время, чтобы остановить таймер между подсчетами.