Tajmer je vrsta sata koji se koristi za mjerenje vremenskih intervala. Postoje dvije vrste timera, jedan koji broji prema gore od nule, za mjerenje proteklog vremena, koji se naziva štoperica. A, drugi odbrojava od određenog vremenskog trajanja koje je pružio korisnik, obično nazvan Odbrojavanje vremena.
Ovdje ćemo vam u ovom vodiču pokazati kako napraviti odbrojavanje pomoću Arduina. Ovdje ne koristimo nijedan modul sata stvarnog vremena (RTC) za dobivanje vremena. Trajanje vremena osigurava korisnik uz pomoć tipkovnice i LCD-a 16x2. A kad tajmer dosegne nulu, uz pomoć zujalice proizvest će se zvuk upozorenja.
Potreban materijal
- Arduino UNO
- LCD 16 * 2
- 4 * 4 matrična tipkovnica
- Zujalica
- Tipkalo
- Potenciometar (10k)
- Otpornik (10k, 100 ohma)
- Spajanje žica
Dijagram kruga odbrojavanja Arduino

Arduino Uno ovdje se koristi kao glavni kontroler. Tipkovnica se koristi za unos vremenskog trajanja, a LCD 16 * 2 koristi se za prikaz odbrojavanja. Tipka se koristi za pokretanje vremena. Ovdje provjerite kako spojiti 4x4 tipkovnicu s Arduinom i 16x2 LCD s Arduinom.
Kod odbrojavanja Arduino i objašnjenje
Kompletni Arduino timer kod dat je na kraju ovog projekta.
U ovom donjem kodu inicijaliziramo knjižnice za tipkovnicu i LCD te varijable korištene u kodu.
#include
Sada, u donjem kodu inicijaliziramo br. redaka i stupaca za definiranje matrice za tipkovnicu.
const byte ROWS = 4; // Četiri reda const byte COLS = 4; // Tri stupca char tipke = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Za povezivanje matrične tipkovnice 4 * 4 s Arduinom moramo definirati igle za retke i stupce. Dakle, u donjem kodu definirali smo igle za tipkovnicu kao i LCD 16x2.
byte rowPins = {6, 7, 8, 9}; // Spojimo tipkovnicu ROW0, ROW1, ROW2 i ROW3 na ove bajtove colPins Arduino pinova = {10, 11, 12, 13}; // Spojimo tipkovnicu COL0, COL1 i COL2 do t LiquidCrystal LCD (A0, A1, 5, 4, 3, 2); // Stvara LC objekt. Parametri: (rs, enable, d4, d5, d6, d7)
Kôd u nastavku koristi se za izradu tipkovnice, Tipkovnica kpd = tipkovnica (makeKeymap (tipke), rowPins, colPins, ROWS, COLS);
U funkcijskom kodu void setFeedingTime () , nakon pritiska na tipku možemo unijeti vrijeme za odbrojavanje vremena, zatim nakon unosa trajanja vremena odbrojavanja, moramo pritisnuti D da započnemo odbrojavanje.
void setFeedingTime () {feed = točno; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Postavi vrijeme hranjenja"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); while (1) {key = kpd.getKey (); char j; if (ključ! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (ključ); r = ključ-48; i ++; j ++; if (j == 2 - j == 5) {lcd.print (":"); j ++; } kašnjenje (500); } if (ključ == 'D') {ključ = 0; pauza; }} lcd.clear (); }
U funkciji void setup () , inicijalizirali smo LCD i serijsku komunikaciju te definirali pinove kao INPUT i OUTPUT u donjem kodu.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, IZLAZ); pinMode (A1, IZLAZ); pinMode (A3, INPUT); pinMode (A4, IZLAZ); }
Rad ovog Arduino odbrojavanja vremena je jednostavan, ali kod je malo složen. Šifra je objašnjena komentarima u kodu.
U početku će ispisivati "Arduino Timer" na LCD zaslon dok ne pritisnete tipku. Čim pritisnete tipku, tražit će se da unesete trajanje vremena odbrojavanja pozivom funkcije " setFeedingTime ". Tada možete unijeti trajanje vremena pomoću tipkovnice. Zatim trebate pritisnuti 'D' da biste uštedjeli vrijeme i započeli odbrojavanje. Ovdje smo u funkciji void loop () izvršili izračunavanje kako bismo smanjivali vrijeme iz sekunde u sekundu i prikazivali ispravne vrijednosti sata, minuta i sekundi (HH: MM: SS) prema preostalom vremenu. Sav kôd je dobro objašnjen komentarima. Kompletni kod i demonstracijski video možete provjeriti u nastavku.

Kako tajmer dosegne nulu, zujalo započinje sa zvučnim signalom i oglašava se samo 100 puta (prema kodu). Da biste zaustavili zujalicu, pritisnite i držite tipku. Pomoću tipke možete bilo kada zaustaviti odbrojavanje vremena između brojača.

