Obsah:

Presné, rýchle a automatické nastavenie DS3231 RTC (hodín v reálnom čase) pomocou Javy (+-1 s): 3 kroky
Presné, rýchle a automatické nastavenie DS3231 RTC (hodín v reálnom čase) pomocou Javy (+-1 s): 3 kroky

Video: Presné, rýchle a automatické nastavenie DS3231 RTC (hodín v reálnom čase) pomocou Javy (+-1 s): 3 kroky

Video: Presné, rýchle a automatické nastavenie DS3231 RTC (hodín v reálnom čase) pomocou Javy (+-1 s): 3 kroky
Video: LDmicro 18: GPS-будильник Ublox NEO-6M (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, Júl
Anonim
Nastavenie DS3231 RTC (hodiny v reálnom čase) presne, rýchlo a automaticky pomocou Java (+-1 s)
Nastavenie DS3231 RTC (hodiny v reálnom čase) presne, rýchlo a automaticky pomocou Java (+-1 s)

Tento návod vám ukáže, ako nastaviť čas na hodinách reálneho času DS3231 pomocou Arduina a malej Java aplikácie, ktorá používa sériové pripojenie Arduina.

Základná logika tohto programu:

1. Arduino pošle sériovú požiadavku.

2. Program Java vyzerá, aký deň/mesiac/… arduino požadoval a odoslal relevantné údaje späť.

3. Po zhromaždení všetkých potrebných informácií arduino uloží údaje do DS3231.

Modul DS3231 RTC

Modul RTC DS3231 je relatívne lacný modul RTC s vysokou presnosťou. (niekoľko minút za rok)

Existujú rôzne odrody, ktorých základná funkčnosť je rovnaká iba s malými rozdielmi.

Podrobné porovnanie nájdete tu: Porovnanie DS323x | maximintegrated.com

Kúpiť DS3231: DS3231 | ebay.com

Dátový list: DS3231 Dátový list | maximintegrated.com

Dátový list: DS1307 Technický list | maximintegrated.com

Potrebné diely

1x Arduino (Nano, Uno, MEGA atď.)

4x prepojovacie vodiče

1x modul DS3231 (modul DS1307)

Krok 1: Zapojenie

Elektrické vedenie
Elektrické vedenie

Pripojte DS3231 tak, ako je to znázornené na obrázku vyššie. Samozrejme to môžete urobiť bez použitia breadboardu, ale bude to o niečo ťažšie. Na ukážku som použil Arduino Nano, ale fungovať by malo aj Uno alebo MEGA. (Ostatné môžu tiež fungovať, ale som lenivý to potvrdzovať)

  • Arduino -> DS3231
  • A4 -> SCL
  • A5 -> SDA
  • 5V -> VCC
  • GND -> GND

Krok 2: Kód Arduino

Arduino kód
Arduino kód

Dole si stiahnite súbor.ino a nahrajte ho do svojho Arduina (v mojom prípade Nano).

Na správnu funkciu náčrtu sú nainštalované nasledujúce knižnice:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Návod, ako nahrať kód do svojho arduina, nájdete tu (arduino.cc).

V IDE Arduino overte, či bol kód odoslaný správne. (Nahrávanie sa dokončilo)

Vaše Arduino je teraz pripravené prijímať časové informácie

Stiahnite si kód tu: DS3231TimeSync.zip (mediafire.com)

Stiahnite si zdroj tu: DS3231TimeSyncSRC.zip (mediafire.com)

Úložisko GitHub: synchronizácia času DS3213 RTC (github.com)

Úložisko bitbucket: DS3231 RTC Time Sync (bitbucket.com)

Krok 3: Aplikácia Java

Aplikácia Java
Aplikácia Java

1. Dvojitým kliknutím na súbor „DS3231Sync.jar“spustený predtým spustite

2. Otvorí sa malé dialógové okno s otázkou na port vášho arduina

Ak si nie ste istí portom, ktorý používa vaše arduino, pozrite sa do Arduino IDE vpravo dole.

(Pozri obrázky vyššie)

3. Otvorí sa ďalšie dialógové okno a požiada vás o posunutie časového pásma

Offset je relatívny k miestnemu času vášho počítača. Ak chcete nastaviť RTC na miestny čas, zadajte +00: 00.

Je dôležité, aby ste zadali posun časového pásma v konkrétnom formáte!

Obecný formát je +hh: mm alebo -hh: mm. Vždy uvádzajte úvodné nuly!

(Napr.: -03: 00; -06: 00; +09: 00; +02: 30)

4. Aplikácia Java spustí malé okno s výstupom z konzoly

Dávajte si pozor na potvrdzovacie správy ako: „Nastavený čas skončil“

Po dokončení procesu nastavovania času kód vytlačí aktuálny čas na DS3231 každých 5 sekúnd. Môžete potvrdiť, že je čas nastavený správne.

Ak sa vám ~ 20 s nedostane žiadny výstup, stlačte tlačidlo reset na arduine a počkajte znova.

Ak stále nefunguje, overte náčrt na Arduine a/alebo ho znova nahrajte. (Dôležité: Pred nahraním do Arduina zatvorte Port v aplikácii Java; V opačnom prípade zablokuje sériový port!) Potom resetujte pripojenie v programe Java.

(Program Java používa na získanie aktuálneho dátumu LocalDateTime.)

Teraz je nastavený čas. Bavte sa

Ak máte akékoľvek neriešiteľné problémy s nastavením času, komentujte nižšie a zdieľajte so mnou svoj súbor log.txt (v rovnakom priečinku ako jar). Mnohokrat dakujem!