Indholdsfortegnelse:
Video: Indstilling af DS3231 RTC (realtidsur) Nøjagtigt, hurtigt og automatiseret ved hjælp af Java (+-1s): 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Denne instrukser viser dig, hvordan du indstiller tiden på et DS3231 Real Time Clock ved hjælp af en Arduino og et lille Java -program, der bruger den serielle forbindelse til Arduino.
Den grundlæggende logik i dette program:
1. Arduino sender en seriel anmodning.
2. Java -programmet ser hvilken dag/måned/… arduinoen anmodede om og sender de relevante data tilbage.
3. Efter at alle nødvendige oplysninger er indsamlet, gemmer arduinoen dataene i DS3231.
DS3231 RTC -modulet
DS3231 RTC -modulet er et relativt billigt RTC -modul med en høj nøjagtighed. (et par minutter om året)
Der er forskellige sorter, hvis grundlæggende funktionalitet er den samme med kun små forskelle.
Detaljeret sammenligning findes her: DS323x Sammenligning | maximintegrated.com
Køb DS3231: DS3231 | ebay.com
Datablad: DS3231 Datablad | maximintegrated.com
Datablad: DS1307 Datablad | maximintegrated.com
Nødvendige dele
1x Arduino (Nano, Uno, MEGA osv.)
4x Jumper Wires
1x DS3231 -modul (DS1307 -modul)
Trin 1: Ledningsføring
Tilslut DS3231 som vist på billedet ovenfor. Selvfølgelig kan du gøre det uden brug af et brødbræt, men det bliver lidt mere rodet. Jeg har brugt en Arduino Nano til demonstration, men en Uno eller en MEGA burde også fungere. (Andre kan også fungere, men jeg er for doven for at bekræfte)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
Trin 2: Arduino -koden
Download.ino -filen nedenunder og upload den til din Arduino (i mit tilfælde en Nano).
Skitsen skal have følgende biblioteker installeret for at fungere korrekt:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
En vejledning i, hvordan du uploader kode til din arduino kan findes her (arduino.cc).
I Arduino IDE skal du kontrollere, at koden blev indsendt korrekt. (Udført upload)
Din Arduino er nu klar til at modtage tidsinformation
Download koden her: DS3231TimeSync.zip (mediafire.com)
Download kilden her: DS3231TimeSyncSRC.zip (mediafire.com)
GitHub -depot: DS3213 RTC Time Sync (github.com)
Bitbucket -depot: DS3231 RTC Time Sync (bitbucket.com)
Trin 3: Java -applikationen
1. Kør "DS3231Sync.jar" downloadet før ved at dobbeltklikke på den
2. Der åbnes en lille dialog, hvor du bliver bedt om porten til din arduino
Skulle du være usikker på den port, din arduino brugte, skal du kigge i Arduino IDE nederst til højre.
(Se billederne ovenfor)
3. En anden dialog åbnes og beder dig om en tidszone -forskydning
Forskydningen er i forhold til din computers lokale tid. For at indstille RTC til din lokale tid skal du blot indtaste +00: 00.
Det er afgørende, at du indtaster tidszoneforskydningen i et specifikt format!
Det generelle format er +hh: mm eller -hh: mm. Inkluder altid førende nuller!
(F.eks.: -03: 00; -06: 00; +09: 00; +02: 30)
4. Java -applikationen starter et lille vindue med konsoloutput
Hold øje med bekræftelsesmeddelelser som: "Tidsindstillingen er færdig"
Når tidsindstillingsprocessen er afsluttet, udskriver koden den aktuelle tid på DS3231 hvert 5. sekund. Du kan bekræfte, at tiden er indstillet korrekt.
Skulle du ikke få noget output efter ~ 20'erne, skal du trykke på nulstillingsknappen på din arduino og vente igen.
Hvis det stadig ikke virker, skal du kontrollere skitsen på Arduino og/eller uploade den igen. (Vigtigt: Luk porten i Java -applikationen, før den uploades til Arduino; Ellers blokerer den den serielle port!) Nulstil derefter forbindelsen i Java -programmet.
(Java -programmet bruger LocalDateTime til at få den aktuelle dato.)
Tiden er nu sat. Hav det sjovt
Skulle du have uløselige problemer med at indstille tiden, bedes du kommentere herunder og dele din log.txt (i samme mappe som krukken) med mig. Mange tak!