Mundarija:
Video: Java (+-1s) yordamida DS3231 RTC (real vaqt soati) ni aniq, tez va avtomatik sozlash: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Bu ko'rsatma sizga Arduino va Arduino -ning ketma -ket ulanishini ishlatadigan kichik Java ilovasi yordamida DS3231 real vaqtda soatni qanday sozlash kerakligini ko'rsatib beradi.
Ushbu dasturning asosiy mantig'i:
1. Arduino ketma -ket so'rov yuboradi.
2. Java dasturi arduino qaysi kun/oy/kun talab qilganini ko'rib chiqadi va tegishli ma'lumotlarni qaytarib yuboradi.
3. Barcha kerakli ma'lumotlar yig'ilgandan so'ng, arduino ma'lumotlarni DS3231 -da saqlaydi.
DS3231 RTC moduli
DS3231 RTC moduli - yuqori aniqlikdagi nisbatan arzon RTC moduli. (yiliga bir necha daqiqa)
Turli xil navlar bor, ularning asosiy funktsiyalari bir xil, faqat kichik farqlar bilan.
Batafsil taqqoslashni bu erda topishingiz mumkin: DS323x Taqqoslash | maximintegrated.com
DS3231 sotib oling: DS3231 | ebay.com
Ma'lumotlar jadvali: DS3231 ma'lumotlar jadvali | maximintegrated.com
Ma'lumotlar jadvali: DS1307 ma'lumotlar jadvali | maximintegrated.com
Kerakli qismlar
1x Arduino (Nano, Uno, MEGA va boshqalar)
4x o'tish simlari
1x DS3231 moduli (DS1307 moduli)
1 -qadam: simlarni ulash
DS3231 simini yuqoridagi rasmda ko'rsatilganidek ulang. Albatta, siz nonni ishlatmasdan qilishingiz mumkin, lekin bu biroz chalkashroq bo'ladi. Men Arduino Nano -ni namoyish qilish uchun ishlatganman, lekin Uno yoki MEGA ham ishlashi kerak. (Boshqalar ham ishlashi mumkin, lekin men tasdiqlashga dangasa emasman)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
2 -qadam: Arduino kodi
. Ino faylini pastdan yuklab oling va uni Arduino -ga yuklang (mening holatimda nano).
Eskiz to'g'ri ishlashi uchun quyidagi kutubxonalar o'rnatilgan bo'lishi kerak:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Arduino -ga kodni yuklash bo'yicha qo'llanmani bu erda topishingiz mumkin (arduino.cc).
Arduino IDE -da kod to'g'ri yuborilganligini tekshiring. (Yuklash tugallandi)
Sizning Arduino endi vaqt haqida ma'lumot olishga tayyor
Kodni bu yerdan yuklab oling: DS3231TimeSync.zip (mediafire.com)
Manbani bu yerdan yuklab oling: DS3231TimeSyncSRC.zip (mediafire.com)
GitHub ombori: DS3213 RTC Time Sync (github.com)
Bitbucket ombori: DS3231 RTC Time Sync (bitbucket.com)
3 -qadam: Java dasturi
1. Ikki marta bosish bilan oldin yuklangan "DS3231Sync.jar" dasturini ishga tushiring
2. Sizdan arduino portini so'raydigan kichik dialog ochiladi
Agar siz arduino ishlatadigan port haqida ishonchingiz komil bo'lmasa, pastki o'ngdagi Arduino IDE -ga qarang.
(Yuqoridagi rasmlarga qarang)
3. Boshqa muloqot oynasi ochiladi va sizdan vaqt mintaqasini ofsetini so'raydi
Ofset kompyuteringizning mahalliy vaqtiga bog'liq. RTC -ni mahalliy vaqtga o'rnatish uchun +00: 00 kiriting.
Vaqt zonasi ofsetini ma'lum formatda kiritish juda muhim!
Umumiy format +hh: mm yoki -hh: mm. Har doim etakchi nollarni kiriting!
(Masalan: -03: 00; -06: 00; +09: 00; +02: 30)
4. Java ilovasi konsoli chiqadigan kichik oynani ishga tushiradi
Tasdiqlash xabarlarini kuzatib boring: "Vaqt tugadi"
Belgilangan vaqt tugagandan so'ng, kod har 5 soniyada DS3231 -da joriy vaqtni chiqaradi. Vaqt to'g'ri o'rnatilganligini tasdiqlashingiz mumkin.
~ 20 soniyadan keyin hech qanday natija olmasangiz, arduino -dagi reset tugmasini bosing va yana kuting.
Agar u hali ham ishlamayotgan bo'lsa, Arduino -ning eskizini tekshiring va/yoki uni qayta yuklang. (Muhim: Arduino -ga yuklamasdan oldin Java ilovasidagi Portni yoping; Aks holda u ketma -ket portni bloklaydi!) Keyin Java dasturidagi ulanishni qayta o'rnating.
(Java dasturi joriy sanani olish uchun LocalDateTime -dan foydalanadi.)
Hozir vaqt belgilangan. Maza qiling
Vaqtni belgilashda siz hal qila olmaydigan muammoga duch kelsangiz, iltimos, quyida izoh qoldiring va log.txt faylini (kavanoz bilan bir papkada) men bilan baham ko'ring. Katta rahmat!