Sisukord:

DS3231 RTC (reaalajas kella) täpne, kiire ja automatiseeritud seadistamine Java abil (+-1 s): 3 sammu
DS3231 RTC (reaalajas kella) täpne, kiire ja automatiseeritud seadistamine Java abil (+-1 s): 3 sammu

Video: DS3231 RTC (reaalajas kella) täpne, kiire ja automatiseeritud seadistamine Java abil (+-1 s): 3 sammu

Video: DS3231 RTC (reaalajas kella) täpne, kiire ja automatiseeritud seadistamine Java abil (+-1 s): 3 sammu
Video: #17 Таймер плановой работы DS3231 RTC | Внешний ПЛК Arduino 2024, Juuli
Anonim
DS3231 RTC (reaalajas kella) täpne, kiire ja automatiseeritud seadistamine Java abil (+-1 s)
DS3231 RTC (reaalajas kella) täpne, kiire ja automatiseeritud seadistamine Java abil (+-1 s)

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

Juhtmestik
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

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

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