2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
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
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
.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ı
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!