Innehållsförteckning:

Ställa in DS3231 RTC (realtidsklocka) exakt, snabbt och automatiserat med Java (+-1s): 3 steg
Ställa in DS3231 RTC (realtidsklocka) exakt, snabbt och automatiserat med Java (+-1s): 3 steg

Video: Ställa in DS3231 RTC (realtidsklocka) exakt, snabbt och automatiserat med Java (+-1s): 3 steg

Video: Ställa in DS3231 RTC (realtidsklocka) exakt, snabbt och automatiserat med Java (+-1s): 3 steg
Video: Unwrapping a DS3231 Real-time Clock Module: What’s inside?? 🧐😲 #diy #electronic #arduino #how #clock 2024, November
Anonim
Ställa in DS3231 RTC (realtidsklocka) exakt, snabbt och automatiserat med Java (+-1s)
Ställa in DS3231 RTC (realtidsklocka) exakt, snabbt och automatiserat med Java (+-1s)

Denna instruerbara kommer att visa dig hur du ställer in tiden på en DS3231 Real Time Clock med en Arduino och ett litet Java -program som använder den seriella anslutningen av Arduino.

Den grundläggande logiken för detta program:

1. Arduino skickar en seriell begäran.

2. Java -programmet ser vilken dag/månad/… arduino begärde och skickar tillbaka relevanta data.

3. När all nödvändig information har samlats in lagrar arduino data i DS3231.

RTC -modulen DS3231

DS3231 RTC -modulen är en relativt billig RTC -modul med hög noggrannhet. (några minuter om året)

Det finns olika sorter vars grundläggande funktionalitet är densamma med endast mindre skillnader.

Detaljerad jämförelse hittar du här: DS323x Jämförelse | maximintegrated.com

Köp DS3231: DS3231 | ebay.com

Datablad: DS3231 Datablad | maximintegrated.com

Datablad: DS1307 Datablad | maximintegrated.com

Delar som behövs

1x Arduino (Nano, Uno, MEGA, etc.)

4x bygelkablar

1x DS3231 -modul (DS1307 -modul)

Steg 1: Kabeldragning

Kabeldragning
Kabeldragning

Anslut DS3231 enligt bilden ovan. Naturligtvis kan du göra det utan att använda en brödbräda, men det blir lite rörigare. Jag har använt en Arduino Nano för demonstration men en Uno eller en MEGA borde fungera också. (Andra kanske också fungerar men jag är för lat för att bekräfta)

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

Steg 2: Arduino -koden

Arduino -koden
Arduino -koden

Ladda ner.ino -filen nedan och ladda upp den till din Arduino (i mitt fall en Nano).

Skissen behöver följande bibliotek installerade för att fungera korrekt:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

En handledning om hur du laddar upp kod till din arduino hittar du här (arduino.cc).

I Arduino IDE verifiera att koden har skickats korrekt. (Uppladdning klar)

Din Arduino är nu redo att ta emot tidsinformation

Ladda ner koden här: DS3231TimeSync.zip (mediafire.com)

Ladda ner källan här: DS3231TimeSyncSRC.zip (mediafire.com)

GitHub -arkiv: DS3213 RTC Time Sync (github.com)

Bitbucket -arkiv: DS3231 RTC Time Sync (bitbucket.com)

Steg 3: Java -programmet

Java -applikationen
Java -applikationen

1. Kör "DS3231Sync.jar" nedladdad tidigare genom att dubbelklicka på den

2. En liten dialogruta öppnas och ber dig om porten på din arduino

Om du är osäker på porten som används av din arduino, ta en titt i Arduino IDE längst ner till höger.

(Se bilderna ovan)

3. En annan dialog öppnas och ber dig om en tidszonförskjutning

Förskjutningen är i förhållande till din dators lokala tid. För att ställa in RTC till din lokala tid anger du bara +00: 00.

Det är viktigt att du anger tidszonförskjutningen i ett specifikt format!

Det allmänna formatet är +hh: mm eller -hh: mm. Inkludera alltid ledande nollor!

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

4. Java -programmet startar ett litet fönster med konsolutmatning

Håll koll på bekräftelsemeddelanden som: "Tiden är klar"

När tidsinställningen är klar kommer koden att skriva ut aktuell tid på DS3231 var 5: e sekund. Du kan bekräfta att tiden är korrekt inställd.

Om du inte får någon utgång efter ~ 20 -talet trycker du på återställningsknappen på din arduino och väntar igen.

Om det fortfarande inte fungerar verifiera skissen på Arduino och/eller ladda upp det igen. (Viktigt: Stäng porten i Java -programmet innan du laddar upp till Arduino; annars blockerar den serieporten!) Återställ sedan anslutningen i Java -programmet.

(Java -programmet använder LocalDateTime för att få det aktuella datumet.)

Tiden är nu inställd. Ha så kul

Skulle du ha några olösliga problem med att ställa in tiden, kommentera nedan och dela din log.txt (i samma mapp som burken) med mig. Tack så mycket!