Բովանդակություն:
Video: DS3231 RTC (Իրական ժամանակի ժամացույց) ճշգրիտ, արագ և ավտոմատացված ՝ օգտագործելով Java (+-1s) ՝ 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Այս Instructable- ը ձեզ ցույց կտա, թե ինչպես կարելի է ժամանակ սահմանել DS3231 իրական ժամանակի ժամացույցի վրա `օգտագործելով Arduino- ն և փոքր Java հավելվածը, որն օգտագործում է Arduino- ի սերիական կապը:
Այս ծրագրի հիմնական տրամաբանությունը
1. Arduino- ն սերիական հարցում է ուղարկում:
2. Java ծրագիրը տեսնում է, թե որ օր/ամիս/… է arduino- ն պահանջել և հետ ուղարկում համապատասխան տվյալները:
3. Բոլոր անհրաժեշտ տեղեկատվության հավաքումից հետո arduino- ն տվյալները պահում է DS3231- ում:
DS3231 RTC մոդուլը
DS3231 RTC մոդուլը համեմատաբար էժան RTC մոդուլ է ՝ բարձր ճշգրտությամբ: (տարեկան մի քանի րոպե)
Կան տարբեր սորտեր, որոնց հիմնական ֆունկցիոնալությունը նույնն է ՝ չնչին տարբերություններով:
Մանրամասն համեմատությունը կարելի է գտնել այստեղ ՝ DS323x Համեմատություն | maximintegrated.com
Գնել DS3231: DS3231 | ebay.com
Տվյալների թերթ ՝ DS3231 Տվյալների թերթ | maximintegrated.com
Տվյալների թերթ ՝ DS1307 Տվյալների թերթ | maximintegrated.com
Պահանջվող մասեր
1x Arduino (Nano, Uno, MEGA և այլն)
4x Jumper լարեր
1x DS3231 մոդուլ (DS1307 մոդուլ)
Քայլ 1: Լարերի տեղադրում
Լարացրեք DS3231- ը, ինչպես ցույց է տրված վերևում պատկերում: Իհարկե, դուք կարող եք դա անել առանց տախտակի օգտագործման, բայց դա մի փոքր խառնաշփոթ կլինի: Ես ցուցադրման համար օգտագործել եմ Arduino Nano- ն, բայց Uno- ն կամ MEGA- ն նույնպես պետք է աշխատեն: (Մյուսները նույնպես կարող են աշխատել, բայց ես ծույլ եմ հաստատել)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
Քայլ 2: Arduino ծածկագիրը
Ներբեռնեք.ino ֆայլը ներքևից և վերբեռնեք ձեր Arduino- ում (իմ դեպքում `Nano):
Էսքիզը ճիշտ աշխատելու համար անհրաժեշտ է տեղադրել հետևյալ գրադարանները.
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Ձեր arduino- ում կոդը վերբեռնելու մասին ձեռնարկը կարող եք գտնել այստեղ (arduino.cc):
Arduino IDE- ում ստուգեք, որ կոդը ճիշտ է ներկայացվել: (Վերբեռնումն ավարտված է)
Ձեր Arduino- ն այժմ պատրաստ է ժամանակի մասին տեղեկատվություն ստանալու համար:
Ներբեռնեք կոդը այստեղ ՝ DS3231TimeSync.zip (mediafire.com)
Ներբեռնեք աղբյուրը այստեղ ՝ DS3231TimeSyncSRC.zip (mediafire.com)
GitHub շտեմարան. DS3213 RTC Time Sync (github.com)
Bitbucket պահեստ. DS3231 RTC Time Sync (bitbucket.com)
Քայլ 3: Java հավելված
1. Գործարկեք նախկինում ներբեռնված «DS3231Sync.jar» - ը ՝ կրկնակի սեղմելով այն:
2. Մի փոքր երկխոսություն կբացվի, որը ձեզանից կպահանջի ձեր arduino- ի նավահանգիստը:
Եթե վստահ չեք, որ ձեր arduino- ն օգտագործում է նավահանգիստը, նայեք ներքևի աջ մասում գտնվող Arduino IDE- ին:
(Տե՛ս վերևի նկարները)
3. Մեկ այլ երկխոսություն կբացվի և ձեզանից ժամային գոտու փոխհատուցում կպահանջի:
Օֆսեթը հարաբերական է ձեր համակարգչի տեղական ժամանակին: RTC- ը ձեր տեղական ժամանակին սահմանելու համար պարզապես մուտքագրեք +00: 00:
Կարևոր է ժամային գոտու փոխհատուցումը մուտքագրել որոշակի ձևաչափով:
Ընդհանուր ձևաչափը +hh: մմ կամ -hh: մմ է: Միշտ ներառեք առաջատար զրոներ:
(Օրինակ ՝ -03: 00; -06: 00; +09: 00; +02: 30)
4. Java հավելվածը գործարկելու է վահանակի ելքով փոքր պատուհան:
Ուշադրություն դարձրեք հաստատման հաղորդագրություններին, ինչպիսիք են ՝ «setամանակը սահմանված է»
Theամադրված գործընթացի ավարտից հետո կոդը 5 վայրկյանում տպելու է ընթացիկ ժամանակը DS3231- ով: Կարող եք հաստատել, որ ժամանակը ճիշտ է դրված:
Եթե 20 ֆունտ ստերլինգից հետո որևէ արդյունք չստանաք, սեղմեք ձեր arduino- ի վերակայման կոճակը և նորից սպասեք:
Եթե այն դեռ չի աշխատում, հաստատեք Arduino- ի էսքիզը և/կամ նորից վերբեռնեք: (Կարևոր է. Arduino- ում բեռնելուց առաջ փակեք նավահանգիստը Java հավելվածում. Հակառակ դեպքում այն կարգելափակի սերիական նավահանգիստը:) Այնուհետև վերականգեք կապը Java ծրագրում:
(Java ծրագիրը օգտագործում է LocalDateTime ընթացիկ ամսաթիվը ստանալու համար):
Theամը հիմա սահմանված է: Զվարճանալ
Խնդրում եմ, որ դուք ունեք անլուծելի դժվարություն ՝ ժամանակը սահմանելու համար, խնդրում ենք մեկնաբանել ստորև և կիսվել ձեր log.txt- ով (բանկայի հետ նույն թղթապանակում) ինձ հետ: Շատ շնորհակալություն!