En tidtaker er en type klokke som brukes til måling av tidsintervaller. Det er to typer tidtakere, en som teller oppover fra null, for måling av forløpt tid, kalt Stopwatch. Og den andre teller ned fra en spesifisert tidsperiode gitt av brukeren, vanligvis kalt som nedtellingstimer.
Her, i denne opplæringen, viser vi deg hvordan du lager en nedtellingstimer ved hjelp av Arduino. Her bruker vi ikke noen Real Time Clock (RTC) -modul for å få tiden. Tidsvarigheten er gitt av brukeren ved hjelp av tastaturet og 16x2 LCD. Og når timeren når null, vil alarmlyd produseres ved hjelp av Buzzer.
Nødvendig materiale
- Arduino UNO
- LCD 16 * 2
- 4 * 4 matrisetastatur
- Summer
- Trykknapp
- Potensiometer (10k)
- Motstand (10k, 100 ohm)
- Koble ledninger
Arduino Countdown Timer Circuit Diagram
Arduino Uno brukes her som hovedkontroller. Et tastatur brukes til å mate varigheten, og en 16 * 2 LCD brukes til å vise nedtellingen. Trykknappen brukes til å starte tiden. Sjekk her hvordan du kan grensesnitt 4x4 tastatur med Arduino og 16x2 LCD med Arduino.
Arduino nedtellingskode og forklaring
Komplett Arduino Timer-kode er gitt på slutten av dette prosjektet.
I denne koden nedenfor initialiserer vi biblioteker for tastatur og LCD og variablene som brukes i koden.
#inkludere
Nå, i koden nedenfor initialiserer vi nei. av rader og kolonner for å definere matrisen for tastaturet.
const byte RADER = 4; // Fire rader med byte COLS = 4; // Tre kolonner tegn med tegn: {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
For å koble 4 * 4 matrisetastaturet med Arduino, må vi definere pinnene for radene og kolonnene. Så i koden nedenfor har vi definert pinner for tastaturet samt 16x2 LCD.
byte rowPins = {6, 7, 8, 9}; // Koble tastaturet ROW0, ROW1, ROW2 og ROW3 til disse Arduino-pins byte colPins = {10, 11, 12, 13}; // Koble tastaturet COL0, COL1 og COL2 til t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Oppretter et LC-objekt. Parametere: (rs, aktivere, d4, d5, d6, d7)
Koden nedenfor brukes til å lage tastaturet, Tastatur kpd = Tastatur (makeKeymap (nøkler), rowPins, colPins, ROWS, COLS);
I tomrumset setFeedingTime () -funksjonskoden, etter å ha trykket på trykknappen, er vi i stand til å angi tiden for tidtakeren, og etter at vi har tastet inn varighetstiden, må vi trykke D for å starte nedtellingen.
ugyldig setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Angi fôringstid"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); mens (1) {nøkkel = kpd.getKey (); røye j; hvis (nøkkel! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (nøkkel); r = nøkkel-48; i ++; j ++; hvis (j == 2 - j == 5) {lcd.print (":"); j ++; } forsinkelse (500); } hvis (nøkkel == 'D') {nøkkel = 0; gå i stykker; }} lcd.clear (); }
I ugyldig oppsett () -funksjon har vi initialisert LCD- og seriekommunikasjon, og definert pinnene som INNGANG og UTGANG i koden nedenfor.
ugyldig oppsett () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
Å jobbe med denne Arduino Countdown Timer er enkel, men koden er litt kompleks. Koden forklares av kommentarene i koden.
Opprinnelig vil den skrive ut "Arduino Timer" på LCD-skjermen til du trykker på trykknappen. Så snart du trykker på trykknappen, vil den be om å angi nedtellingens varighet ved å ringe “ setFeedingTime ” -funksjonen. Deretter kan du angi tidsvarigheten ved hjelp av tastaturet. Deretter må du trykke 'D' for å spare tid og starte nedtellingstimeren. Her i void loop () -funksjonen har vi gjort noen beregninger for å redusere tiden sekund for sekund og for å vise de riktige verdiene til Time, Minutes and Seconds (HH: MM: SS) i henhold til gjenværende tid. All koden er godt forklart av kommentarer. Du kan sjekke hele koden og demonstrasjonsvideoen nedenfor.
Når timeren når null, begynner summeren å pippe og piper bare 100 ganger (i henhold til koden). For å stoppe summeren, trykk og hold inne trykknappen. Du kan bruke trykknappen når som helst for å stoppe timeren mellom å telle.