- Material necesar
- Diagrama circuitului temporizatorului Arduino
- Codul și explicația temporizatorului Arduino
Un cronometru este un tip de ceas utilizat pentru măsurarea intervalelor de timp. Există două tipuri de temporizator, unul care contează în sus de la zero, pentru măsurarea timpului scurs, numit Cronometru. Și, al doilea contează înapoi de la o durată de timp specificată furnizată de utilizator, numită în general ca temporizator de numărătoare inversă.
Aici, în acest tutorial vă vom arăta cum să realizați un temporizator cu numărătoare inversă folosind Arduino. Aici nu folosim niciun modul Ceas în timp real (RTC) pentru a obține timpul. Durata de timp este furnizată de utilizator cu ajutorul tastaturii și a ecranului LCD 16x2. Iar când cronometrul ajunge la zero, sunetul de alertă va fi produs cu ajutorul Buzzer.
Material necesar
- Arduino UNO
- LCD 16 * 2
- Tastatură matricială 4 * 4
- Buzzer
- Apasa butonul
- Potențiometru (10k)
- Rezistor (10k, 100 ohm)
- Conectarea firelor
Diagrama circuitului temporizatorului Arduino
Arduino Uno este folosit aici ca controler principal. O tastatură este utilizată pentru alimentarea duratei de timp și un ecran LCD de 16 * 2 este utilizat pentru a afișa numărătoarea inversă. Butonul este utilizat pentru a începe ora. Consultați aici cum să interfațați tastatura 4x4 cu Arduino și LCD 16x2 cu Arduino.
Codul și explicația temporizatorului Arduino
Codul complet al temporizatorului Arduino este dat la sfârșitul acestui proiect.
În acest cod de mai jos, inițializăm bibliotecile pentru tastatură și LCD și variabilele utilizate în cod.
#include
Acum, în codul de mai jos inițializăm nr. de rânduri și coloane pentru definirea matricei pentru tastatură.
octet const ROWS = 4; // Patru rânduri const octet COLS = 4; // Trei coloane chei de caractere = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Pentru conectarea tastaturii matrice 4 * 4 cu Arduino trebuie să definim pinii pentru rânduri și coloane. Deci, în codul de mai jos, am definit pini pentru tastatură, precum și LCD 16x2.
byte rowPins = {6, 7, 8, 9}; // Conectați tastatura ROW0, ROW1, ROW2 și ROW3 la acești pini Arduino byte colPins = {10, 11, 12, 13}; // Conectați tastatura COL0, COL1 și COL2 la t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Creează un obiect LC. Parametri: (rs, enable, d4, d5, d6, d7)
Codul de mai jos este utilizat pentru realizarea tastaturii, Tastatura kpd = Tastatura (makeKeymap (taste), rowPins, colPins, ROWS, COLS);
În codul funcției void setFeedingTime () , după apăsarea butonului, putem introduce ora pentru temporizator, apoi după introducerea duratei temporizatorului, trebuie să apăsăm D pentru a începe numărătoarea inversă.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Setați timpul de alimentare"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); while (1) {cheie = kpd.getKey (); char j; if (cheie! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (cheie); r = cheie-48; i ++; j ++; if (j == 2 - j == 5) {lcd.print (":"); j ++; } întârziere (500); } if (cheie == 'D') {cheie = 0; pauză; }} lcd.clear (); }
În funcția de configurare nulă () , am inițializat comunicarea LCD și serial și am definit pinii ca INPUT și OUTPUT în codul de mai jos.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
Lucrul acestui Arduino Countdown Timer este simplu, dar codul este puțin complex. Codul este explicat de comentariile din cod.
Inițial, acesta va imprima „Arduino Timer” pe afișajul LCD până când apăsați butonul. De îndată ce apăsați butonul, acesta vă va cere să introduceți durata timpului de numărătoare inversă apelând funcția „ setFeedingTime ”. Apoi, puteți introduce durata cu ajutorul tastaturii. Apoi, trebuie să apăsați „D” pentru a economisi timpul și pentru a începe temporizatorul. Aici, în funcția de buclă nulă () , am făcut câteva calcule pentru a diminua timpul secundă cu secundă și pentru a afișa valorile adecvate ale orei, minutelor și secundelor (HH: MM: SS) în funcție de timpul rămas. Tot codul este bine explicat de comentarii. Puteți verifica codul complet și videoclipul demonstrativ de mai jos.
Pe măsură ce temporizatorul ajunge la zero, buzzerul începe să emită bipuri și să emită doar 100 de ori (conform codului). Pentru a opri soneria, apăsați și țineți apăsat butonul. Puteți utiliza oricând butonul pentru a opri cronometrul între numărare.