Агуулгын хүснэгт:

Java (+-1s) ашиглан DS3231 RTC (Бодит цагийн цаг) -ыг нарийвчлалтай, хурдан, автоматаар тохируулах: 3 алхам
Java (+-1s) ашиглан DS3231 RTC (Бодит цагийн цаг) -ыг нарийвчлалтай, хурдан, автоматаар тохируулах: 3 алхам

Видео: Java (+-1s) ашиглан DS3231 RTC (Бодит цагийн цаг) -ыг нарийвчлалтай, хурдан, автоматаар тохируулах: 3 алхам

Видео: Java (+-1s) ашиглан DS3231 RTC (Бодит цагийн цаг) -ыг нарийвчлалтай, хурдан, автоматаар тохируулах: 3 алхам
Видео: LDmicro 14: ЖК-дисплей I2C и часы реального времени DS3231 (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, Долдугаар сарын
Anonim
Java-ийг ашиглан DS3231 RTC (Бодит цагийн цаг) -ыг нарийвчлалтай, хурдан, автоматаар тохируулах (+-1s)
Java-ийг ашиглан DS3231 RTC (Бодит цагийн цаг) -ыг нарийвчлалтай, хурдан, автоматаар тохируулах (+-1s)

Энэхүү зааварчилгаа нь 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 гэх мэт)

4х холбогч утас

1х DS3231 модуль (DS1307 модуль)

Алхам 1: Цахилгааны утас

Цахилгаан утас
Цахилгаан утас

Дээрх зурагт үзүүлсэн шиг DS3231 утсыг холбоно уу. Мэдээжийн хэрэг та үүнийг талхны самбар ашиглахгүйгээр хийж болно, гэхдээ энэ нь арай эмх замбараагүй байх болно. Би Arduino Nano -ийг жагсаал болгон ашиглаж байсан боловч Uno эсвэл MEGA зэрэг ажиллах ёстой. (Бусад нь бас ажиллаж магадгүй, гэхдээ би батлахаас залхуу байна)

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

Алхам 2: Arduino код

Arduino код
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 програм

Java програм
Java програм

1. Өмнө нь татаж авсан "DS3231Sync.jar" програмыг давхар дарж ажиллуулна уу

2. Жижиг харилцах цонх нээгдэх бөгөөд таны ардуино портыг асууна

Хэрэв та arduino -ийн ашигладаг портын талаар эргэлзэж байвал баруун доод буланд байгаа Arduino IDE -ийг үзнэ үү.

(Дээрх зургуудыг үзнэ үү)

3. Өөр харилцах цонх нээгдэж, цагийн бүсийн офсетыг танаас хүсэх болно

Офсет нь таны компьютерийн орон нутгийн цаг хугацаатай холбоотой юм. RTC -ийг орон нутгийн цагаар тохируулахын тулд +00: 00 оруулна уу.

Цагийн бүсийн офсетыг тодорхой форматаар оруулах нь маш чухал юм!

Ерөнхий формат нь +hh: mm эсвэл -hh: mm байна. Үргэлж тэргүүлэгч тэгүүдийг оруулаарай!

(Жишээ нь: -03: 00; -06: 00; +09: 00; +02: 30)

4. Java програм нь консолын гаралттай жижиг цонх нээх болно

"Цагийн тохиргоо дууссан" гэх мэт баталгаажуулах мессежийг ажиглаарай.

Цаг тогтоосон процесс дуусахад код нь 5 секунд тутамд DS3231 дээр одоогийн цагийг хэвлэх болно. Та цагийг зөв тохируулсан гэдгээ баталж чадна.

~ 20 -иод жилийн дараа ямар ч үр дүн гарахгүй бол arduino дээрх дахин тохируулах товчийг дараад дахин хүлээнэ үү.

Хэрэв энэ нь ажиллахгүй хэвээр байвал Arduino дээрх ноорогоо шалгаад/эсвэл дахин байршуулна уу. (Чухал: Arduino -д байршуулахаасаа өмнө Java програм дахь Портыг хаах; Эс тэгвэл энэ нь цуваа портыг хаах болно!) Дараа нь Java програм дахь холболтыг дахин тохируулна уу.

(Java програм нь одоогийн огноог авахын тулд LocalDateTime ашиглаж байна.)

Одоо цагийг тогтоосон байна. Хөгжилтэй байгаарай

Цагийг тохируулахад танд ямар нэгэн шийдэгдэхгүй асуудал тулгарсан тул доор коммент бичээд log.txt -ийг (савтай ижил хавтсанд) надтай хуваалцана уу. Маш их баярлалаа!