Innholdsfortegnelse:
Video: Innstilling av DS3231 RTC (sanntidsklokke) Nøyaktig, rask og automatisert ved hjelp av Java (+-1s): 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Denne instruksen kommer til å vise deg hvordan du stiller inn tiden på en DS3231 sanntidsklokke ved hjelp av en Arduino og et lite Java -program som bruker den serielle tilkoblingen til Arduino.
Den grunnleggende logikken i dette programmet:
1. Arduino sender en serieforespørsel.
2. Java -programmet ser ut hvilken dag/måned/… arduinoen ba om og sender relevante data tilbake.
3. Etter at all nødvendig informasjon er samlet, lagrer arduinoen dataene i DS3231.
DS3231 RTC -modulen
DS3231 RTC -modulen er en relativt billig RTC -modul med høy nøyaktighet. (noen minutter i året)
Det er forskjellige varianter hvis grunnleggende funksjonalitet er den samme med bare små forskjeller.
Detaljert sammenligning finner du her: DS323x Sammenligning | maximintegrated.com
Kjøp DS3231: DS3231 | ebay.com
Dataark: DS3231 Datablad | maximintegrated.com
Dataark: DS1307 Datablad | maximintegrated.com
Nødvendige deler
1x Arduino (Nano, Uno, MEGA, etc.)
4x hoppetråder
1x DS3231 -modul (DS1307 -modul)
Trinn 1: Kabling
Koble DS3231 som vist på bildet ovenfor. Selvfølgelig kan du gjøre det uten bruk av et brødbrett, men det blir litt mer rotete. Jeg har brukt en Arduino Nano for demonstrasjon, men en Uno eller en MEGA burde fungere også. (Andre kan også fungere, men jeg er for lat for å bekrefte)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
Trinn 2: Arduino -koden
Last ned.ino -filen nedenfra og last den opp til Arduino (i mitt tilfelle en Nano).
Skissen trenger følgende biblioteker installert for å fungere korrekt:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
En opplæring i hvordan du laster opp kode til din arduino finner du her (arduino.cc).
I Arduino IDE må du kontrollere at koden ble sendt riktig. (Ferdig med opplasting)
Arduino er nå klar til å motta tidsinformasjon
Last ned koden her: DS3231TimeSync.zip (mediafire.com)
Last ned kilden her: DS3231TimeSyncSRC.zip (mediafire.com)
GitHub -depot: DS3213 RTC Time Sync (github.com)
Bitbucket -depot: DS3231 RTC Time Sync (bitbucket.com)
Trinn 3: Java -applikasjonen
1. Kjør "DS3231Sync.jar" lastet ned før ved å dobbeltklikke på den
2. En liten dialogboks åpnes og ber deg om porten til arduinoen din
Skulle du være usikker på porten som brukes av din arduino, kan du ta en titt i Arduino IDE nederst til høyre.
(Se bildene ovenfor)
3. En annen dialog åpnes og ber deg om en tidssone -forskyvning
Forskyvningen er i forhold til lokal tid på datamaskinen din. For å angi RTC til din lokale tid, skriv inn +00: 00.
Det er kritisk at du angir tidssoneforskyvningen i et bestemt format!
Det generelle formatet er +hh: mm eller -hh: mm. Inkluder alltid ledende nuller!
(F.eks.: -03: 00; -06: 00; +09: 00; +02: 30)
4. Java -programmet vil starte et lite vindu med konsollutgang
Hold øye med bekreftelsesmeldinger som: "Tiden er ferdig"
Når tidsinnstillingsprosessen er fullført, vil koden skrive ut gjeldende tid på DS3231 hvert 5. sekund. Du kan bekrefte at tiden er riktig angitt.
Skulle du ikke få noen utgang etter ~ 20 -årene, trykker du på tilbakestillingsknappen på arduinoen din og venter igjen.
Hvis den fremdeles ikke fungerer, må du kontrollere skissen på Arduino og/eller laste den opp igjen. (Viktig: Lukk porten i Java -applikasjonen før du laster den opp til Arduino; Ellers vil den blokkere den serielle porten!) Tilbakestill deretter tilkoblingen i Java -programmet.
(Java -programmet bruker LocalDateTime for å få gjeldende dato.)
Tiden er nå satt. Ha det gøy
Skulle du ha uløselige problemer med å angi tidspunktet, vennligst kommenter nedenfor og del log.txt (i samme mappe som glasset) med meg. Takk så mye!