Satura rādītājs:

DS3231 RTC (reālā laika pulksteņa) iestatīšana precīzi, ātri un automatizēti, izmantojot Java (+-1 s): 3 soļi
DS3231 RTC (reālā laika pulksteņa) iestatīšana precīzi, ātri un automatizēti, izmantojot Java (+-1 s): 3 soļi

Video: DS3231 RTC (reālā laika pulksteņa) iestatīšana precīzi, ātri un automatizēti, izmantojot Java (+-1 s): 3 soļi

Video: DS3231 RTC (reālā laika pulksteņa) iestatīšana precīzi, ātri un automatizēti, izmantojot Java (+-1 s): 3 soļi
Video: Automātisks starta-stop kontrolieris ar DS3231 reāllaika pulksteni 2024, Jūlijs
Anonim
DS3231 RTC (reālā laika pulksteņa) iestatīšana precīzi, ātri un automatizēti, izmantojot Java (+-1 s)
DS3231 RTC (reālā laika pulksteņa) iestatīšana precīzi, ātri un automatizēti, izmantojot Java (+-1 s)

Šī pamācība parādīs, kā iestatīt laiku DS3231 reālā laika pulkstenim, izmantojot Arduino un nelielu Java lietojumprogrammu, kas izmanto Arduino sērijas savienojumu.

Šīs programmas pamatloģika:

1. Arduino nosūta sērijas pieprasījumu.

2. Java programma izskatās, kurā dienā/mēnesī/… arduino pieprasīja, un nosūta atpakaļ atbilstošos datus.

3. Pēc visas nepieciešamās informācijas apkopošanas arduino saglabā datus DS3231.

DS3231 RTC modulis

DS3231 RTC modulis ir salīdzinoši lēts RTC modulis ar augstu precizitāti. (dažas minūtes gadā)

Ir dažādas šķirnes, kuru pamatfunkcijas ir vienādas ar tikai nelielām atšķirībām.

Detalizētu salīdzinājumu var atrast šeit: DS323x Salīdzinājums | maximintegrated.com

Pērciet DS3231: DS3231 | ebay.com

Datu lapa: DS3231 Datu lapa | maximintegrated.com

Datu lapa: DS1307 Datu lapa | maximintegrated.com

Nepieciešamas detaļas

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

4x džemperu vadi

1x DS3231 modulis (DS1307 modulis)

1. solis: Elektroinstalācija

Elektroinstalācija
Elektroinstalācija

Pievienojiet DS3231 vadu, kā parādīts attēlā. Protams, jūs varat to izdarīt, neizmantojot maizes dēli, taču tas būs nedaudz nekārtīgāks. Es demonstrācijai esmu izmantojis Arduino Nano, bet arī Uno vai MEGA vajadzētu darboties. (Citi var arī strādāt, bet man ir slinkums apstiprināt)

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

2. solis: Arduino kods

Arduino kods
Arduino kods

Lejupielādējiet.ino failu no apakšas un augšupielādējiet to savā Arduino (manā gadījumā Nano).

Lai skice darbotos pareizi, ir jāinstalē šādas bibliotēkas:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Pamācību, kā augšupielādēt kodu savā arduino, var atrast šeit (arduino.cc).

Arduino IDE pārbaudiet, vai kods tika iesniegts pareizi. (Augšupielāde pabeigta)

Jūsu Arduino tagad ir gatavs saņemt informāciju par laiku

Lejupielādējiet kodu šeit: DS3231TimeSync.zip (mediafire.com)

Lejupielādējiet avotu šeit: DS3231TimeSyncSRC.zip (mediafire.com)

GitHub krātuve: DS3213 RTC Time Sync (github.com)

Bitbucket krātuve: DS3231 RTC Time Sync (bitbucket.com)

3. darbība: Java lietojumprogramma

Java lietojumprogramma
Java lietojumprogramma

1. Palaidiet iepriekš lejupielādēto "DS3231Sync.jar", veicot dubultklikšķi uz tā

2. Tiks atvērts neliels dialoglodziņš, kurā tiks vaicāts arduino ports

Ja neesat pārliecināts par savu arduino izmantoto ostu, apskatiet Arduino IDE apakšējā labajā stūrī.

(Skatīt attēlus iepriekš)

3. Tiks atvērts vēl viens dialoglodziņš un lūgs laika joslas nobīdi

Nobīde ir saistīta ar datora vietējo laiku. Lai iestatītu RTC vietējo laiku, vienkārši ievadiet +00: 00.

Ir ļoti svarīgi ievadīt laika joslas nobīdi noteiktā formātā!

Vispārējais formāts ir +hh: mm vai -hh: mm. Vienmēr iekļaujiet sākuma nulles!

(Piemēram: -03: 00; -06: 00; +09: 00; +02: 30)

4. Java lietojumprogramma atvērs nelielu logu ar konsoles izvadi

Sekojiet līdzi apstiprinājuma ziņojumiem, piemēram: "Laika iestatīšana pabeigta"

Kad laika iestatīšanas process ir pabeigts, kods ik pēc 5 sekundēm izdrukā pašreizējo laiku uz DS3231. Jūs varat apstiprināt, ka laiks ir iestatīts pareizi.

Ja pēc ~ 20 sekundēm nesaņemat nekādu izvadi, nospiediet arduino atiestatīšanas pogu un gaidiet vēlreiz.

Ja tas joprojām nedarbojas, pārbaudiet Arduino skici un/vai augšupielādējiet to vēlreiz. (Svarīgi: aizveriet portu Java lietojumprogrammā pirms augšupielādes Arduino; pretējā gadījumā tas bloķēs seriālo portu!) Pēc tam atiestatiet savienojumu Java programmā.

(Java programma izmanto LocalDateTime, lai iegūtu pašreizējo datumu.)

Tagad ir noteikts laiks. Izklaidējieties

Ja jums ir kādas neatrisināmas problēmas ar laika iestatīšanu, lūdzu, komentējiet tālāk un kopīgojiet ar mani savu log.txt failu (tajā pašā mapē, kurā atrodas burka). Liels paldies!