Përmbajtje:
Video: Ora në kohë reale me Arduino: 3 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:16
Në këtë projekt, ne do të bëjmë një orë me ndihmën e modulit Arduino dhe RTC. Siç e dimë, Arduino nuk mund të shfaq kohën aktuale, kështu që ne do të përdorim modulin RTC për të shfaqur kohën e duhur në LCD. Lexoni të gjithë hapin me kujdes do t'ju ndihmojë shumë për të bërë orën.
Kodi DS3231 Arduino është si kodi DS1307 dhe funksionon me të dy çipat RTC.
Kodi Arduino poshtë nuk përdor asnjë bibliotekë për DS3231 RTC, biblioteka Wire është për korrespondencën midis Arduino dhe DS3231 duke përdorur konventën I2C.
Po! Shumë inxhinierë elektronikë varen nga ajo për projektet e tyre të bazuara në kohë, por RTC nuk është plotësisht i besueshëm. Funksionon me bateri dhe duhet të zëvendësohet herët a vonë. Duke ardhur në projektet IoT zë kunja të vlefshme SPI (Serial Periferike Ndërfaqe) dhe bëhet e çrregullt me tela të ngatërruar përreth. Zgjidhja…. Këtu vjen heroi ynë NTP (Protokolli i kohës në rrjet). NTP është aq i saktë pasi merr kohë nga interneti. Ne do ta përdorim këtë protokoll duke përdorur një mënyrë klient-server. procesi është aq i thjeshtë sa Nodemcu ynë vepron si klient dhe kërkon një paketë NTP nga serveri duke përdorur UDP. Në këmbim, serveri i dërgon një paketë klientit e cila analizon të dhënat. NTP është protokolli universal i sinkronizimit të kohës. Tani le të ndriçojmë stacionin tonë të punës në laboratorë
Hapi 1: Komponentët e kërkuar
- Bordi Arduino
- DS3231 bordi RTC
- Ekran LCD 16x2
- 2 x buton shtypës
- Rezistencë e ndryshueshme 10K ohm (ose potenciometër)
- Rezistencë 330-ohm
- Bateri me qeliza monedhë 3V
- Breadboard
- Telat e kërcyesit
Toka e RTC DS3231
Koha është një ndjenjë thelbësore e kërkuar në këtë botë të shpejtë të qenieve njerëzore. Në projekt në kohë reale
Ne përdorim RTC (A. K. A Ora në kohë reale)
RTC-Ora në kohë reale (RTC) është një qark i integruar (IC) që mban gjurmët e kohës aktuale. RTC kujdeset për kohën në mënyrë reale. RTC zakonisht gjendet në pllakat amë të kompjuterit dhe sistemet e ngulitura për të kërkuar qasje në kohë.
Hapi 2: Lidhja e orës Arduino
- Lidhni pinin SCL me modulin RTC në Arduino A5
- Lidhni kunjin SDA me modulin RTC në Arduino A4
- Lidhni VCC TO 5v dhe GND TO GND
- Lidhni një buton me pin 8
- Lidhni një buton tjetër me pin 9
- Lidhni RS të LCD me pin 2 të Arduino
- Lidhni E të LCD me pinin 3 të Arduino
- Lidhni D7 të LCD me pin 7 të Arduino
- Lidhni D6 të LCD me pin 6 të Arduino
- Lidhni D5 të LCD me pin 5 të Arduino
- Lidhni D4 të LCD me pin 4 të Arduino
- Lidhni VSS & K me GND
- Lidhni VDD & A me 5v
- Lidheni vo me kunjin dalës të potenciometrit
Hapi 3: Kodi për Arduino Clock Me RTC
DS3231 funksionon vetëm me formatin BCD dhe për ta kthyer BCD në dhjetore dhe anasjelltas, kam përdorur 2 rreshtat më poshtë (shembull për minutë): // Shndërroni BCD në minutë dhjetore = (minutë >> 4) * 10 + (minutë & 0x0F);
// Shndërro dhjetorin në BCDminute = ((minutë / 10) << 4) + (minutë % 10); void DS3231_display (): shfaq kohën dhe kalendarin, para se të shfaqet koha dhe të dhënat e kalendarit konvertohen nga BCD në formatin dhjetor. anuloni blink_parameter ():
// Ora dhe kalendari në kohë reale me butona të vendosur duke përdorur DS3231 dhe Arduino // përfshijnë kodin e bibliotekës LCD #përfshi // përfshijnë kodin e bibliotekës me tela (nevojitet për pajisjet e protokollit I2C) #përfshi // lidhjet e modulit LCD (RS, E, D4, D5, D6, D7) LiquidCrystal LCD (2, 3, 4, 5, 6, 7); void setup () {pinMode (8, INPUT_PULLUP); // butoni 1 është i lidhur me pin 8 pinMode (9, INPUT_PULLUP); // butoni2 është i lidhur me pin 9 // vendosni numrin e kolonave dhe rreshtave të LCD -së lcd.filloni (16, 2); Wire.begin (); // Bashkohu me autobusin i2c} char Koha = "KOHA:::"; kalendar = "DATA: / / 20"; byte i, i dyti, minuta, ora, data, muaji, viti; pavlefshme DS3231_display () {// Shndërro BCD në sekondën dhjetore = (e dyta >> 4) * 10 + (e dyta & 0x0F); minutë = (minutë >> 4) * 10 + (minutë & 0x0F); orë = (orë >> 4) * 10 + (orë & 0x0F); data = (data >> 4) * 10 + (data & 0x0F); muaji = (muaji >> 4) * 10 + (muaji & 0x0F); vit = (viti >> 4) * 10 + (viti & 0x0F); // Koha e përfundimit të konvertimit [12] = e dyta % 10 + 48; Koha [11] = e dyta / 10 + 48; Koha [9] = minuta % 10 + 48; Koha [8] = minutë / 10 + 48; Koha [6] = ora % 10 + 48; Koha [5] = orë / 10 + 48; Kalendari [14] = viti % 10 + 48; Kalendari [13] = viti / 10 + 48; Kalendari [9] = muaji % 10 + 48; Kalendari [8] = muaji / 10 + 48; Kalendari [6] = data % 10 + 48; Kalendari [5] = data / 10 + 48; lcd.setCursor (0, 0); lcd.print (Koha); // Koha e shfaqjes lcd.setCursor (0, 1); lcd.print (Kalendari); // Shfaq kalendarin} void blink_parameter () {byte j = 0; ndërsa (j 23) // Nëse orë> 23 ==> orë = 0 parametër = 0; nëse (i == 1 && parametri> 59) // Nëse minuta> 59 ==> minuta = 0 parametër = 0; nëse (i == 2 && parametri> 31) // Nëse data> 31 ==> data = 1 parametër = 1; nëse (i == 3 && parametri> 12) // Nëse muaji> 12 ==> muaji = 1 parametër = 1; nëse (i == 4 && parametri> 99) // Nëse viti> 99 ==> vit = 0 parametri = 0; sprintf (tekst, "%02u", parametër); lcd.setCursor (x, y); lcd.print (tekst); vonesë (200); // Prisni 200ms} lcd.setCursor (x, y); lcd.print (""); // Shfaq dy hapësira blink_parameter (); sprintf (tekst, "%02u", parametër); lcd.setCursor (x, y); lcd.print (tekst); blink_parameter (); nëse (! digitalRead (8)) {// Nëse butoni (kunja #8) shtypet i ++; // Rritja 'i' për parametrin tjetër të kthimit të parametrit; // Ktheni vlerën e parametrit dhe dilni}}} void loop () {if (! DigitalRead (8)) {// Nëse shtypet butoni (kunja #8) i = 0; orë = redakto (5, 0, orë); minutë = redakto (8, 0, minutë); data = redakto (5, 1, data); muaji = redakto (8, 1, muaj); vit = redakto (13, 1, vit); // Shndërroni dhjetorin në minutë BCD = ((minutë / 10) << 4) + (minutë % 10); orë = ((orë / 10) << 4) + (orë % 10); data = ((data / 10) << 4) + (data % 10); muaji = ((muaji / 10) << 4) + (muaji % 10); vit = ((viti / 10) << 4) + (viti % 10); // Përfundimi i konvertimit // Shkruani të dhëna në DS3231 RTC Wire.beginTransmission (0x68); // Filloni protokollin I2C me adresën DS3231 Wire.write (0); // Dërgoni adresën e regjistrit Wire.write (0); // Rivendos sesondet dhe fillo oshilatorin Wire.write (minutë); // Shkruaj minutë Wire.write (orë); // Shkruaj orë Wire.write (1); // Shkruaj ditën (nuk përdoret) Wire.write (data); // Shkruani datën Wire.write (muaj); // Shkruani muajin Wire.write (viti); // Shkruani vitin Wire.endTransmission (); // Ndaloni transmetimin dhe lëshoni vonesën e autobusit I2C (200); // Prisni 200ms} Wire.beginTransmission (0x68); // Filloni protokollin I2C me adresën DS3231 Wire.write (0); // Dërgoni adresën e regjistrit Wire.endTransmission (false); // I2C rinis Wire. KërkojNga (0x68, 7); // Kërkoni 7 bajtë nga DS3231 dhe lëshoni autobusin I2C në fund të leximit të dytë = Wire.read (); // Lexo sekonda nga regjistri 0 minuta = Wire.read (); // Lexo minutat nga regjistri 1 orë = Wire.read (); // Ora e leximit nga regjistri 2 Wire.read (); // Lexoni ditën nga regjistri 3 (nuk përdoret) data = Wire.read (); // Data e leximit nga regjistri 4 muaj = Wire.read (); // Lexo muajin nga regjistri 5 vjet = Wire.read (); // Lexoni vitin nga regjistri 6 DS3231_display (); // Koha e shkrimit dhe vonesa e kalendarit (50); // Prisni 50ms}
Recommended:
Vendosja e DS3231 RTC (Ora në kohë reale) në mënyrë të saktë, të shpejtë dhe të automatizuar duke përdorur Java (+-1s): 3 hapa
Vendosja e DS3231 RTC (Ora në kohë reale) në mënyrë të saktë, të shpejtë dhe të automatizuar duke përdorur Java (+-1s): Ky udhëzues do t'ju tregojë se si të vendosni kohën në një orë në kohë reale DS3231 duke përdorur një Arduino dhe një aplikacion të vogël Java që përdor lidhja serike e Arduino. Logjika themelore e këtij programi: 1. Arduino dërgon një kërkesë serike
Ora Minitel në kohë reale: 5 hapa
Ora Minitel në kohë reale: Krijuar në 1978 nga France Telecom, Minitel ishte një shërbim për marrjen e informacionit dhe dërgimin e mesazheve. Konsiderohet të jetë rrjeti më i suksesshëm para rrjetit botëror. 30 vjet më vonë, në vitin 2008, rrjeti u mbyll përfundimisht. (Ka shumë informacione për këtë
DS1307 Ora në kohë reale RTC Me Arduino: 4 hapa
DS1307 Ora në kohë reale RTC Me Arduino: Në këtë tutorial, ne do të mësojmë rreth orës në kohë reale (RTC) dhe si Arduino & Ora në kohë reale IC DS1307 janë vendosur së bashku si një pajisje kohore. Ora e kohës reale (RTC) përdoret për monitorimin e kohës dhe mbajtjen e një kalendari. Për të përdorur një RTC, w
Ora e bazuar në Arduino duke përdorur modulin DS1307 Ora në kohë reale (RTC) & 0.96: 5 hapa
Ora e bazuar në Arduino duke përdorur modulin DS1307 Ora në kohë reale (RTC) & 0.96: Përshëndetje djema në këtë tutorial do të shohim se si të bëjmë një orë pune duke përdorur një modul orësh në kohë reale DS1307 & Ekranet OLED. Pra, ne do të lexojmë kohën nga moduli i orës DS1307. Dhe shtypeni atë në ekranin OLED
Bërja e një ore me M5stick C duke përdorur Arduino IDE - Ora në kohë reale RTC Me M5stack M5stick-C: 4 hapa
Bërja e një ore me M5stick C duke përdorur Arduino IDE | Ora në kohë reale RTC Me M5stack M5stick-C: Përshëndetje djema në këtë udhëzues do të mësojmë se si të bëjmë një orë me tabelën e zhvillimit m5stick-C të m5stack duke përdorur Arduino IDE. Pra, m5stick do të shfaqë datën, kohën dhe amp; javë të muajit në ekran