- Potrebný materiál
- Schéma zapojenia časovača odpočítavania Arduino
- Arduino Countdown Timer Code a vysvetlenie
Časovač je typ hodín používaných na meranie časových intervalov. Existujú dva typy časovačov, z ktorých jeden sa počíta od nuly smerom nahor a ktorý sa nazýva stopky. A druhá odpočítava od určeného času poskytnutého používateľom, ktorý sa všeobecne nazýva odpočítavací časovač.
Tu v tomto výučbe vám ukážeme, ako vytvoriť odpočítavací časovač pomocou Arduina. Tu na získanie času nepoužívame žiaden modul hodín v reálnom čase (RTC). Časové trvanie poskytuje užívateľ pomocou klávesnice a 16x2 LCD. A keď časovač dosiahne nulu, vydá sa výstražný zvuk pomocou bzučiaka.
Potrebný materiál
- Arduino UNO
- LCD 16 * 2
- 4 * 4 maticová klávesnica
- Bzučiak
- Tlačidlo
- Potenciometer (10k)
- Rezistor (10k, 100 ohm)
- Pripojovacie vodiče
Schéma zapojenia časovača odpočítavania Arduino
Arduino Uno sa tu používa ako hlavný radič. Na zadávanie času sa používa klávesnica a na zobrazenie odpočítavania sa používa 16 * 2 LCD. Na spustenie času sa používa tlačidlo. Skontrolujte tu, ako prepojiť klávesnicu 4x4 s Arduino a 16x2 LCD s Arduino.
Arduino Countdown Timer Code a vysvetlenie
Kompletný kód časovača Arduino je uvedený na konci tohto projektu.
V tomto kóde nižšie inicializujeme knižnice pre klávesnicu a LCD a premenné použité v kóde.
#include
Teraz v nasledujúcom kóde inicializujeme č. riadkov a stĺpcov pre definovanie matice pre klávesnicu.
konštajtový byte RIADKY = 4; // Štyri riadky const byte COLS = 4; // Tri stĺpce char keys = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Pre pripojenie maticovej klávesnice 4 * 4 k Arduinu musíme definovať piny pre riadky a stĺpce. Takže v nižšie uvedenom kóde sme definovali piny pre klávesnicu aj 16x2 LCD.
byte rowPins = {6, 7, 8, 9}; // Pripojte klávesnicu ROW0, ROW1, ROW2 a ROW3 k týmto pinom Arduino byte colPins = {10, 11, 12, 13}; // Pripojte klávesnicu COL0, COL1 a COL2 do t LiquidCrystal lcd (A0, Al, 5, 4, 3, 2); // Vytvorí objekt LC. Parametre: (rs, enable, d4, d5, d6, d7)
Nasledujúci kód sa používa na vytvorenie klávesnice, Klávesnica kpd = Klávesnica (makeKeymap (klávesy), RowPins, ColPins, ROWS, COLS);
Vo funkčnom kóde void setFeedingTime () , po stlačení tlačidla môžeme zadať čas pre časovač, potom po zadaní doby trvania časovača musíme stlačiť D, aby sa spustilo odpočítavanie.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Nastaviť čas podávania"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); while (1) {key = kpd.getKey (); char j; if (kľúč! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (kľúč); r = kľúč-48; i ++; j ++; if (j == 2 - j == 5) {lcd.print (":"); j ++; } oneskorenie (500); } if (key == 'D') {key = 0; prestávka; }} lcd.clear (); }
Vo funkcii void setup () sme inicializovali LCD a sériovú komunikáciu a v nasledujúcom kóde sme definovali piny ako INPUT a OUTPUT.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, VÝSTUP); pinMode (A1, VÝSTUP); pinMode (A3, VSTUP); pinMode (A4, VÝSTUP); }
Práca tohto Arduino odpočítavacieho časovača je jednoduchá, ale kód je trochu zložitý. Kód je vysvetlený komentármi v kóde.
Na začiatku bude na LCD displeji tlačiť „Arduino Timer“, kým nestlačíte tlačidlo. Len čo stlačíte tlačidlo, zobrazí sa výzva na zadanie trvania odpočítavania vyvolaním funkcie „ setFeedingTime “. Potom môžete pomocou klávesnice zadať čas trvania. Potom musíte stlačiť kláves „D“, aby ste ušetrili čas a spustili odpočítavací časovač. Tu vo funkcii void loop () sme vykonali nejaký výpočet, aby sme sekundu po sekunde znížili čas a aby sme podľa zostávajúceho času ukázali správne hodnoty hodín, minút a sekúnd (HH: MM: SS). Celý kód je dobre vysvetlený komentármi. Celý kód a demonštračné video si môžete pozrieť nižšie.
Keď časovač dosiahne nulu, bzučiak začne pípať a pípne iba 100-krát (podľa kódu). Ak chcete bzučiak vypnúť, stlačte a podržte tlačidlo. Tlačidlo môžete kedykoľvek použiť na zastavenie časovača medzi odpočítavaním.