- Необходим материал
- Диаграма на таймера за обратно отброяване на Arduino
- Код на таймера за обратно отброяване на Arduino и обяснение
Таймерът е вид часовник, използван за измерване на интервали от време. Има два вида таймер, един който отчита нагоре от нула, за измерване на изминалото време, наречен хронометър. И вторият отброява от определена продължителност на времето, предоставена от потребителя, обикновено наричана таймер за обратно броене.
Тук, в този урок ще ви покажем как да направите таймер за обратно отброяване с помощта на Arduino. Тук не използваме никакъв модул за часовник в реално време (RTC) за получаване на времето. Продължителността на времето се предоставя от потребителя с помощта на клавиатурата и 16x2 LCD. И когато таймерът достигне нула, с помощта на зумер ще се издава предупредителен звук.
Необходим материал
- Arduino UNO
- LCD 16 * 2
- 4 * 4 матрична клавиатура
- Звънец
- Натисни бутона
- Потенциометър (10k)
- Резистор (10k, 100 ома)
- Свързващи проводници
Диаграма на таймера за обратно отброяване на Arduino
Arduino Uno се използва тук като основен контролер. Клавиатурата се използва за подаване на продължителността на времето и 16 * 2 LCD се използва за показване на обратно броене. Бутонът се използва за стартиране на часа. Проверете тук как да свържете 4х4 клавиатура с Arduino и 16x2 LCD с Arduino.
Код на таймера за обратно отброяване на Arduino и обяснение
Пълният код на Arduino Timer е даден в края на този проект.
В този код по-долу инициализираме библиотеки за клавиатура и LCD и променливите, използвани в кода.
#include
Сега, в кода по-долу ние инициализираме не. на редове и колони за определяне на матрицата за клавиатурата.
const байт ROWS = 4; // Четири реда const байт COLS = 4; // Три колони char char = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
За свързване на матричната клавиатура 4 * 4 с Arduino трябва да дефинираме щифтовете за редовете и колоните. Така че в долния код имаме дефинирани щифтове за клавиатура, както и 16x2 LCD.
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)
Кодът по-долу се използва за направата на клавиатурата, Клавиатура kpd = клавиатура (makeKeymap (клавиши), rowPins, colPins, ROWS, COLS);
Във функционалния код void setFeedingTime () , след натискане на бутона можем да въведем времето за таймер, след което след въвеждане на продължителността на времето на таймера, трябва да натиснем D, за да започнем обратното отброяване.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Задаване на време за подаване"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); докато (1) {ключ = kpd.getKey (); char j; if (ключ! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (ключ); r = ключ-48; i ++; j ++; ако (j == 2 - j == 5) {lcd.print (":"); j ++; } закъснение (500); } if (ключ == 'D') {ключ = 0; почивка; }} lcd.clear (); }
Във функцията void setup () ние инициализирахме LCD и серийната комуникация и определихме щифтовете като INPUT и OUTPUT в кода по-долу.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
Работата с този Arduino Countdown Timer е проста, но кодът е малко сложен. Кодът се обяснява с коментарите в кода.
Първоначално ще отпечата „Arduino Timer“ на LCD дисплея, докато не натиснете бутона. Веднага щом натиснете бутона, той ще поиска да въведе продължителността на времето за обратно отброяване, като извика функцията “ setFeedingTime ”. След това можете да въведете продължителността на времето с помощта на клавиатурата. След това трябва да натиснете „D“, за да спестите време и да започнете таймера за обратно отброяване. Тук във функцията void loop () , направихме някои изчисления, за да намалим времето секунда по секунда и да покажем правилните стойности на час, минути и секунди (HH: MM: SS) според оставащото време. Целият код е добре обяснен с коментари. Можете да проверите пълния код и демонстрационното видео по-долу.
Когато таймерът достигне нула, зумерът започва да издава звуков сигнал и издава звуков сигнал само 100 пъти (според кода). За да спрете зумера, натиснете и задръжте бутона. Можете да използвате бутона по всяко време, за да спрете таймера между броенето.