En timer er en type ur, der bruges til måling af tidsintervaller. Der er to typer timer, en der tæller opad fra nul til måling af den forløbne tid, kaldet Stopur. Og den anden tæller ned fra en bestemt tidsvarighed leveret af brugeren, generelt kaldet nedtællingstimer.
Her i denne vejledning viser vi dig, hvordan du laver en nedtællingstimer ved hjælp af Arduino. Her bruger vi ikke noget realtidsur (RTC) -modul til at få tiden. Tidsvarigheden leveres af brugeren ved hjælp af tastaturet og 16x2 LCD. Og når timeren når op til nul, produceres alarmlyd ved hjælp af summer.
Nødvendigt materiale
- Arduino UNO
- LCD 16 * 2
- 4 * 4 matrix tastatur
- Summer
- Trykknap
- Potentiometer (10k)
- Modstand (10k, 100 ohm)
- Tilslutning af ledninger
Arduino Countdown Timer Circuit Diagram
Arduino Uno bruges her som hovedcontroller. Et tastatur bruges til at fodre varigheden, og en 16 * 2 LCD bruges til at vise nedtællingen. Trykknappen bruges til at starte klokkeslættet. Tjek her, hvordan du interface 4x4-tastatur med Arduino og 16x2 LCD med Arduino.
Arduino-nedtællingskode og forklaring
Komplet Arduino Timer-kode gives i slutningen af dette projekt.
I denne kode nedenfor initialiserer vi biblioteker til tastatur og LCD og de variabler, der bruges i koden.
#omfatte
Nu, i nedenstående kode initialiserer vi nej. af rækker og kolonner til at definere matrixen til tastaturet.
const byte RÆGER = 4; // Fire rækker med byte COLS = 4; // Tre kolonner char nøgler = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
For at forbinde 4 * 4 matrix tastaturet med Arduino skal vi definere stifterne til rækkerne og kolonnerne. Så i nedenstående kode har vi definerede ben til tastaturet samt 16x2 LCD.
byte rowPins = {6, 7, 8, 9}; // Tilslut tastatur ROW0, ROW1, ROW2 og ROW3 til disse Arduino-pins byte colPins = {10, 11, 12, 13}; // Tilslut tastatur COL0, COL1 og COL2 til t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Opretter et LC-objekt. Parametre: (rs, aktiver, d4, d5, d6, d7)
Nedenstående kode bruges til at lave tastaturet, Tastatur kpd = Tastatur (makeKeymap (nøgler), rowPins, colPins, ROWS, COLS);
I ugyldig setFeedingTime () -funktionskoden, efter at vi har trykket på trykknappen, er vi i stand til at indtaste tiden til timeren, og efter at have indtastet timeren, skal vi trykke på D for at starte nedtællingen.
ugyldig setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Indstil fodringstid"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); mens (1) {key = kpd.getKey (); char j; hvis (nøgle! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (nøgle); r = nøgle-48; i ++; j ++; hvis (j == 2 - j == 5) {lcd.print (":"); j ++; } forsinkelse (500); } hvis (nøgle == 'D') {nøgle = 0; pause; }} lcd.clear (); }
I ugyldig opsætningsfunktion () har vi initialiseret LCD- og seriel kommunikation og defineret benene som INPUT og OUTPUT i nedenstående kode.
ugyldig opsætning () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
Arbejdet med denne Arduino Countdown Timer er enkel, men koden er lidt kompleks. Koden forklares med kommentarerne i koden.
Oprindeligt udskriver den "Arduino Timer" på LCD-displayet, indtil du trykker på trykknappen. Så snart du trykker på trykknappen, bliver den bedt om at indtaste varigheden af nedtællingstiden ved at kalde " setFeedingTime " -funktionen. Derefter kan du indtaste varigheden ved hjælp af tastaturet. Derefter skal du trykke på 'D' for at spare tid og starte nedtællingstimeren. Her i ugyldig loop () -funktion har vi foretaget nogle beregninger for at reducere tiden sekund for sekund og for at vise de korrekte værdier for time, minutter og sekunder (HH: MM: SS) i henhold til den resterende tid. Al koden er godt forklaret af kommentarer. Du kan tjekke den komplette kode og demonstrationsvideo nedenfor.
Når timeren når til nul, begynder summeren at bippe og bipper kun 100 gange (i henhold til koden). For at stoppe summeren skal du trykke på og holde trykknappen nede. Du kan bruge trykknappen når som helst til at stoppe timeren imellem optællingen.