
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Šī 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

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

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

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!