Časovnik je vrsta ure, ki se uporablja za merjenje časovnih intervalov. Obstajata dve vrsti časovnika, eden, ki šteje navzgor od nič, za merjenje pretečenega časa, imenovan štoparica. In drugi odšteva od določenega časovnega trajanja, ki ga zagotovi uporabnik, ki se običajno imenuje odštevalnik časa.
V tej vadnici vam bomo pokazali, kako narediti odštevalnik časa z uporabo Arduina. Tu ne uporabljamo nobenega modula ure realnega časa (RTC) za pridobivanje časa. Čas trajanja določi uporabnik s pomočjo tipkovnice in 16x2 LCD. In ko časovnik doseže ničlo, se bo s pomočjo zvočnika sprožil opozorilni zvok.
Potreben material
- Arduino UNO
- LCD 16 * 2
- 4 * 4 matrična tipkovnica
- Zvočni signal
- Pritisni gumb
- Potenciometer (10k)
- Upor (10k, 100 ohm)
- Priključne žice
Shema vezja odštevalnika Arduino
Tu se kot glavni krmilnik uporablja Arduino Uno. Za podajanje časa se uporablja tipkovnica, za prikaz odštevanja pa se uporablja LCD 16 * 2. S tipko se začne čas. Tukaj si oglejte, kako povežete 4x4 tipkovnico z Arduino in 16x2 LCD z Arduino.
Koda odštevalnika Arduino in razlaga
Popolna koda Arduino Timer je podana na koncu tega projekta.
V tej spodnji kodi inicializiramo knjižnice za tipkovnico in LCD ter spremenljivke, uporabljene v kodi.
#include
Zdaj v spodnji kodi inicializiramo št. vrstic in stolpcev za določanje matrike za tipkovnico.
const byte ROWS = 4; // Štiri vrstice const byte COLS = 4; // Tipke char s tremi stolpci = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Za povezavo matrične tipkovnice 4 * 4 z Arduinom moramo določiti nožice za vrstice in stolpce. V spodnji kodi smo torej določili nožice za tipkovnico in LCD 16x2.
byte rowPins = {6, 7, 8, 9}; // priključimo tipkovnico ROW0, ROW1, ROW2 in ROW3 na te bajtne colPins pinov Arduino = {10, 11, 12, 13}; // povežemo tipkovnico COL0, COL1 in COL2 do t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Ustvari objekt LC. Parametri: (rs, omogoči, d4, d5, d6, d7)
Spodnja koda se uporablja za izdelavo tipkovnice, Tipkovnica kpd = tipkovnica (makeKeymap (tipke), rowPins, colPins, ROWS, COLS);
V funkcijski kodi void setFeedingTime () lahko po pritisku na tipko vnesemo čas za časovnik, nato pa po vnosu trajanja časovnika moramo pritisniti D, da začnemo odštevanje.
void setFeedingTime () {feed = res; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Nastavi čas podajanja"); 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 = tipka-48; i ++; j ++; če (j == 2 - j == 5) {lcd.print (":"); j ++; } zamuda (500); } if (key == 'D') {key = 0; odmor; }} lcd.clear (); }
V funkciji void setup () smo inicializirali LCD in serijsko komunikacijo ter v spodnji kodi definirali nožice kot INPUT in OUTPUT.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, IZHOD); pinMode (A1, IZHOD); pinMode (A3, INPUT); pinMode (A4, IZHOD); }
Delovanje tega Arduino odštevalnika je preprosto, vendar je koda nekoliko zapletena. Koda je razložena s komentarji v kodi.
Sprva bo na LCD zaslon natisnil »Arduino Timer«, dokler ne pritisnete gumba. Takoj, ko pritisnete tipko, vas bo pozval, da vnesete čas odštevanja s klicem funkcije “ setFeedingTime ”. Nato lahko s pomočjo tipkovnice vnesete čas trajanja. Nato morate pritisniti 'D', da prihranite čas in začnete odštevalnik. Tukaj v funkciji void loop () smo naredili nekaj izračunov, da čas zmanjšujemo sekundo za sekundo in prikazujemo ustrezne vrednosti ure, minut in sekund (HH: MM: SS) glede na preostali čas. Vsa koda je dobro pojasnjena s komentarji. Spodaj lahko preverite celotno kodo in predstavitveni video.
Ko časovnik doseže ničlo, začne zvočni signal piskati in piska samo 100-krat (v skladu s kodo). Če želite zaustaviti brenčalo, pritisnite in pridržite tipko. S tipko lahko kadar koli ustavite časovnik med štetjem.