Innholdsfortegnelse:

Innstilling av DS3231 RTC (sanntidsklokke) Nøyaktig, rask og automatisert ved hjelp av Java (+-1s): 3 trinn
Innstilling av DS3231 RTC (sanntidsklokke) Nøyaktig, rask og automatisert ved hjelp av Java (+-1s): 3 trinn

Video: Innstilling av DS3231 RTC (sanntidsklokke) Nøyaktig, rask og automatisert ved hjelp av Java (+-1s): 3 trinn

Video: Innstilling av DS3231 RTC (sanntidsklokke) Nøyaktig, rask og automatisert ved hjelp av Java (+-1s): 3 trinn
Video: 7 проектов. Сборка светодиодного ЖК-будильника с использованием DS1307 и Arduino | Урок 105 2024, Juli
Anonim
Stille inn DS3231 RTC (sanntidsklokke) Nøyaktig, rask og automatisert ved hjelp av Java (+-1s)
Stille inn DS3231 RTC (sanntidsklokke) Nøyaktig, rask og automatisert ved hjelp av Java (+-1s)

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

Kabling
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

Arduino -koden
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

Java -applikasjonen
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!