Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •  

Anaokulu veya eğitim kurumunuz için kodlama eğitimi mi arıyorsunuz? Hemen İletişime Geç
Arduino

DS1307: Kart Kapansa da Devam Eden Saat

2 dk okuma

Arduino'nun kendi saati neden yeterli değil? RTC modülünün pil desteğiyle zamanı nasıl sakladığını anlattık.

DS1307, tarih ve saati tutan bir gerçek zamanlı saat (RTC) modülüdür. Üzerindeki düğme pil sayesinde kart kapansa bile zamanı saymaya devam eder.

Arduino'nun kendi saati neden yetmez?

Arduino'da millis() fonksiyonu, kart açıldığından beri geçen milisaniyeyi sayar. İki eksiği vardır:

  1. Kart kapanınca sıfırlanır. Elektrik kesildiğinde saat de gider.
  2. Tarihi bilmez. Bugünün 4 Eylül olduğunu söyleyemez, yalnız açılışından beri ne kadar geçtiğini bilir.

Bir veri kaydedicinin ölçümü "açılıştan 34.000 saniye sonra" diye damgalaması işe yaramaz; "14:20'de" demesi gerekir.

Modül ne sağlıyor?

  • Saniye, dakika, saat, gün, ay, yıl
  • Haftanın günü
  • Artık yıl hesabı (2100'e kadar)
  • Ayarlanabilir kare dalga çıkışı

Pil ömrü genellikle birkaç yıldır. Pil bitmişse modül çalışmaya devam eder ama her açılışta zamanı unutur — "saatim sürekli 2000 yılına dönüyor" şikâyetinin sebebi budur.

Bağlantı ve ayarlama

DS1307 I2C ile konuşur: SDA ve SCL hatları yeterlidir. Aynı hat üzerinde başka I2C cihazları da bulunabilir.

Saat ilk kullanımda bir kez ayarlanır. Yaygın yöntem, derleme anındaki bilgisayar saatini modüle yazmaktır. Ama bu kodu her yüklemede çalıştırırsanız saat her seferinde geriye gider; ayar kodunu bir kez çalıştırıp sonra devre dışı bırakmak gerekir.

Kayma ve alternatifi

DS1307'nin kristali sıcaklıktan etkilenir; ayda birkaç dakika kayması normaldir. Hassasiyet önemliyse DS3231 tercih edilir: içinde sıcaklık dengelemeli kristal vardır ve yılda birkaç dakikadan az kayar. Bağlantısı ve kullanımı neredeyse aynıdır.

Proje fikirleri

Çalar saat, sulama zamanlayıcısı, ölçümleri zaman damgasıyla kaydeden istasyon, okul zil sistemi, ilaç hatırlatıcısı.

Kare dalga çıkışı

DS1307'nin SQW ucu, ayarlanabilir bir kare dalga üretir: 1 Hz, 4 kHz, 8 kHz ya da 32 kHz. En kullanışlısı 1 Hz'dir.

Bu ucu bir kesme pinine bağlarsanız kartınız saniyede tam bir kez uyanır ve saati okur. Sürekli sorgulama yapmadan çalışan bir saat böyle kurulur; pille çalışan projelerde bu, ölçülebilir bir tasarruf demektir.

Yaz saati ve zaman dilimi

RTC yalnız bir sayaçtır; yaz saati uygulamasını ya da zaman dilimini bilmez. Bu kuralları uygulamak yazılımın işidir.

En temiz yaklaşım, modülde her zaman tek bir referans zamanı (örneğin UTC) tutmak ve ekrana yazarken dönüştürmektir. Modüldeki saati ileri geri oynatmak, kayıtların birbirine karışmasına yol açar.

Veriyi saklamak için microSD yazımıza bakabilir, HipoCodes devre simülasyonunda modülü bağlayabilirsiniz.

Etiketler

  • ds1307
  • rtc
  • gerçek zamanlı saat
  • i2c
  • arduino
  • robotik kodlama

Bunlar da ilginizi çekebilir