Sisukord:
Video: Reaalajas kell Arduinoga: 3 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Selles projektis valmistame Arduino ja RTC mooduli abil kella. Nagu me teame, ei saa Arduino tegelikku aega kuvada, seega kasutame õige aja kuvamiseks LCD -ekraanil RTC moodulit. Lugege hoolikalt kõiki samme, see aitab teil kellavärki teha.
DS3231 Arduino kood on nagu DS1307 kood ja see töötab mõlema RTC kiibiga.
Allolev Arduino kood ei kasuta DS3231 RTC jaoks ühtegi raamatukogu, Wire raamatukogu on mõeldud kirjavahetuseks Arduino ja DS3231 vahel, kasutades I2C konventsiooni.
Jah! Paljud elektroonikainsenerid sõltuvad sellest oma ajapõhiste projektide puhul, kuid RTC pole täiesti usaldusväärne. See töötab patareidega ja tuleb varem või hiljem välja vahetada. IoT -projektide puhul võtab see väärtuslikud SPI (Serial Peripheral Interface) tihvtid ja läheb segadusse, kui juhtmed on ümberringi sassis. Lahendus…. Siit tuleb meie kangelane NTP (võrgu aja protokoll). NTP on nii täpne, kuna saab Internetist aega. Me kasutame seda protokolli kliendi-serveri režiimis. protsess on nii lihtne, et meie Nodemcu toimib kliendina ja taotleb serverilt NTP -paketti UDP abil. Vastutasuks saadab server kliendile paketi, mis analüüsib andmeid. NTP on universaalne aja sünkroniseerimise protokoll. Valgustame nüüd oma laborite tööjaama
Samm: nõutavad komponendid
- Arduino plaat
- DS3231 RTC plaat
- 16x2 LCD ekraan
- 2 x nupp
- 10K oomi muutuv takisti (või potentsiomeeter)
- 330 oomi takisti
- 3V mündipatarei
- Leivalaud
- Jumper juhtmed
RTC molekul DS3231
Aeg on selles kiiresti arenevas inimmaailmas vajalik hädavajalik meel. Reaalajas projektis
Me kasutame RTC-d (A. K. A reaalajas kell)
RTC reaalajas kell (RTC) on integraallülitus (IC), mis jälgib praegust aega. RTC hoolitseb aja eest reaalajas. RTC -d leidub tavaliselt arvutite emaplaatidel ja manussüsteemides, mis nõuavad õigeaegset juurdepääsu.
Samm: ühendage Arduino kell
- Ühendage SCL -tihvt RTC -mooduliga Arduino A5 -ga
- Ühendage SDA tihvt RTC mooduliga Arduino A4 -ga
- Ühendage VCC to 5v ja GND to GND
- Ühendage nupp tihvtiga 8
- Ühendage tihvtiga 9 teine nupp
- Ühendage vedelkristallekraani RS Arduino tihvtiga 2
- Ühendage LCD E Arduino tihvtiga 3
- Ühendage LCD D7 Arduino tihvtiga 7
- Ühendage LCD D6 Arduino tihvtiga 6
- Ühendage LCD D5 Arduino tihvtiga 5
- Ühendage LCD D4 Arduino tihvtiga 4
- Ühendage VSS & K GND -ga
- Ühendage VDD & A 5v -ga
- Ühendage vo potentsiomeetri väljundpoldiga
Samm: RTC abil Arduino kella kood
DS3231 töötab ainult BCD -vormingus ja BCD teisendamiseks kümnendkohaks ja vastupidi kasutasin alltoodud kahte rida (näiteks minut): // Teisenda BCD kümnendminutiks = (minut >> 4) * 10 + (minut & 0x0F);
// Teisenda kümnendarv BCDminute = ((minut / 10) << 4) + (minut % 10); void DS3231_display (): kuvab aja ja kalendri, enne kui kuvatakse kellaaeg ja kalendriandmed teisendatakse BCD -st kümnendvormingusse. tühine blink_parameter ():
// Reaalajas kell ja kalender koos seadistusnuppudega, kasutades DS3231 ja Arduino // lisage LCD raamatukogu kood #include // lisage traaditeegi kood (vajalik I2C protokolli seadmete jaoks) #sisalda // LCD mooduli ühendused (RS, E, D4, D5, D6, D7) LiquidCrystal lcd (2, 3, 4, 5, 6, 7); void setup () {pinMode (8, INPUT_PULLUP); // nupp1 on ühendatud tihvtiga 8 pinMode (9, INPUT_PULLUP); // nupp2 on ühendatud tihvtiga 9 // seadistage LCD veergude ja ridade arv lcd.begin (16, 2); Wire.begin (); // i2c bussiga liitumine} char Time = "TIME:::"; char kalender = "DATE: / / 20"; bait i, teine, minut, tund, kuupäev, kuu, aasta; void DS3231_display () {// Teisenda BCD kümnendiksekundiks = (teine >> 4) * 10 + (teine & 0x0F); minut = (minut >> 4) * 10 + (minut & 0x0F); tund = (tund >> 4) * 10 + (tund & 0x0F); kuupäev = (kuupäev >> 4) * 10 + (kuupäev & 0x0F); kuu = (kuu >> 4) * 10 + (kuu ja 0x0F); aasta = (aasta >> 4) * 10 + (aasta & 0x0F); // Konversiooni lõpp [12] = teine % 10 + 48; Aeg [11] = sekund / 10 + 48; Aeg [9] = minut % 10 + 48; Aeg [8] = minut / 10 + 48; Aeg [6] = tund % 10 + 48; Aeg [5] = tund / 10 + 48; Kalender [14] = aasta % 10 + 48; Kalender [13] = aasta / 10 + 48; Kalender [9] = kuu % 10 + 48; Kalender [8] = kuu / 10 + 48; Kalender [6] = kuupäev % 10 + 48; Kalender [5] = kuupäev / 10 + 48; lcd.setCursor (0, 0); lcd.print (aeg); // Kuvamisaeg lcd.setCursor (0, 1); lcd.print (kalender); // Kuva kalender} void blink_parameter () {bait j = 0; while (j 23) // Kui tunnid> 23 ==> tunnid = 0 parameeter = 0; if (i == 1 && parameeter> 59) // Kui minutid> 59 ==> minutid = 0 parameeter = 0; if (i == 2 && parameeter> 31) // Kui kuupäev> 31 ==> kuupäev = 1 parameeter = 1; if (i == 3 && parameeter> 12) // Kui kuu> 12 ==> kuu = 1 parameeter = 1; if (i == 4 && parameeter> 99) // Kui aasta> 99 ==> aasta = 0 parameeter = 0; sprintf (tekst, "%02u", parameeter); lcd.setCursor (x, y); lcd.print (tekst); viivitus (200); // Oota 200 ms} lcd.setCursor (x, y); lcd.print (""); // Kuva kaks tühikut blink_parameter (); sprintf (tekst, "%02u", parameeter); lcd.setCursor (x, y); lcd.print (tekst); vilkuv_parameeter (); if (! digitalRead (8)) {// Kui nuppu (pin #8) vajutatakse i ++; // Järgmise parameetri tagastusparameetri ebaefektiivne 'i'; // Tagastab parameetri väärtuse ja väljub}}} void loop () {if (! DigitalRead (8)) {// Kui nuppu (pin #8) vajutatakse i = 0; tund = redigeerimine (5, 0, tund); minut = redigeerimine (8, 0, minut); kuupäev = redigeeri (5, 1, kuupäev); kuu = redigeeri (8, 1, kuu); aasta = redigeeri (13, 1, aasta); // Teisenda kümnendarv BCD minutiks = ((minut / 10) << 4) + (minut % 10); tund = ((tund / 10) << 4) + (tund % 10); kuupäev = ((kuupäev / 10) << 4) + (kuupäev % 10); kuu = ((kuu / 10) << 4) + (kuu % 10); aasta = ((aasta / 10) << 4) + (aasta % 10); // Lõpeta teisendus // Kirjutage andmed DS3231 RTC Wire.beginTransmission (0x68); // I2C protokolli käivitamine DS3231 aadressiga Wire.write (0); // Saada registriaadress Wire.write (0); // Lähtesta sesondid ja käivita ostsillaator Wire.write (minut); // Kirjutage minut Wire.write (tund); // Kirjutage tund Wire.write (1); // Päeva kirjutamine (ei kasutata) Wire.write (kuupäev); // kuupäeva kirjutamine Wire.write (kuu); // Kirjutage kuu Wire.write (aasta); // Kirjutage aasta Wire.endTransmission (); // Peata ülekanne ja vabasta I2C siini viivitus (200); // Oota 200 ms} Wire.beginTransmission (0x68); // I2C protokolli käivitamine DS3231 aadressiga Wire.write (0); // Saada registriaadress Wire.endTransmission (false); // I2C taaskäivita Wire.requestFrom (0x68, 7); // Taotle DS3231 -lt 7 baiti ja vabastage I2C siin teise lugemise lõpus = Wire.read (); // Loe sekundit registrist 0 minut = Wire.read (); // Minutite lugemine registrist 1 tund = Wire.read (); // Loe tund registrist 2 Wire.read (); // Loe päev registrist 3 (ei kasutata) kuupäev = Wire.read (); // Loe kuupäev registrist 4 kuud = Wire.read (); // Loe kuu registrist 5 aastat = Wire.read (); // Aasta lugemine registrist 6 DS3231_display (); // Kuvamisaeg ja kalendri viivitus (50); // Oota 50 ms}
Soovitan:
Reaalajas Covid19 jälgija, kasutades ESP8266 ja OLED - Reaalajas Covid19 armatuurlaud: 4 sammu
Reaalajas Covid19 jälgija, kasutades ESP8266 ja OLED | Reaalajas Covid19 armatuurlaud: külastage Techtronic Harshi veebisaiti: http: //techtronicharsh.com Kõikjal, kus esineb tohutu uudse koroonaviiruse (COVID19) puhang. Vajalik oli jälgida praegust COVID-19 stsenaariumi maailmas. Niisiis oli see kodus olles
Minitel reaalajas kell: 5 sammu
Minitel reaalajas kell: Minitel oli 1978. aastal France Telecomi loodud teabeotsingu- ja tekstisõnumiteenus. Enne ülemaailmset veebi peeti seda edukaimaks võrgustikuks. 30 aastat hiljem, 2008. aastal, suleti võrk lõpuks. (Selle kohta on palju teavet
DS1307 ja DS3231 reaalajas kellamoodulite kasutamine Arduinoga: 3 sammu
DS1307 ja DS3231 reaalajas kellamoodulite kasutamine koos Arduinoga: me saame pidevalt erinevatest allikatest päringuid DS1307 ja DS3231 reaalajas kella moodulite kasutamiseks koos Arduinoga-seega on see esimene kaheosaline õpetus nende kasutamise kohta. Selle Arduino õpetuse jaoks on meil kaks reaalajas kella moodulit
DS1307 reaalajas kella RTC Arduinoga: 4 sammu
DS1307 reaalajas kella RTC Arduinoga: Selles õpetuses õpime reaalajas kella (RTC) ja Arduino & Reaalajas kella IC DS1307 on kokku pandud ajastusseadmena. Reaalajas kella (RTC) kasutatakse aja jälgimiseks ja kalendri pidamiseks. RTC kasutamiseks kasutage
Arduino -põhine kell, kasutades DS1307 reaalajas kella (RTC) moodulit ja 0,96: 5 sammu
Arduino -põhine kell, mis kasutab DS1307 reaalajas kella (RTC) moodulit ja 0.96: Tere, poisid, selles õpetuses näeme, kuidas DS1307 reaalajas kella moodulit kasutades töökella teha & OLED kuvab. Nii loeme kella mooduli DS1307 ajast. Ja printige see OLED -ekraanile