Ajastin on kellotyyppi, jota käytetään aikavälien mittaamiseen. Ajastinta on kahta tyyppiä, yksi, joka laskee nollasta ylöspäin, kuluneen ajan mittaamiseksi, jota kutsutaan sekuntikelloksi. Ja toinen laskee käyttäjän antamasta tietystä ajanjaksosta, jota yleensä kutsutaan lähtölaskennaksi.
Tässä tässä opetusohjelmassa näytämme sinulle, kuinka tehdä ajastin Arduinolla. Täällä emme käytä mitään reaaliaikakellomoduulia (RTC) ajan saamiseen. Ajan keston tarjoaa käyttäjä näppäimistön ja 16x2 LCD: n avulla. Ja kun ajastin saavuttaa nollan, hälytysääni kuuluu summerin avulla.
Tarvittava materiaali
- Arduino UNO
- LCD 16 * 2
- 4 * 4 matriisinäppäimistö
- Summeri
- Paina nappia
- Potentiometri (10k)
- Vastus (10k, 100 ohm)
- Johtojen liittäminen
Arduino Countdown Timer -piirikaavio
Arduino Unoa käytetään tässä pääohjaimena. Näppäimistöä käytetään ajan keston syöttämiseen ja 16 * 2 nestekidenäyttöä käytetään lähtölaskennan näyttämiseen. Painiketta käytetään ajan aloittamiseen. Tarkista täältä, kuinka 4x4-näppäimistö liitetään Arduinoon ja 16x2-nestekidenäyttö Arduinoon.
Arduino-ajastimen koodi ja selitys
Täydellinen Arduino Timer -koodi annetaan tämän projektin lopussa.
Tässä alla olevassa koodissa alustetaan kirjastot näppäimistölle ja LCD: lle sekä koodissa käytetyt muuttujat.
#sisältää
Seuraavassa koodissa alustamme no. rivejä ja sarakkeita näppäimistön matriisin määrittämiseksi.
vakiotavu ROWS = 4; // Neljä riviä vakiotavu COLS = 4; // Kolme saraketta char-näppäimet = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
4 * 4 -matriisinäppäimistön liittämiseksi Arduinoon meidän on määritettävä rivit ja sarakkeet. Joten alla olevassa koodissa olemme määrittäneet nastat näppäimistölle ja 16x2 LCD: lle.
tavu riviPins = {6, 7, 8, 9}; // Yhdistä näppäimistö ROW0, ROW1, ROW2 ja ROW3 näihin Arduino-nastoihin tavu colPins = {10, 11, 12, 13}; // Yhdistä näppäimistöt COL0, COL1 ja COL2 t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Luo LC-objektin. Parametrit: (rs, enable, d4, d5, d6, d7)
Alla olevaa koodia käytetään näppäimistön tekemiseen, Näppäimistö kpd = Näppäimistö (makeKeymap (avaimet), rowPins, colPins, RIVIT, COLS);
Vuonna void setFeedingTime () funktio koodi, sen jälkeen kun näppäimen painamista voimme tulla aika ajastin, sitten kirjoittamisen jälkeen ajastimen kesto, meidän on painamalla D aloittaa laskennan.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Aseta syöttöaika"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); while (1) {avain = kpd.getKey (); char j; if (avain! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (avain); r = avain-48; i ++; j ++; if (j == 2 - j == 5) {lcd.print (":"); j ++; } viive (500); } if (avain == 'D') {avain = 0; tauko; }} lcd.clear (); }
In void setup () funktio , olemme alustetaan LCD ja sarjaliikenteen, ja määritellään sokat tulon ja lähdön alla olevassa koodin.
void setup () {lcd.begin (16,2); Sarjan alku (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
Tämän Arduino-ajastimen käyttö on yksinkertaista, mutta koodi on hieman monimutkainen. Koodi selitetään koodin kommenteilla.
Aluksi se tulostaa “Arduino Timer” LCD-näytölle, kunnes painat painiketta. Heti kun painat painiketta, se pyytää syöttämään lähtöajan keston kutsumalla “ setFeedingTime ” -toiminnon. Sitten voit syöttää ajan keston näppäimistön avulla. Sitten sinun on painettava 'D' säästääksesi aikaa ja aloittaaksesi ajastimen. Tässä void loop () -funktiossa olemme suorittaneet jonkin verran laskutoimitusta vähentämään aikaa sekunnilta sekunnille ja näyttämään oikeat tunnit, minuutit ja sekunnit (HH: MM: SS) jäljellä olevan ajan mukaan. Kaikki koodit on selitetty hyvin kommenteilla. Voit tarkistaa koko koodin ja esittelyvideon alla.
Kun ajastin saavuttaa nollan, summeri alkaa piipata ja piippaa vain 100 kertaa (koodin mukaan). Pysäytä summeri pitämällä painiketta painettuna. Voit pysäyttää ajastimen laskennan välillä painamalla painiketta milloin tahansa.