Talaan ng mga Nilalaman:

Ang pagtatakda ng DS3231 RTC (Real Time Clock) na Tumpak, Mabilis at Awtomatikong Paggamit ng Java (+ -1s): 3 Hakbang
Ang pagtatakda ng DS3231 RTC (Real Time Clock) na Tumpak, Mabilis at Awtomatikong Paggamit ng Java (+ -1s): 3 Hakbang

Video: Ang pagtatakda ng DS3231 RTC (Real Time Clock) na Tumpak, Mabilis at Awtomatikong Paggamit ng Java (+ -1s): 3 Hakbang

Video: Ang pagtatakda ng DS3231 RTC (Real Time Clock) na Tumpak, Mabilis at Awtomatikong Paggamit ng Java (+ -1s): 3 Hakbang
Video: Automatic Start-Stop Controller with DS3231 Real-Time Clock 2024, Nobyembre
Anonim
Ang pagtatakda ng DS3231 RTC (Real Time Clock) na Tumpak, Mabilis at Awtomatikong Paggamit ng Java (+ -1s)
Ang pagtatakda ng DS3231 RTC (Real Time Clock) na Tumpak, Mabilis at Awtomatikong Paggamit ng Java (+ -1s)

Ipapakita sa iyo ng Instructable na ito kung paano itakda ang oras sa isang DS3231 Real Time Clock na gumagamit ng isang Arduino at isang maliit na application ng Java na gumagamit ng serial na koneksyon ng Arduino.

Ang pangunahing lohika ng program na ito:

1. Ang Arduino ay nagpapadala ng isang serial na kahilingan.

2. Tinitingnan ng programang Java kung anong araw / buwan /… ang hiniling ng arduino at ibabalik ang inilabas na data.

3. Matapos ang lahat ng kinakailangang impormasyon ay natipon ang arduino ay nag-iimbak ng data sa DS3231.

Ang DS3231 RTC Module

Ang DS3231 RTC Module ay isang medyo murang module ng RTC na may mataas na kawastuhan. (ilang minuto sa isang taon)

Mayroong iba't ibang mga pagkakaiba-iba na ang pangunahing pagpapaandar ay pareho sa mga menor de edad lamang na pagkakaiba.

Ang detalyadong paghahambing ay matatagpuan dito: DS323x Paghahambing | maximintegrated.com

Bilhin ang DS3231: DS3231 | ebay.com

Datasheet: DS3231 Datasheet | maximintegrated.com

Datasheet: DS1307 Datasheet | maximintegrated.com

Mga Bahaging Kailangan

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

4x Jumper Wires

1x DS3231 Module (Module ng DS1307)

Hakbang 1: Mga kable

Kable
Kable

Wire ang DS3231 tulad ng ipinakita sa imahe sa itaas. Siyempre maaari mo itong gawin nang hindi gumagamit ng isang breadboard, ngunit ito ay magiging medyo magulo. Gumamit ako ng isang Arduino Nano para sa demonstrasyon ngunit ang isang Uno o isang MEGA ay dapat na gumana din. (Ang iba ay maaari ring gumana ngunit tinatamad akong kumpirmahin)

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

Hakbang 2: Ang Arduino Code

Ang Arduino Code
Ang Arduino Code

I-download ang.ino file mula sa ibaba at i-upload ito sa iyong Arduino (sa aking kaso isang Nano).

Kailangan ng sketch ang mga sumusunod na aklatan na naka-install upang gumana nang tama:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Ang isang tutorial sa kung paano mag-upload ng code sa iyong arduino ay matatagpuan dito (arduino.cc).

Sa Arduino IDE i-verify na ang code ay naibigay nang tama. (Tapos nang mag-upload)

Handa na ang iyong Arduino na makatanggap ng impormasyon sa oras

I-download ang code dito: DS3231TimeSync.zip (mediafire.com)

I-download ang mapagkukunan dito: DS3231TimeSyncSRC.zip (mediafire.com)

Repository ng GitHub: DS3213 RTC Time Sync (github.com)

Bitbucket repository: DS3231 RTC Time Sync (bitbucket.com)

Hakbang 3: Ang Application ng Java

Ang Application ng Java
Ang Application ng Java

1. Patakbuhin ang "DS3231Sync.jar" na na-download dati sa pamamagitan ng pag-double click dito

2. Ang isang maliit na dayalogo ay magbubukas na humihiling sa iyo para sa port ng iyong arduino

Kung hindi ka sigurado tungkol sa port na ginamit ng iyong arduino tingnan ang Arduino IDE sa kanang bahagi sa ibaba.

(Tingnan ang mga imahe sa itaas)

3. Ang isa pang dayalogo ay magbubukas at hihilingin sa iyo para sa isang offset ng time zone

Ang offset ay kaugnay sa lokal na oras ng iyong computer. Upang maitakda ang RTC sa iyong lokal na oras ipasok lamang ang +00: 00.

Kritikal na ipasok mo ang offset ng time zone sa isang tukoy na format!

Ang pangkalahatang format ay + hh: mm o -hh: mm. Palaging isama ang mga nangungunang zero!

(Hal.: -03: 00; -06: 00; +09: 00; +02: 30)

4. Ang Java Application ay maglulunsad ng isang maliit na window na may console output

Pagmasdan ang mga mensahe sa kumpirmasyon tulad ng: "Natapos ang takdang oras"

Kapag natapos ang proseso ng itinakdang oras ang code ay mai-print ang kasalukuyang oras sa DS3231 bawat 5 segundo. Maaari mong kumpirmahing ang oras ay itinakda nang tama.

Hindi ka dapat makakuha ng anumang output pagkatapos ~ 20s itulak ang pindutan ng pag-reset sa iyong arduino at maghintay muli.

Kung hindi pa ito gumagana gumagana patunayan ang sketch sa Arduino at / o i-upload ito muli. (Mahalaga: Isara ang Port sa application ng Java bago mag-upload sa Arduino; Kung hindi, mai-block nito ang serial port!) Pagkatapos ay i-reset ang koneksyon sa Java program.

(Ang programang Java ay gumagamit ng LocalDateTime upang makuha ang kasalukuyang petsa.)

Ang oras ay nakatakda na. Magsaya ka

Shoud mayroon kang anumang hindi malulutas na problema sa pagtatakda ng oras mangyaring magkomento sa ibaba at ibahagi ang iyong log.txt (sa parehong folder tulad ng garapon) sa akin. Maraming salamat!