İçindekiler:

Java Kullanarak DS3231 RTC'yi (Gerçek Zamanlı Saat) Doğru, Hızlı ve Otomatik Olarak Ayarlama (+-1s): 3 Adım
Java Kullanarak DS3231 RTC'yi (Gerçek Zamanlı Saat) Doğru, Hızlı ve Otomatik Olarak Ayarlama (+-1s): 3 Adım

Video: Java Kullanarak DS3231 RTC'yi (Gerçek Zamanlı Saat) Doğru, Hızlı ve Otomatik Olarak Ayarlama (+-1s): 3 Adım

Video: Java Kullanarak DS3231 RTC'yi (Gerçek Zamanlı Saat) Doğru, Hızlı ve Otomatik Olarak Ayarlama (+-1s): 3 Adım
Video: LDmicro 14: I2C LCD & DS3231 Real-Time Clock (Microcontroller PLC Ladder Programming with LDmicro) 2024, Temmuz
Anonim
Java Kullanarak DS3231 RTC'yi (Gerçek Zamanlı Saat) Doğru, Hızlı ve Otomatik Olarak Ayarlama (+-1s)
Java Kullanarak DS3231 RTC'yi (Gerçek Zamanlı Saat) Doğru, Hızlı ve Otomatik Olarak Ayarlama (+-1s)

Bu Eğitilebilir Tablo, bir Arduino ve Arduino'nun seri bağlantısını kullanan küçük bir Java uygulaması kullanarak bir DS3231 Gerçek Zamanlı Saatte saati nasıl ayarlayacağınızı gösterecek.

Bu programın temel mantığı:

1. Arduino bir seri istek gönderir.

2. Java programı, arduino'nun hangi gün/ay/… talep ettiğine bakar ve ilgili verileri geri gönderir.

3. Gerekli tüm bilgiler toplandıktan sonra arduino, verileri DS3231'de saklar.

DS3231 RTC Modülü

DS3231 RTC Modülü, yüksek doğruluğa sahip nispeten ucuz bir RTC modülüdür. (yılda birkaç dakika)

Temel işlevleri sadece küçük farklılıklarla aynı olan farklı çeşitler vardır.

Ayrıntılı karşılaştırma burada bulunabilir: DS323x Karşılaştırma | maximintegrated.com

DS3231:DS3231 Satın Alın | ebay.com

Veri Sayfası:DS3231 Veri Sayfası | maximintegrated.com

Veri sayfası:DS1307 Veri sayfası | maximintegrated.com

Gerekli Parçalar

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

4x Jumper Telleri

1x DS3231 Modülü (DS1307 Modülü)

Adım 1: Kablolama

kablolama
kablolama

DS3231'i yukarıdaki resimde gösterildiği gibi bağlayın. Tabii ki bunu bir breadboard kullanmadan yapabilirsiniz, ancak biraz daha dağınık olacaktır. Gösteri için bir Arduino Nano kullandım ama bir Uno veya MEGA da çalışmalı. (Diğerleri de işe yarayabilir ama onaylamak için tembelim)

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

Adım 2: Arduino Kodu

Arduino Kodu
Arduino Kodu

.ino dosyasını aşağıdan indirin ve Arduino'nuza yükleyin (benim durumumda bir Nano).

Çizimin düzgün çalışması için aşağıdaki kitaplıkların yüklenmesi gerekir:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Arduino'nuza nasıl kod yükleyeceğiniz konusunda bir eğitim burada bulunabilir (arduino.cc).

Arduino IDE'de kodun doğru şekilde gönderildiğini doğrulayın. (Yükleme tamamlandı)

Arduino'nuz artık zaman bilgisi almaya hazır

Kodu buradan indirin: DS3231TimeSync.zip (mediafire.com)

Kaynağı buradan indirin: DS3231TimeSyncSRC.zip (mediafire.com)

GitHub deposu: DS3213 RTC Time Sync (github.com)

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

3. Adım: Java Uygulaması

Java Uygulaması
Java Uygulaması

1. Daha önce indirdiğiniz "DS3231Sync.jar" dosyasını çift tıklayarak çalıştırın

2. Arduino'nuzun bağlantı noktasını soran küçük bir iletişim kutusu açılacaktır

Arduino'nuz tarafından kullanılan bağlantı noktasından emin değilseniz, sağ alttaki Arduino IDE'ye bakın.

(Yukarıdaki resimlere bakın)

3. Başka bir iletişim kutusu açılacak ve sizden saat dilimi farkı isteyecektir

Ofset, bilgisayarınızın yerel saatine göredir. RTC'yi yerel saatinize ayarlamak için +00:00 girin.

Saat dilimi farkını belirli bir biçimde girmeniz çok önemlidir!

Genel biçim +ss:dd veya -ss:dd şeklindedir. Daima baştaki sıfırları ekleyin!

(Örn: -03:00; -06:00; +09:00; +02:30)

4. Java Uygulaması, konsol çıktılı küçük bir pencere açacaktır

"Zaman seti tamamlandı" gibi onay mesajlarına dikkat edin

Zaman ayarı işlemi bittiğinde kod, her 5 saniyede bir DS3231'de geçerli saati yazdıracaktır. Saatin doğru ayarlandığını onaylayabilirsiniz.

~20sn sonra herhangi bir çıkış alamazsanız, arduino'nuzdaki sıfırlama düğmesine basın ve tekrar bekleyin.

Hala çalışmıyorsa, Arduino'daki taslağı doğrulayın ve/veya tekrar yükleyin. (Önemli: Arduino'ya yüklemeden önce Java uygulamasındaki Portu kapatın; Aksi takdirde seri portu bloke eder!) Ardından Java programında bağlantıyı sıfırlayın.

(Java programı, geçerli tarihi almak için LocalDateTime kullanıyor.)

Zaman ayarlandı. İyi eğlenceler

Çözülemez bir zaman sorunu yaşarsanız, lütfen aşağıya yorum yapın ve log.txt'inizi (jar ile aynı klasörde) benimle paylaşın. Çok teşekkürler!