- Reikalinga medžiaga
- „Arduino“ atgalinio laikmačio grandinės schema
- „Arduino“ laikmačio kodas ir paaiškinimas
Laikmatis yra laikrodžio tipas, naudojamas laiko intervalams matuoti. Yra dviejų tipų laikmatis, vienas skaičiuojamas į viršų nuo nulio, matuojant praėjusį laiką, vadinamas „ Chronometru“. Antrasis skaičiuojamas nuo vartotojo nurodytos trukmės, paprastai vadinamos atgaline laikmačiu.
Čia, šioje pamokoje, mes parodysime, kaip padaryti atgalinį laikmatį naudojant „Arduino“. Čia mes nenaudojame jokio realaus laiko laikrodžio (RTC) modulio, kad gautume laiko. Laiko trukmę vartotojas pateikia naudodamas klaviatūrą ir 16x2 LCD ekraną. Kai laikmatis pasiekia nulį, „Buzzer“ pagalba bus sukurtas perspėjimo garsas.
Reikalinga medžiaga
- „Arduino UNO“
- LCD 16 * 2
- 4 * 4 matricos klaviatūra
- Buzeris
- Mygtukas
- Potenciometras (10k)
- Rezistorius (10k, 100 omų)
- Jungiamieji laidai
„Arduino“ atgalinio laikmačio grandinės schema
„Arduino Uno“ čia naudojamas kaip pagrindinis valdiklis. Klaviatūra naudojama laiko trukmei įrašyti, o 16 * 2 skystųjų kristalų ekranas naudojamas atskaitos skaičiui parodyti. Laikas pradedamas naudoti mygtuku. Patikrinkite čia, kaip susieti 4x4 klaviatūrą su „Arduino“ ir 16x2 LCD su „Arduino“.
„Arduino“ laikmačio kodas ir paaiškinimas
Pilnas „Arduino“ laikmačio kodas pateikiamas šio projekto pabaigoje.
Šiame žemiau esančiame kode inicijuojame klaviatūros ir LCD bibliotekas bei kode naudojamus kintamuosius.
# įtraukti
Toliau pateiktame kode inicijuojame Nr. eilučių ir stulpelių, skirtų nustatyti klaviatūros matricą.
konstatavimo baitas ROWS = 4; // Keturios eilutės konstatavimo baitas COLS = 4; // Trys stulpelių simbolių klavišai = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Norėdami sujungti 4 * 4 matricos klaviatūrą su „Arduino“, turime apibrėžti eilučių ir stulpelių kaiščius. Taigi žemiau esančiame kode mes nustatėme klaviatūros kaiščius ir 16x2 LCD.
baitų eilutėPins = {6, 7, 8, 9}; // Prijunkite klaviatūras ROW0, ROW1, ROW2 ir ROW3 prie šių „Arduino“ smeigtukų baitų colPins = {10, 11, 12, 13}; // Prijunkite klaviatūras COL0, COL1 ir COL2 į t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Sukuria LC objektą. Parametrai: (rs, įjungti, d4, d5, d6, d7)
Žemiau pateiktas kodas naudojamas klaviatūrai gaminti, Klaviatūra kpd = Klaviatūra (makeKeymap (raktai), rowPins, colPins, ROWS, COLS);
Funkcijos „ void setFeedingTime ()“ kode paspaudę mygtuką galime įvesti laikmačio laiką, tada, įvedę laikmačio trukmę, turime paspausti D, kad pradėtume skaičiuoti.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Nustatyti tiekimo laiką"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); while (1) {raktas = kpd.getKey (); char j; if (raktas! = NE_KEY) {lcd.setCursor (j, 1); lcd.print (raktas); r = raktas-48; i ++; j ++; if (j == 2 - j == 5) {lcd.print (":"); j ++; } vėlavimas (500); } if (raktas == 'D') {raktas = 0; pertrauka; }} lcd.clear (); }
Vykdydami negaliojančią sąranką () , mes inicijavome skystųjų kristalų ir nuoseklųjį ryšį ir žemiau esančiame kode apibrėžėme kaiščius kaip INPUT ir OUTPUT.
negaliojanti sąranka () {lcd.begin (16,2); Serijos pradžia (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
Šio „Arduino“ atgalinio laikmačio veikimas yra paprastas, tačiau kodas yra šiek tiek sudėtingas. Kodas paaiškinamas komentarais kode.
Iš pradžių jis atspausdins „Arduino Timer“ LCD ekrane, kol paspausite mygtuką. Kai tik paspausite mygtuką, jis paprašys įvesti atgalinio laiko trukmę, paskambindamas funkcija „ setFeedingTime “. Tada klaviatūros pagalba galite įvesti laiko trukmę. Tada turite paspausti „D“, kad sutaupytumėte laiko ir pradėtumėte skaičiavimo laikmatį. Šioje funkcijoje „ void loop ()“ atlikome tam tikrą skaičiavimą, kad sumažintume laiką sekunde sekunde ir parodytume tinkamas valandos, minutės ir sekundės (HH: MM: SS) reikšmes pagal likusį laiką. Visas kodas yra gerai paaiškintas komentarais. Žemiau galite patikrinti visą kodą ir demonstracinį vaizdo įrašą.
Laikmatiui pasiekus nulį, garsinis signalas pradeda pypsėti ir pypsėti tik 100 kartų (pagal kodą). Norėdami sustabdyti garsinį signalą, palaikykite nuspaudę mygtuką. Norėdami sustabdyti laikmatį tarp skaičiavimo, bet kuriuo metu galite naudoti mygtuką Mygtukas.