En timer är en typ av klocka som används för mätning av tidsintervall. Det finns två typer av timer, en som räknas uppåt från noll, för mätning av förfluten tid, kallad stoppur. Och den andra räknar ner från en viss tidsperiod som tillhandahålls av användaren, vanligtvis kallad nedräkningstimer.
Här, i denna handledning, visar vi dig hur du gör en nedräkningstimer med Arduino. Här använder vi inte någon Real Time Clock (RTC) -modul för att få tiden. Tidslängden tillhandahålls av användaren med hjälp av knappsatsen och 16x2 LCD. Och när timern når noll, kommer varningsljud att produceras med hjälp av Buzzer.
Material krävs
- Arduino UNO
- LCD 16 * 2
- 4 * 4 matris knappsats
- Summer
- Tryckknapp
- Potentiometer (10k)
- Motstånd (10k, 100 ohm)
- Anslutande ledningar
Arduino Countdown Timer Circuit Diagram
Arduino Uno används här som huvudkontroll. En knappsats används för matning av tidslängden och en 16 * 2 LCD används för att visa nedräkningen. Tryckknappen används för att starta tiden. Kolla här hur man gränssnitt 4x4 tangentbord med Arduino och 16x2 LCD med Arduino.
Arduino nedräkningskod och förklaring
Komplett Arduino Timer-kod ges i slutet av detta projekt.
I den här koden nedan initialiserar vi bibliotek för knappsats och LCD och de variabler som används i koden.
#omfatta
Nu, i koden nedan initialiserar vi nej. av rader och kolumner för att definiera matrisen för knappsatsen.
const byte ROWS = 4; // Fyra rader med byte COLS = 4; // Tre kolumner char-nycklar = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
För att ansluta matrisens knappsats 4 * 4 med Arduino måste vi definiera stiften för raderna och kolumnerna. Så i nedanstående kod har vi definierade stift för tangentbordet liksom 16x2 LCD.
byte rowPins = {6, 7, 8, 9}; // Anslut knappsats ROW0, ROW1, ROW2 och ROW3 till dessa Arduino-stift byte colPins = {10, 11, 12, 13}; // Anslut knappsats COL0, COL1 och COL2 till t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Skapar ett LC-objekt. Parametrar: (rs, aktivera, d4, d5, d6, d7)
Koden nedan används för att göra knappsatsen, Knappsats kpd = Knappsats (makeKeymap (tangenter), rowPins, colPins, ROWS, COLS);
I tomrummet setFeedingTime () -funktionskod, efter att ha tryckt på tryckknappen, kan vi ange tiden för timern och sedan efter att ha angett timern, måste vi trycka på D för att starta nedräkningen.
ogiltig setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Ställ in matningstid"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); medan (1) {key = kpd.getKey (); char j; om (nyckel! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (nyckel); r = nyckel-48; i ++; j ++; if (j == 2 - j == 5) {lcd.print (":"); j ++; } fördröjning (500); } om (key == 'D') {key = 0; ha sönder; }} lcd.clear (); }
I void setup () -funktionen har vi initierat LCD- och seriekommunikationen och definierat stiften som INPUT och OUTPUT i nedanstående kod.
ogiltig installation () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
Att arbeta med denna Arduino-nedräkningstimer är enkelt men koden är lite komplex. Koden förklaras av kommentarerna i koden.
Ursprungligen kommer den att skriva ut "Arduino Timer" på LCD-skärmen tills du trycker på tryckknappen. Så snart du trycker på tryckknappen kommer den att be att ange nedräkningstiden genom att anropa funktionen " setFeedingTime ". Sedan kan du ange tidslängden med hjälp av knappsatsen. Då måste du trycka på 'D' för att spara tid och starta nedräkningstimern. Här i void loop () -funktionen har vi gjort en del beräkningar för att minska tiden sekund för sekund och för att visa rätt värden för Hour, Minutes and Seconds (HH: MM: SS) enligt återstående tid. Hela koden förklaras väl av kommentarer. Du kan kontrollera hela koden och demonstrationsvideon nedan.
När timern når noll börjar summern att pipa och pipar bara 100 gånger (enligt koden). För att stoppa summern, tryck och håll ned tryckknappen. Du kan använda tryckknappen när som helst för att stoppa timern mellan räkningen.