Tartalomjegyzék:
- 1. lépés: Szükséges összetevők
- Lépés: Az Arduino óra csatlakoztatása
- 3. lépés: Az Arduino óra kódja RTC -vel
Videó: Valós idejű óra Arduino -val: 3 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Ebben a projektben órát készítünk az Arduino és az RTC modul segítségével. Mint tudjuk, az Arduino nem tudja megjeleníteni a tényleges időt, ezért az RTC modul segítségével jelenítjük meg a megfelelő időt az LCD -n. Olvassa el figyelmesen az összes lépést, ez sokat segíthet az óramű elkészítésében.
A DS3231 Arduino kód olyan, mint a DS1307 kód, és mindkét RTC lapkával működik.
Az alatta lévő Arduino kód nem használ semmilyen könyvtárat a DS3231 RTC -hez, a Wire könyvtár az Arduino és a DS3231 közötti levelezéshez, az I2C konvenciót használva.
Igen! Sok elektronikai mérnök számít rá időalapú projektjei során, de az RTC nem teljesen megbízható. Elemmel működik, és előbb -utóbb ki kell cserélni. Az IoT -projektekhez értékes SPI (soros perifériás interfész) csapokat foglal el, és zavaros lesz, ha a vezetékek kuszaak. Megoldás…. Itt jön hősünk, az NTP (hálózati időprotokoll). Az NTP olyan pontos, mivel időt kap az internetről. Ezt a protokollt kliens-szerver módban fogjuk működtetni. a folyamat olyan egyszerű, hogy Nodemcu -ükünk kliensként viselkedik, és NTP -csomagot kér a szervertől az UDP segítségével. Cserébe a szerver egy csomagot küld az ügyfélnek, amely elemzi az adatokat. Az NTP az univerzális időszinkronizálási protokoll. Most világítsunk meg laboratóriumi munkaállomásunkat
1. lépés: Szükséges összetevők
- Arduino tábla
- DS3231 RTC kártya
- 16x2 LCD kijelző
- 2 x nyomógomb
- 10K ohmos változó ellenállás (vagy potenciométer)
- 330 ohmos ellenállás
- 3V -os gombelem
- Kenyeretábla
- Jumper vezetékek
RT32 molekula DS3231
Az idő lényeges érzék, amelyre szükség van ebben a rohanó világban. Valós idejű projektben
RTC-t (A. K. A valós idejű óra) használunk
Az RTC Real-time-clock (RTC) egy integrált áramkör (IC), amely nyomon követi az aktuális időt. Az RTC valós időben gondoskodik az időről. Az RTC rendszerint megtalálható a számítógépes alaplapokban és a beágyazott rendszerekben, amelyekhez időszerű hozzáférés szükséges.
Lépés: Az Arduino óra csatlakoztatása
- Csatlakoztassa az SCL tűt az RTC modulhoz az Arduino A5 -hez
- Csatlakoztassa az SDA tűt az RTC modulhoz az Arduino A4 -hez
- Csatlakoztassa a VCC -t az 5v -hoz és a GND -t a GND -hez
- Csatlakoztasson nyomógombot a 8 csaphoz
- Csatlakoztasson egy másik nyomógombot a 9 csaphoz
- Csatlakoztassa az LCD RS -jét az Arduino 2. tűjéhez
- Csatlakoztassa az LCD E -t az Arduino 3. tűjéhez
- Csatlakoztassa az LCD D7 -et az Arduino 7. tűjéhez
- Csatlakoztassa az LCD D6 -ot az Arduino 6. tűjéhez
- Csatlakoztassa az LCD D5 -öt az Arduino 5. tűjéhez
- Csatlakoztassa az LCD D4 -et az Arduino 4. tűjéhez
- Csatlakoztassa a VSS & K -t a GND -hez
- Csatlakoztassa a VDD & A -t az 5V -hoz
- Csatlakoztassa a vo potenciométer kimeneti csapjához
3. lépés: Az Arduino óra kódja RTC -vel
A DS3231 csak BCD formátummal működik, és a BCD tizedesre és fordítva konvertálására az alábbi 2 sort használtam (például perc): // A BCD konvertálása decimalminute = (perc >> 4) * 10 + (perc & 0x0F);
// Tizedes átalakítása BCDminute = ((perc / 10) << 4) + (perc % 10); void DS3231_display (): megjeleníti az időt és a naptárat, mielőtt megjelenítené az időt és a naptári adatokat a BCD -ből tizedes formátumba. void blink_parameter ():
// Valós idejű óra és naptár a beállító gombokkal a DS3231 és Arduino használatával // tartalmazza az LCD könyvtár kódját #include // tartalmazza a vezetékes könyvtár kódját (I2C protokollos eszközökhöz szükséges) #tartalmazza // az LCD modul csatlakozásait (RS, E, D4, D5, D6, D7) LiquidCrystal lcd (2, 3, 4, 5, 6, 7); void setup () {pinMode (8, INPUT_PULLUP); // gomb1 csatlakozik a 8 -as érintkezőhöz pinMode (9, INPUT_PULLUP); // gomb2 csatlakozik a 9 -es érintkezőhöz // állítsa be az LCD oszlopok és sorok számát lcd.begin (16, 2); Wire.begin (); // Csatlakozás az i2c buszhoz} char Time = "TIME:::"; char Calendar = "DATE: / / 20"; bájt i, második, perc, óra, dátum, hónap, év; void DS3231_display () {// A BCD konvertálása tizedesmásodpercre = (második >> 4) * 10 + (második és 0x0F); perc = (perc >> 4) * 10 + (perc & 0x0F); óra = (óra >> 4) * 10 + (óra és 0x0F); dátum = (dátum >> 4) * 10 + (dátum & 0x0F); hónap = (hónap >> 4) * 10 + (hónap és 0x0F); év = (év >> 4) * 10 + (év & 0x0F); // Konverziós idő vége [12] = második % 10 + 48; Idő [11] = másodperc / 10 + 48; Idő [9] = perc % 10 + 48; Idő [8] = perc / 10 + 48; Idő [6] = óra % 10 + 48; Idő [5] = óra / 10 + 48; Naptár [14] = év % 10 + 48; Naptár [13] = év / 10 + 48; Naptár [9] = hónap % 10 + 48; Naptár [8] = hónap / 10 + 48; Naptár [6] = dátum % 10 + 48; Naptár [5] = dátum / 10 + 48; lcd.setCursor (0, 0); lcd.print (idő); // Megjelenítési idő lcd.setCursor (0, 1); lcd.print (naptár); // Naptár megjelenítése} void blink_parameter () {byte j = 0; while (j 23) // Ha óra> 23 ==> óra = 0 paraméter = 0; if (i == 1 && paraméter> 59) // Ha perc> 59 ==> perc = 0 paraméter = 0; if (i == 2 && paraméter> 31) // Ha dátum> 31 ==> dátum = 1 paraméter = 1; if (i == 3 && paraméter> 12) // Ha hónap> 12 ==> hónap = 1 paraméter = 1; if (i == 4 && paraméter> 99) // Ha év> 99 ==> év = 0 paraméter = 0; sprintf (szöveg, "%02u", paraméter); lcd.setCursor (x, y); lcd.print (szöveg); késleltetés (200); // Várjon 200 ms} lcd.setCursor (x, y); lcd.print (""); // Két szóköz megjelenítése blink_parameter (); sprintf (szöveg, "%02u", paraméter); lcd.setCursor (x, y); lcd.print (szöveg); blink_parameter (); if (! digitalRead (8)) {// Ha megnyomja a gombot (#8. pin) i ++; // Hibátlan 'i' a következő paraméter visszatérési paraméteréhez; // Paraméterérték visszaadása és kilépés}}} void loop () {if (! DigitalRead (8)) {// Ha megnyomja a gombot (#8. Tű) i = 0; óra = szerkesztés (5, 0, óra); perc = szerkesztés (8, 0, perc); dátum = szerkesztés (5, 1, dátum); hónap = szerkesztés (8, 1, hónap); év = szerkesztés (13, 1, év); // Tizedes átalakítása BCD percre = ((perc / 10) << 4) + (perc % 10); óra = ((óra / 10) << 4) + (óra % 10); dátum = ((dátum / 10) << 4) + (dátum % 10); hónap = ((hónap / 10) << 4) + (hónap % 10); év = ((év / 10) << 4) + (év % 10); // Konverzió befejezése // Adatok írása a DS3231 RTC Wire -ba.beginTransmission (0x68); // Indítsa el az I2C protokollt DS3231 címmel Wire.write (0); // Regisztrációs cím küldése Wire.write (0); // Állítsa vissza a szezont és indítsa el az oszcillátort Wire.write (perc); // perc írása Wire.write (óra); // Írás óra Wire.write (1); // Nap írása (nem használt) Wire.write (dátum); // Dátum írása Wire.write (hónap); // Hónap írása Wire.write (év); // Év írása Wire.endTransmission (); // Állítsa le az átvitelt és engedje fel az I2C busz késleltetését (200); // Várjon 200 ms} Wire.beginTransmission (0x68); // Indítsa el az I2C protokollt DS3231 címmel Wire.write (0); // Regisztrációs cím küldése Wire.endTransmission (false); // I2C újraindítás Wire.requestFrom (0x68, 7); // Kérjen 7 bájtot a DS3231 -től, és engedje fel az I2C buszt a második olvasás végén = Wire.read (); // Másodpercek olvasása a regiszterből 0 perc = Wire.read (); // perc olvasása a regiszterből 1 óra = Wire.read (); // Olvasási óra a regiszterből 2 Wire.read (); // Olvasás napja a 3. regiszterből (nem használt) dátum = Wire.read (); // Olvasás dátuma a nyilvántartásból 4 hónap = Wire.read (); // Hónap olvasása a nyilvántartásból 5 év = Wire.read (); // Év leolvasása a regiszterből 6 DS3231_display (); // A lejátszási idő és a naptár késleltetése (50); // Várjon 50 ms}
Ajánlott:
Valós idejű óra modul használata (DS3231): 5 lépés
Valós idejű óramodul (DS3231) használata: A DS3231 egy olcsó, rendkívül pontos I2C valós idejű óra (RTC), beépített hőmérséklet-kompenzált kristályoszcillátorral (TCXO) és kristállyal. A készülék akkumulátor -bemenettel rendelkezik, és pontos időmérést tart fenn, amikor a fő áramellátás
A DS3231 RTC (valós idejű óra) pontos beállítása, gyors és automatizált Java használatával (+-1 másodperc): 3 lépés
A DS3231 RTC (valós idejű óra) pontos, gyors és automatikus beállítása Java használatával (+-1 másodperc): Ez az utasítás megmutatja, hogyan kell beállítani az időt egy DS3231 valós idejű órán egy Arduino és egy kis Java-alkalmazás segítségével, amely az Arduino soros kapcsolata. A program alapvető logikája: 1. Az Arduino soros kérést küld
Arduino alapú óra a DS1307 valós idejű óra (RTC) modul használatával és 0.96: 5 lépés
Arduino alapú óra a DS1307 valós idejű óra (RTC) modul használatával és 0.96: Sziasztok, srácok, ebben az oktatóanyagban látni fogjuk, hogyan lehet működő órát készíteni egy DS1307 valós idejű óramodul segítségével. OLED kijelzők. Tehát kiolvassuk az időt a DS1307 óra modulból. És nyomtassa ki az OLED képernyőn
Óra készítése az M5stick C segítségével Arduino IDE - használatával RTC valós idejű óra az M5stack M5stick-C-vel: 4 lépés
Óra készítése az M5stick C segítségével Arduino IDE | használatával RTC valós idejű óra az M5stack M5stick-C-vel: Sziasztok srácok, ebben az utasításban megtanuljuk, hogyan készítsünk órát az m5stick m5stick fejlesztőpaneljével az Arduino IDE segítségével. Így az m5stick megjeleníti a dátumot, az időt és az amp; a hónap hete a kijelzőn
Valós idejű óra készítése Arduino és TFT kijelző használatával - Arduino Mega RTC 3,5 hüvelykes TFT kijelzővel: 4 lépés
Hogyan készítsünk valós idejű órát Arduino és TFT kijelző használatával | Arduino Mega RTC 3,5 hüvelykes TFT kijelzővel: Látogasson el a Youtube csatornámra. 2560 és DS3231 RTC modul… .Mielőtt elkezdené… ellenőrizze a videót a YouTube-csatornámról. Megjegyzés:- Ha Arduin-t használ