Innehållsförteckning:
Video: Ställa in DS3231 RTC (realtidsklocka) exakt, snabbt och automatiserat med Java (+-1s): 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:43
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
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
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
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!