Sisukord:
Video: DS3231 RTC (reaalajas kella) täpne, kiire ja automatiseeritud seadistamine Java abil (+-1 s): 3 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
See juhend annab teile teada, kuidas DS3231 reaalajas kellale aega määrata, kasutades Arduino ja väikest Java -rakendust, mis kasutab Arduino jadaühendust.
Selle programmi põhiloogika:
1. Arduino saadab jadataotluse.
2. Java programm vaatab, mis päeval/kuul/… arduino soovis ja saadab vajalikud andmed tagasi.
3. Pärast kogu vajaliku teabe kogumist salvestab arduino andmed DS3231 -sse.
DS3231 RTC moodul
DS3231 RTC moodul on suhteliselt odav ja suure täpsusega RTC moodul. (paar minutit aastas)
On erinevaid sorte, mille põhifunktsioonid on samad, kuid väikeste erinevustega.
Üksikasjaliku võrdluse leiate siit: DS323x võrdlus | maximintegrated.com
Ostke DS3231: DS3231 | ebay.com
Andmeleht: DS3231 Andmeleht | maximintegrated.com
Andmeleht: DS1307 Andmeleht | maximintegrated.com
Vajalikud osad
1x Arduino (Nano, Uno, MEGA jne)
4x hüppajajuhtmed
1x DS3231 moodul (DS1307 moodul)
Samm: juhtmestik
Ühendage DS3231 juhtmega, nagu on näidatud ülaltoodud pildil. Muidugi saate seda teha ilma leivaplaati kasutamata, kuid see on natuke segasem. Olen demonstreerimiseks kasutanud Arduino Nano, kuid Uno või MEGA peaksid samuti töötama. (Teised võivad ka töötada, kuid ma olen laisk kinnitama)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
Samm: Arduino kood
Laadige alla.ino fail alt ja laadige see oma Arduino (minu puhul Nano).
Visand vajab õigesti töötamiseks järgmisi teeke:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Õpetuse, kuidas koodi oma arduinole üles laadida, leiate siit (arduino.cc).
Kontrollige Arduino IDE -s, kas kood esitati õigesti. (Üleslaadimine valmis)
Teie Arduino on nüüd valmis ajainformatsiooni vastu võtma
Laadige kood alla siit: DS3231TimeSync.zip (mediafire.com)
Laadige allikas alla siit: DS3231TimeSyncSRC.zip (mediafire.com)
GitHubi hoidla: DS3213 RTC Time Sync (github.com)
Bitbucket'i hoidla: DS3231 RTC Time Sync (bitbucket.com)
Samm: Java -rakendus
1. Käivitage varem allalaaditud "DS3231Sync.jar", topeltklõpsates seda
2. Avaneb väike dialoog, kus küsitakse arduino porti
Kui te pole oma arduino kasutatava pordi suhtes kindel, vaadake paremas alanurgas asuvat Arduino IDE -d.
(Vaata pilte ülal)
3. Avaneb teine dialoog ja küsitakse ajavööndi nihet
Nihe on seotud teie arvuti kohaliku ajaga. RTC kohaliku aja määramiseks sisestage lihtsalt +00: 00.
Oluline on sisestada ajavööndi nihe kindlas vormingus!
Üldine formaat on +hh: mm või -hh: mm. Kaasake alati eesmised nullid!
(Nt: -03: 00; -06: 00; +09: 00; +02: 30)
4. Java rakendus käivitab väikese akna konsooli väljundiga
Jälgige kinnitussõnumeid, näiteks: "Aeg on lõppenud"
Kui määratud ajaprotsess on lõppenud, prindib kood DS3231 -le praeguse aja iga 5 sekundi järel. Saate veenduda, et kellaaeg on õigesti seadistatud.
Kui te ei saa väljundit pärast ~ 20 sekundit, vajutage arduino lähtestamisnuppu ja oodake uuesti.
Kui see ikka ei tööta, kontrollige Arduino visandit ja/või laadige see uuesti üles. (Tähtis: sulgege Java -rakenduse port enne Arduinole üleslaadimist; vastasel juhul blokeerib see jadapordi!) Seejärel lähtestage ühendus Java -programmis.
(Java programm kasutab praeguse kuupäeva saamiseks LocalDateTime'i.)
Aeg on nüüd määratud. Lõbutse hästi
Kui teil on lahendamatuid probleeme kellaaja määramisega, kommenteerige allpool ja jagage oma log.txt (purgiga samas kaustas) minuga. Tänud!