Indholdsfortegnelse:

Indstilling af DS3231 RTC (realtidsur) Nøjagtigt, hurtigt og automatiseret ved hjælp af Java (+-1s): 3 trin
Indstilling af DS3231 RTC (realtidsur) Nøjagtigt, hurtigt og automatiseret ved hjælp af Java (+-1s): 3 trin

Video: Indstilling af DS3231 RTC (realtidsur) Nøjagtigt, hurtigt og automatiseret ved hjælp af Java (+-1s): 3 trin

Video: Indstilling af DS3231 RTC (realtidsur) Nøjagtigt, hurtigt og automatiseret ved hjælp af Java (+-1s): 3 trin
Video: LDmicro 14: I2C LCD & DS3231 Real-Time Clock (Microcontroller PLC Ladder Programming with LDmicro) 2024, November
Anonim
Indstilling af DS3231 RTC (realtidsur) Nøjagtigt, hurtigt og automatiseret ved hjælp af Java (+-1s)
Indstilling af DS3231 RTC (realtidsur) Nøjagtigt, hurtigt og automatiseret ved hjælp af Java (+-1s)

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

Ledninger
Ledninger

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

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

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