Arduino: ehitage äratuskell - kuidas see töötab
Selles praktilises näpunäites saate teada, kuidas koos Arduinoga äratuskella ehitada. Õige koodiga on see lihtne.
Arduino: ehitage äratuskell - kuidas see töötab
Arduino äratuskella jaoks on vaja toiteallikat, kaugjuhtimispuldiga IR-vastuvõtjat, sumisti, DS3231 reaalajas moodulit, termistorit, LCD-d ja muidugi leivalauda ning sobivate hüppajakaablitega Arduinot.
- Kõigepealt ühendage toiteallikas õigesti leivalauale ja veenduge, et selle mõlemal küljel oleks 5 volti.
- Ühendage infrapunavastuvõtja pluss- ja miinusribadega ning 3-ga.
- Ühendage aktiivne helisignaal kontaktiga 13 ja maapinnaga (miinus riba).
- DS3231 moodul on ühendatud ka pluss- ja miinusribadega. Ühendage ka SDA SDA-ga ja SCL Arduino SCL-iga.
- Nüüd vajate termistorit, mis on ühendatud ka 5 voldiga ja analoogiga 0 10 kOhm takisti kaudu.
- Lõpuks peate ühendama LCD. K on ühendatud - ja A - +. Nööpnõelad D4 – D7 ühendatakse Arduino klemmidega 9–12. Nüüd peate ühendama E-ga 8. pinni, RW-ga miinusribaga ja RS-i ühendama 7. pin-ga. Ühendage pin V0 10k potentsiomeetriga, mis on ühendatud 5 V ja maapinnaga. Lõpuks ühendage VDD 5 V ja VSS maapinnaga.
Programmeerige Arduino äratuskell
Kui olete kõik õigesti seadistanud, saate programmeerida Arduino äratuskella. Oleme selle jaoks kirjutanud väikese näidiskoodi:
- #klõps #klõps #klõps #klõps "IRremote.h" int tempPin = 0; DS3231 kell; RTCDateTime dt; LiquidCrystal LCD (7, 8, 9, 10, 11, 12); int vastuvõtja = 3; IRrecv irrecv (vastuvõtja); decode_results tulemusi; int äratus; Boolean alarm_state = false; Keelpillitund; Stringi sihtkohta_aeg; Keel-minut; String praegune_aeg; int summeri = 13; void translateIR () {lüliti (tulemused.väärtus) {juhtum 0xFFA25D: alarm_state =! alarm_state; murda; // POWER korpus 0xFFE21D: break; // FUNC / STOP juhtum 0xFF629D: break; // VOL + ümbris 0xFF22DD: break; // KIIRE TAGASI juhtum 0xFF02FD: break; // PAUSE juhtum 0xFFC23D: break; // FAST FORWARD juhtum 0xFFE01F: break; // DOWN juhtum 0xFFA857: break; // VOL- ümbris 0xFF906F: murda; // UP juhtum 0xFF9867: break; // EQ juhtum 0xFFB04F: break; // ST / REPT juhtum 0xFF6897: alarm = 0; lisada (); murda; // 0 juhtum 0xFF30CF: häire = 1; lisada (); murda; // 1 juhtum 0xFF18E7: häire = 2; lisada (); murda; // 2 juhtumit 0xFF7A85: häire = 3; lisada (); murda; // 3 juhtumit 0xFF10EF: häire = 4; lisada (); murda; // 4 juhtumit 0xFF38C7: häire = 5; lisada (); murda; // 5 juhtumit 0xFF5AA5: häire = 6; lisada (); murda; // 6 juhtumit 0xFF42BD: häire = 7; lisada (); murda; // 7 juhtum 0xFF4AB5: häire = 8; lisada (); murda; // 8 juhtumit 0xFF52AD: häire = 9; lisada (); murda; // 9 juhtumit 0xFFFFFFFF: vaheaeg; vaikimisi: break; } viivitus (500); } tühine lisa () {sihtkoha_aeg + = string (äratus); } void setup () {pinMode (summeri, VÄLJUND)); lcdbegin (16, 2); clock.begin (); clock.setDateTime (__ DATE__, __TIME__); irrecv.enableIRIn (); } void loop () {int tempReading = analogRead (tempPin); kahekordne tempK = log (10000, 0 * ((1024, 0 / tempReading - 1))); tempK = 1 / (0, 001129148 + (0, 000234125 + (0, 0000000876741 * tempK * tempK)) * tempK); ujuk tempC = tempK - 273, 15; float tempF = (tempC * 9, 0) / 5, 0 + 32, 0; dt = kell.getDateTime (); lcd.setCursor (0, 0); lcd.print (kell.kuupäeva vorming ("dmY H: i: s", dt)); lcd.setCursor (0, 1); lcd.print (string (tempC) + "" + string ((char) 223) + "C"); if (irrecv.decode (ja tulemused)) {translateIR (); irrecv.resume (); } tund = kell.kuupäevakuju ("H", dt); minute = clock.dateFormat ("i", dt); praegune_aeg = tund + minut; if (praegune_aeg == sihtkoha_aeg ja&alarmi_seis == tõene) {pinMode (helisignaal, HIGH); } else {pinMode (summeri, LOW); } if (alarm_state == true) {lcd.setCursor (10, 1); lcd.print ( "!"); } else {lcd.setCursor (10, 1); lcd.print (""); } if (sihtkohta_ajaaeg.length () == 4) {lcd.setCursor (11, 1); lcd.print (destination_time); } else if (sihtkoha_aeg.pikkus () <4) {lcd.setCursor (11, 1); lcd.print ( "tüüp"); } else {lcd.setCursor (11, 1); lcd.print ( "tüüp"); sihtkoha_aeg = ""; } viivitus (1000); }
- Näpunäide. Kopeerige see kood IDE-sse ja kohandage seda vastavalt vajadusele. Koodiridade üksikasjaliku selgituse leiate meie pildigaleriist.
Järgmises artiklis selgitame, kuidas saate Arduino abil GSM-moodulit juhtida.