Мазмуну:
Video: Java (+-1s) менен DS3231 RTC (Real Time Clock) так, тез жана автоматташтырылган орнотуу: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул Instructable сизге Arduino жана Arduino сериялык туташуусун колдонгон кичинекей Java тиркемесин колдонуп, DS3231 реалдуу убакыт саатын кантип орнотууну көрсөтөт.
Бул программанын негизги логикасы:
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 Wires
1x DS3231 модулу (DS1307 модулу)
1 -кадам: Кабелдөө
Жогорудагы сүрөттө көрсөтүлгөндөй DS3231 зымын. Албетте, муну нан колдонбой эле жасай аласыз, бирок бул бир аз баш аламан болот. Мен демонстрация үчүн Arduino Nano колдондум, бирок Uno же MEGA дагы иштеши керек. (Башкалар дагы иштеши мүмкүн, бирок ырастоо үчүн мен жалкоомун)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
2 -кадам: Arduino коду
Төмөндөгү.ino файлын жүктөп алып, аны Arduinoго жүктөңүз (менин учурда Нано).
Эскиздин туура иштеши үчүн төмөнкү китепканалар орнотулушу керек:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Ардуиного кодду кантип жүктөө керектигин бул жерден тапса болот (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: mm же -hh: mm. Ар дайым алдыңкы нөлдөрдү кошуңуз!
(Мисалы: -03: 00; -06: 00; +09: 00; +02: 30)
4. Java тиркемеси консолу менен кичинекей терезени баштайт
Ырастоо билдирүүлөрүн карап туруңуз: "Убакыт коюлду"
Убакыт белгиленген процесс бүткөндө, код учурдагы убакытты DS3231ге 5 секунд сайын басып чыгарат. Убакыт туура коюлганын ырастай аласыз.
~ 20дан кийин эч кандай жыйынтык чыкпаса, ардуинодогу баштапкы абалга келтирүү баскычын басып, кайра күтө туруңуз.
Эгерде ал дагы эле иштебей жатса, Arduinoдогу эскизди текшериңиз жана/же кайра жүктөңүз. (Маанилүү: Arduinoго жүктөөдөн мурун Java тиркемесиндеги Портту жабыңыз; Болбосо ал сериялык портту бөгөйт!) Андан кийин Java программасындагы байланышты баштапкы абалга келтирүү.
(Java программасы учурдагы датаны алуу үчүн LocalDateTime колдонот.)
Азыр убакыт белгиленди. Көңүл ачуу
Убакытты белгилөөдө сизде кандайдыр бир чечилбеген кыйынчылыктар бар, төмөндө комментарий калтырыңыз жана log.txt файлыңызды (банка менен бир папкада) мени менен бөлүшүңүз. Чоң рахмат!