Een timer is een type klok dat wordt gebruikt voor het meten van tijdsintervallen. Er zijn twee soorten timer, een die vanaf nul naar boven telt, voor het meten van de verstreken tijd, de zogenaamde stopwatch. En de tweede telt af vanaf een gespecificeerde tijdsduur die door de gebruiker is opgegeven, in het algemeen Countdown Timer genoemd.
Hier laten we je in deze tutorial zien hoe je een Countdown Timer kunt maken met Arduino. Hier gebruiken we geen Real Time Clock (RTC) -module om de tijd te krijgen. De tijdsduur wordt door de gebruiker bepaald met behulp van het toetsenbord en 16x2 LCD. En wanneer de timer nul bereikt, wordt een waarschuwingsgeluid geproduceerd met behulp van de zoemer.
Materiaal vereist
- Arduino UNO
- LCD 16 * 2
- 4 * 4 matrix toetsenbord
- Zoemer
- Druk op de knop
- Potentiometer (10k)
- Weerstand (10k, 100 ohm)
- Draden aansluiten
Arduino Countdown Timer schakelschema
Arduino Uno wordt hier gebruikt als hoofdcontroller. Een toetsenbord wordt gebruikt voor het invoeren van de tijdsduur en een 16 * 2 LCD wordt gebruikt om het aftellen weer te geven. De drukknop wordt gebruikt om de tijd te starten. Bekijk hier hoe u een 4x4-toetsenbord met Arduino en een 16x2 LCD-scherm met Arduino verbindt.
Arduino Countdown Timer Code en uitleg
De volledige Arduino-timercode wordt aan het einde van dit project gegeven.
In deze code hieronder initialiseren we bibliotheken voor toetsenbord en LCD en de variabelen die in de code worden gebruikt.
# omvatten
Nu initialiseren we in de onderstaande code het nr. rijen en kolommen voor het definiëren van de matrix voor toetsenbord.
const byte RIJEN = 4; // Vier rijen const byte COLS = 4; // Karaktertoetsen met drie kolommen = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Om het 4 * 4 matrix toetsenbord met Arduino te verbinden, moeten we de pinnen voor de rijen en kolommen definiëren. Dus in onderstaande code hebben we pinnen gedefinieerd voor zowel toetsenbord als 16x2 LCD.
byte rowPins = {6, 7, 8, 9}; // Sluit toetsenbord ROW0, ROW1, ROW2 en ROW3 aan op deze Arduino-pinnen byte colPins = {10, 11, 12, 13}; // Sluit toetsenbord COL0, COL1 en COL2 aan naar t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Creëert een LC-object. Parameters: (rs, enable, d4, d5, d6, d7)
De onderstaande code wordt gebruikt om het toetsenbord te maken, Toetsenbord kpd = Toetsenbord (makeKeymap (toetsen), rowPins, colPins, ROWS, COLS);
In de ongeldige functiecode setFeedingTime () kunnen we na het indrukken van de drukknop de tijd voor de timer invoeren en na het invoeren van de tijdsduur van de timer moeten we op D drukken om het aftellen te starten.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Stel voedertijd in"); lcd.clear (); lcd.print ("UU: MM: SS"); lcd.setCursor (0,1); while (1) {key = kpd.getKey (); char j; if (key! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (sleutel); r = key-48; i ++; j ++; if (j == 2 - j == 5) {lcd.print (":"); j ++; } vertraging (500); } if (key == 'D') {key = 0; breken; }} lcd.clear (); }
In de void setup () -functie hebben we de LCD en seriële communicatie geïnitialiseerd en de pinnen gedefinieerd als INPUT en OUTPUT in de onderstaande code.
leegte setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, UITGANG); }
De werking van deze Arduino Countdown Timer is eenvoudig, maar de code is een beetje ingewikkeld. De code wordt verklaard door de opmerkingen in de code.
In eerste instantie zal het "Arduino Timer" op het LCD-scherm afdrukken totdat u op de drukknop drukt. Zodra u op de drukknop drukt, wordt u gevraagd de afteltijd in te voeren door de functie " setFeedingTime " op te roepen. Vervolgens kunt u de tijdsduur invoeren met behulp van het toetsenbord. Vervolgens moet u op 'D' drukken om de tijd op te slaan en de afteltimer te starten. Hier in de functie void loop () hebben we een berekening gemaakt om de tijd seconde na seconde te verlagen en om de juiste waarden van uur, minuten en seconden (UU: MM: SS) te tonen op basis van de resterende tijd. Alle code wordt goed uitgelegd door opmerkingen. Je kunt de volledige code en demonstratievideo hieronder bekijken.
Als de timer nul bereikt, begint de zoemer te piepen en piept hij slechts 100 keer (volgens de code). Houd de drukknop ingedrukt om de zoemer te stoppen. U kunt de drukknop op elk moment gebruiken om de timer tussen het tellen te stoppen.