Arduino ile DS1302 RTC kulanımı

👤 Yazar: ozcan 📅 Tarih: 28.05.2026 16:30 👁️ Görüntüleme: 15

 Arduino projelerimize gerçek zaman algısı kazandıran harika bir modülle devam ediyoruz: DS1302 Real Time Clock (Gerçek Zamanlı Saat) Modülü.

Arduino ile normalde delay() veya millis() fonksiyonlarını kullanarak zamanı saydırabilirsiniz. Ancak Arduino'nun elektriği kesildiği anda zaman sıfırlanır ve her şey başa döner. İşte akıllı ev sistemlerinde, zamanarlı prizlerde veya dijital saat projelerinde sistemin elektriği kesilse bile saatin ve tarihin doğru kalmasını sağlayan şey, üzerinde minik bir saat pili (CR2032) barındıran DS1302 entegresidir.

Gelin, yenidir.com takipçileri için DS1302 modülünün çalışma mantığını, Arduino bağlantılarını ve kütüphane kullanarak ilk zaman verisini nasıl okuyacağımızı pratik bir örnekle inceleyelim.

DS1302 RTC Modülü Nedir ve Nasıl Çalışır?

ds1302 rtc zaman modülü

DS1302; içinde saniye, dakika, saat, gün, ay, haftanın günü ve yıl bilgilerini barındıran, 2100 yılına kadar artık yılları dahi hesaba katabilen pratik bir zaman takip entegresidir.

Modülün üzerinde yer alan 32.768 kHz'lik kristal osilatör, zamanın çok hassas bir şekilde akmasını sağlar. Arkasındaki düğme pil ise Arduino kapansa bile entegrenin içindeki saatin yıllarca arka planda çalışmaya devam etmesini sağlar. Arduino tekrar açıldığında, güncel saati bu entegreden sorarak kaldığı yerden devam eder.

DS1302 ve Arduino Bağlantı Şeması

DS1302 modülü üzerinde genellikle 5 adet bağlantı pini bulunur. Bu pinlerin Arduino ile eşleşmesi şu şekildedir:

arduino ds1302 rtc şeması

Gerekli Kütüphanenin Kurulması

DS1302 ile doğrudan haberleşmek kod karmaşasına neden olacağı için işimizi kolaylaştıracak popüler bir kütüphane kullanacağız. Arduino IDE programını açın ve şu adımları takip edin:

  1. Taslak (Sketch) -> Library Ekle (Include Library) -> Kütüphaneleri Yönet (Manage Libraries...) menüsüne girin.
  2. Arama çubuğuna "Virtuabotix DS1302" yazın.
  3. Çıkan kütüphaneyi seçip Kur (Install) butonuna tıklayın.

Arduino DS1302 Örnek Kod Bloğu

Aşağıdaki kodları Arduino IDE programınıza yapıştırıp kartınıza yükleyin. Kodların içindeki açıklamaları takip ederek ilk yüklemede kendi tarih ve saatinizi ayarlamayı unutmayın!

#include <virtuabotixRTC.h> // Kütüphanemizi projeye dahil ediyoruz.

// DS1302 pin bağlantılarını tanımlıyoruz: (CLK, DAT, RST)
virtuabotixRTC myRTC(6, 7, 8);

void setup() {
  Serial.begin(9600); // Seri haberleşmeyi başlatıyoruz.

  // DIKKAT: Saati ilk kez ayarlamak için aşağıdaki satırın başındaki yorum işaretlerini (//) kaldırın.
  // Kendi tarih ve saatinizi yazıp kodu Arduino'ya yükleyin.
  // Sırasıyla: Saniye, Dakika, Saat, Haftanın Günü (1-7), Ayın Günü, Ay, Yıl
  // myRTC.setDS1302time(00, 30, 16, 4, 28, 5, 2026); 
  
  // ÖNEMLİ NOT: Saati bir kez ayarladıktan sonra yukarıdaki satırı tekrar yorum satırı (//) yapıp 
  // kodu yeniden yükleyin. Aksi takdirde Arduino her açıldığında saat bu zamana geri döner!
}

void loop() {
  myRTC.updateTime(); // Entegeden güncel zaman bilgilerini çekiyoruz.

  // Verileri Seri Port Ekranına düzenli bir şekilde yazdırıyoruz
  Serial.print("Tarih: ");
  Serial.print(myRTC.dayofmonth);
  Serial.print("/");
  Serial.print(myRTC.month);
  Serial.print("/");
  Serial.print(myRTC.year);

  Serial.print(" | Saat: ");
  if(myRTC.hours < 10) Serial.print("0"); // Saat 10'dan küçükse başına 0 koy
  Serial.print(myRTC.hours);
  Serial.print(":");
  if(myRTC.minutes < 10) Serial.print("0"); // Dakika 10'dan küçükse başına 0 koy
  Serial.print(myRTC.minutes);
  Serial.print(":");
  if(myRTC.seconds < 10) Serial.print("0"); // Saniye 10'dan küçükse başına 0 koy
  Serial.println(myRTC.seconds);

  delay(1000); // Her saniyede bir verileri güncelle
}

Kod Yüklendikten Sonra Test Etme

Kodu Arduino'nuza yükledikten sonra sağ üst köşedeki **Seri Port Ekranını (Serial Monitor)** açın ve baud hızını 9600 olarak seçin. Ekranda her saniye akan güncel tarih ve saat bilgisini göreceksiniz. Şimdi Arduino'nun bilgisayarla olan USB kablo bağlantısını sökün, birkaç dakika bekleyin ve tekrar takın. Saatin kaldığı yerden doğru bir şekilde akmaya devam ettiğini göreceksiniz; işte bu üzerindeki pilin mucizesidir!

Özet ve Proje Fikirleri

DS1302 RTC modülü, zaman odaklı projeler üretmek isteyen her hobicinin kütüphanesinde bulunması gereken bir elemandır. Bu modülü kullanarak kendi dijital masa saatinizi yapabilir, LCD veya OLED ekranlara yazdırabilir, hatta bir röle modülü bağlayarak "Her gün akşam saat 20:00'de çiçekleri 5 dakika sula" gibi harika otomasyon projeleri geliştirebilirsiniz.

yenidir.com Arduino serimizde zamanı kontrol etmeyi de öğrendik! Bir sonraki yazımızda, bu saat verilerini görselleştirmek için projelerimize nasıl I2C LCD Ekran ekleyeceğimizi inceleyelim mi? Kodda veya bağlantılarda karşılaştığınız sorunları yorumlar kısmında sormaktan çekinmeyin!



💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
Sayfa Başı
Yenidir CMS V0.1