Tartalomjegyzék:
Videó: 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
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Ez az utasítás megmutatja, hogyan lehet 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 kapcsolatát használja.
A program alapvető logikája:
1. Az Arduino soros kérést küld.
2. A Java program megnézi, hogy melyik napon/hónapban/… kérte az arduino, és visszaküldi a vonatkozó adatokat.
3. Az összes szükséges információ összegyűjtése után az arduino tárolja az adatokat a DS3231 -ben.
A DS3231 RTC modul
A DS3231 RTC modul viszonylag olcsó RTC modul, nagy pontossággal. (évente néhány perc)
Vannak különböző fajták, amelyek alapvető funkciói azonosak, csak kisebb eltérésekkel.
A részletes összehasonlítást itt találja: DS323x Összehasonlítás | maximintegrated.com
DS3231 vásárlása: DS3231 | ebay.com
Adatlap: DS3231 Adatlap | maximintegrated.com
Adatlap: DS1307 Adatlap | maximintegrated.com
Szükséges alkatrészek
1x Arduino (Nano, Uno, MEGA stb.)
4x Jumper vezetékek
1x DS3231 modul (DS1307 modul)
1. lépés: Kábelezés
Csatlakoztassa a DS3231 -et a fenti képen látható módon. Természetesen kenyérsütőlap használata nélkül is megteheti, de ez kicsit zavarosabb lesz. Én egy Arduino Nano -t használtam demonstrációra, de egy Uno -nak vagy MEGA -nak is működnie kell. (Mások is dolgozhatnak, de lusta vagyok megerősíteni)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
2. lépés: Az Arduino kód
Töltse le az.ino fájlt alulról, és töltse fel az Arduino készülékére (esetemben egy Nano).
A vázlat megfelelő telepítéséhez a következő könyvtárakat kell telepíteni:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
A kód feltöltésének módja az arduino -ra itt található (arduino.cc).
Az Arduino IDE -ben ellenőrizze, hogy a kódot helyesen küldte -e be. (Feltöltés kész)
Az Arduino készen áll az időinformációk fogadására
Töltse le a kódot innen: DS3231TimeSync.zip (mediafire.com)
Töltse le a forrást innen: DS3231TimeSyncSRC.zip (mediafire.com)
GitHub adattár: DS3213 RTC Time Sync (github.com)
Bitbucket adattár: DS3231 RTC Time Sync (bitbucket.com)
3. lépés: A Java alkalmazás
1. Futtassa a korábban letöltött "DS3231Sync.jar" fájlt dupla kattintással
2. Megnyílik egy kis párbeszédablak, amely az arduino portját kéri
Ha bizonytalan az arduino által használt portban, nézze meg az Arduino IDE -t a jobb alsó sarokban.
(Lásd a fenti képeket)
3. Megnyílik egy másik párbeszédpanel, és egy időzóna eltolást kér
Az eltolás a számítógép helyi idejéhez viszonyított. Ha az RTC -t a helyi időre szeretné beállítani, írja be a +00: 00 értéket.
Fontos, hogy az időzóna eltolását meghatározott formátumban adja meg!
Az általános formátum +óó: mm vagy -óó: mm. A kezdő nullákat mindig tartalmazza!
(Pl.: -03: 00; -06: 00; +09: 00; +02: 30)
4. A Java alkalmazás elindít egy kis ablakot konzol kimenettel
Tartsa szem előtt az olyan megerősítő üzeneteket, mint például: "Beállított idő"
Amikor az időbeállítási folyamat befejeződött, a kód 5 másodpercenként kinyomtatja az aktuális időt a DS3231 készüléken. Megerősítheti, hogy az idő megfelelően van beállítva.
Ha ~ 20 másodperc után nem kap kimenetet, nyomja meg az arduino reset gombját, és várjon újra.
Ha még mindig nem működik, ellenőrizze a vázlatot az Arduino -n, és/vagy töltse fel újra. (Fontos: Zárja be a portot a Java alkalmazásban, mielőtt feltöltené az Arduino -ba; különben blokkolja a soros portot!) Ezután állítsa vissza a kapcsolatot a Java programban.
(A Java program a LocalDateTime -t használja az aktuális dátum lekéréséhez.)
Az idő most beállítva. Érezd jól magad
Ha bármilyen megoldhatatlan problémája lenne az idő beállításával, kérjük, írja meg az alábbi megjegyzést, és ossza meg velem a log.txt fájlt (ugyanabban a mappában, mint a jar). Nagyon köszönöm!