Arduino: zgraditi budilko - kako deluje
V tem praktičnem nasvetu boste izvedeli, kako zgraditi budilko z Arduino. S pravo kodo je enostavno.
Arduino: zgraditi budilko - kako deluje
Za budilko Arduino potrebujete napajalnik, IR sprejemnik z daljinskim upravljalnikom, pisem, modul v realnem času DS3231, termistor, LCD in seveda tablo in Arduino z ustreznimi skakalnimi kabli.
- Najprej pravilno priključite napajalnik na ploščo in se prepričajte, da je nastavljen na 5 voltov na obeh straneh.
- Infrardeči sprejemnik priključite na vrstico plus in minus in na pin 3.
- Aktivni piščalnik priključite na pin 13 in na tla (minus bar).
- Modul DS3231 je povezan tudi s črkami plus in minus. Priključite tudi SDA v SDA in SCL na SCL na Arduino.
- Zdaj potrebujete termistor, ki je prav tako priključen na 5 voltov in na analogni 0 preko 10 kOhm upora.
- Končno morate priključiti LCD. K je povezan z - in od A do +. Zatiči D4 do D7 se na Arduino povežejo z zatiči 9 do 12. Zdaj morate E priključiti na pin 8, RW na minus bar in RS na pin 7. Priključite pin V0 na 10k potenciometer, ki je priključen na 5V in ozemljitev. Na koncu priključite VDD na 5V in VSS na tla.
Programirajte budilko Arduino
Če ste vse pravilno nastavili, lahko sprogramirate budilko Arduino. Za to smo napisali majhno vzorčno kodo:
- #include #include #include #include "IRremote.h" int tempPin = 0; Ura DS3231; RTCDateTime dt; LiquidCrystal lcd (7, 8, 9, 10, 11, 12); int sprejemnik = 3; IRrecv ircv (sprejemnik); rezultati decode_resultatov; int alarm; booleov alarm_state = napačen; Gudaška ura; String target_time; Minut godal; String current_time; int glasnik = 13; void translateIR () {preklop (results.value) {case 0xFFA25D: alarm_state =! alarm_state; break; // Primer POWER 0xFFE21D: odmor; // Primer FUNC / STOP 0xFF629D: odmor; // VOL + ohišje 0xFF22DD: prekinitev; // HITRO ZADNJA zadeva 0xFF02FD: odmor; // Primer PAUSE 0xFFC23D: odmor; // Primer FAST FORWARD 0xFFE01F: odmor; // DOL primer 0xFFA857: prelom; // VOL- ohišje 0xFF906F: prelom; // UP zadeva 0xFF9867: odmor; // EQ primer 0xFFB04F: odmor; // Primer ST / REPT 0xFF6897: alarm = 0; dodamo (); break; // 0 primer 0xFF30CF: alarm = 1; dodamo (); break; // 1 primer 0xFF18E7: alarm = 2; dodamo (); break; // 2 primer 0xFF7A85: alarm = 3; dodamo (); break; // 3 primer 0xFF10EF: alarm = 4; dodamo (); break; // 4 primer 0xFF38C7: alarm = 5; dodamo (); break; // 5 primeru 0xFF5AA5: alarm = 6; dodamo (); break; // 6 primeru 0xFF42BD: alarm = 7; dodamo (); break; // 7 primer 0xFF4AB5: alarm = 8; dodamo (); break; // 8 ohišje 0xFF52AD: alarm = 9; dodamo (); break; // 9 primer 0xFFFFFFFF: odmor; privzeto: prekinitev; } zamuda (500); } neveljaven dodaj () {destinacija + čas + = niz (alarm); } void setup () {pinMode (buzzer, OUTPUT); lcd.begin (16, 2); clock.begin (); clock.setDateTime (__ DATE__, __TIME__); irrecv.enableIRIn (); } void loop () {int tempReading = analogRead (tempPin); dvojni tempK = dnevnik (10000, 0 * ((1024, 0 / tempReading - 1))); tempK = 1 / (0, 001129148 + (0, 000234125 + (0, 0000000876741 * tempK * tempK)) * tempK); float tempC = tempK - 273, 15; float tempF = (tempC * 9, 0) / 5, 0 + 32, 0; dt = clock.getDateTime (); lcd.setCursor (0, 0); lcd.print (oblika ure.datoteke ("dmY H: i: s", dt)); lcd.setCursor (0, 1); lcd.print (String (tempC) + "" + String ((char) 223) + "C"); if (nev. koda (& rezultati)) {translateIR (); irrecv.resume (); } ura = clock.dateFormat ("H", dt); minuta = ura.dateFormat ("i", dt); current_time = ura + minuta; če (current_time == target_time && alarm_state == true) {pinMode (buzzer, HIGH); } else {pinMode (buzzer, LOW); } if (alarm_state == res) {lcd.setCursor (10, 1); lcd.print ( "!"); } else {lcd.setCursor (10, 1); lcd.print (""); } if (target_time.length () == 4) {lcd.setCursor (11, 1); lcd.print (destination_time); } else if (target_time.length () <4) {lcd.setCursor (11, 1); lcd.print ( "tip"); } else {lcd.setCursor (11, 1); lcd.print ( "tip"); target_time = ""; } zamuda (1000); }
- Namig: kopirajte to kodo v IDE in jo po potrebi prilagodite. Podrobno razlago kodnih vrstic najdete v naši slikovni galeriji.
V naslednjem članku bomo razložili, kako lahko z Arduino upravljate GSM modul.