Tartalomjegyzék:

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 beállítása, gyors és automatizált Java használatával (+-1 másodperc): 3 lépés

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

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
Videó: Контроллер автоматического пуска-останова с часами реального времени DS3231 2024, Július
Anonim
A DS3231 RTC (valós idejű óra) pontos beállítása, gyors és automatizált Java használatával (+-1 másodperc)
A DS3231 RTC (valós idejű óra) pontos beállítása, gyors és automatizált Java használatával (+-1 másodperc)

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

Vezeték
Vezeték

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

Az Arduino kód
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

A Java alkalmazá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!