DS1307 RTC ve 24C32 Hafıza Kartı
DS1307 RTC ve 24C32 Hafıza Kartı, I2C haberleşme hattı üzerinden çalışan, tek kart üzerinde iki ayrı işlevi bir araya getiren bir Arduino/mikrodenetleyici modülüdür. Kartın üzerindeki DS1307 entegresi gerçek zamanlı saat (RTC) görevi görür; saniye, dakika, saat, tarih, ay ve yıl bilgisini tutar ve bunu ana devre kapansa bile üzerindeki yedek pil sayesinde kaybetmez. Aynı kart üzerinde bulunan 24C32 entegresi ise 4KB kapasiteli bağımsız bir I2C EEPROM'dur; proje ayarları, kalibrasyon değerleri veya küçük log kayıtları gibi kalıcı verilerin saklanmasında kullanılır. İki entegre aynı I2C hattını paylaşır ancak farklı adreslerde çalıştığı için birbirinden bağımsız okunup yazılabilir.
Teknik Özellikler
| Modül İşlevi | RTC (gerçek zamanlı saat) + I2C EEPROM birleşik modül |
| RTC Entegresi | DS1307 |
| EEPROM Entegresi | 24C32 (32 Kbit / 4 KB) |
| Haberleşme Arayüzü | I2C (2 hatlı, SDA/SCL) |
| RTC I2C Adresi | 0x68 (sabit) |
| EEPROM I2C Adresi | 0x50 (varsayılan) |
| RTC Çalışma Gerilimi (VCC) | 4,5V - 5,5V (tipik 5V) |
| RTC I2C Hız Modu | Standart mod, 100 kHz |
| Tutulan Zaman Bilgisi | Saniye, dakika, saat, haftanın günü, tarih, ay, yıl |
| Takvim Kapsamı | Artık yıl telafili, 2100 yılına kadar geçerli |
| Kare Dalga Çıkışı (SQW) | Programlanabilir: 1 Hz / 4,096 kHz / 8,192 kHz / 32,768 kHz |
| Osilatör | 32,768 kHz kristal (kart üzerinde harici kristal) |
| RTC Dahili NVRAM | 56 bayt bataryalı genel amaçlı bellek |
| Yedek Pil | 3V lityum düğme pil (kart revizyonuna göre CR2032 veya şarj edilebilir LIR2032 - kart üzerindeki baskıya bakınız) |
| EEPROM Sayfa Boyutu | 32 bayt |
| EEPROM Yazma Dayanımı | 1.000.000 yazma döngüsü |
| EEPROM Veri Saklama Süresi | 100 yıl |
| EEPROM Çalışma Gerilimi | 1,8V - 5,5V |
| Saat Formatı | 12 saat (AM/PM) veya 24 saat modu, yazılımla seçilebilir |
| I2C Pull-up Dirençleri | Çoğu modül kartında SDA/SCL hatları için hazır bulunur |
| Fiziksel Bağlantı | Delikli pin header ile breadboard veya jumper kabloya uygun |
Öne Çıkan Özellikler
- Tek I2C hattı üzerinden hem gerçek zamanlı saat/takvim bilgisine hem de 4KB'lık kalıcı belleğe erişim sunar, ayrı ayrı entegre kullanma ihtiyacını ortadan kaldırır.
- CR2032 yedek pil sayesinde ana güç kesildiğinde veya Arduino kartı fişten çekilip taşındığında bile tarih ve saat bilgisi sıfırlanmadan korunur.
- 24C32 belleğinin 1.000.000 yazma döngüsü dayanımı ve 100 yıllık veri saklama süresi, sık güncellenen ayar ve küçük log verilerinin uzun vadede güvenle saklanmasını sağlar.
- Programlanabilir kare dalga (SQW) çıkışı, mikrodenetleyiciye periyodik kesme veya senkronizasyon sinyali üretme imkânı verir.
- DS1307'nin artık yıl telafili takvim mantığı, ek yazılım hesaplaması gerektirmeden 2100 yılına kadar doğru tarih üretir.
- RTC (0x68) ve EEPROM (0x50) farklı I2C adreslerinde çalıştığı için tek bir Wire hattı üzerinden çakışma olmadan bağımsız erişilebilir.
- Kart üzerindeki devre, RTC ve EEPROM için ayrı harici besleme veya kristal gerektirmeden tek bir 5V hat ve tek bir I2C bağlantısıyla çalışacak şekilde tasarlanmıştır.
Kullanım Alanları
- Arduino tabanlı bir veri kaydedici (data logger) projesinde her ölçüm satırına DS1307'den alınan tarih-saat damgasını eklemek.
- Elektrik kesintisinde bile duvar saati veya masaüstü dijital saat projesinde saatin sıfırlanmadan çalışmaya devam etmesini sağlamak.
- Sera otomasyonunda belirli bir saatte (örneğin her sabah 07:00'de) sulama vanasını veya pompayı zaman kontrollü olarak tetiklemek, akşam belirli bir saatte de kapatmak.
- 24C32 belleğine cihazın kalibrasyon katsayılarını, wifi/şifre gibi kullanıcı ayarlarını veya son çalışma durumunu yazıp güç kesintisinden sonra bu değerleri geri okumak.
- Okul ve öğrenci projelerinde LCD/OLED ekranlı dijital saat-takvim uygulaması geliştirmek.
- Giriş kontrol veya kart okuma sisteminde her okutma anını zaman damgasıyla birlikte EEPROM'a kaydetmek.
- Zaman damgalı olay kaydı tutan bir güvenlik veya alarm sisteminde tetiklenme anlarını EEPROM'a yazarak sonradan geriye dönük inceleme yapmak.
Bağlantı ve Kullanım
Modülün VCC pini mikrodenetleyicinin 5V çıkışına, GND pini ise ortak toprak hattına bağlanır; SDA ve SCL pinleri Arduino Uno/Nano'da sırasıyla A4 ve A5 pinlerine, Mega'da ise 20 ve 21 numaralı pinlere bağlanarak I2C haberleşmesi kurulur. Kartın saat bilgisini koruyabilmesi için üzerindeki pil yuvasına kart baskısında belirtilen tipte 3V lityum düğme pil takılmalıdır; kartta şarj devresi varsa (LIR2032 baskılı modellerde) şarj edilemeyen CR2032 kullanılmamalıdır. Pil takılı olduğu sürece harici güç kesilse dahi DS1307 zamanı saymaya devam eder. SQW pini kullanılacaksa mikrodenetleyicinin bir kesme (interrupt) girişine bağlanabilir, kullanılmayacaksa boşta bırakılması yeterlidir. DS1307 ve 24C32 aynı I2C hattını paylaştığından, kod tarafında tek bir Wire.begin() çağrısı ile her iki entegreye de kendi adresleri (0x68 ve 0x50) üzerinden ayrı ayrı erişilebilir. Yazılım tarafında RTClib veya DS1307RTC gibi hazır kütüphaneler kullanılarak saat okuma/yazma ve EEPROM'a bayt yazma-okuma işlemleri kolaylaştırılabilir. İlk kullanımda RTC'nin saatini bilgisayardan veya bir NTP sunucusundan alınan güncel zamanla bir kez ayarlamak gerekir; bu işlem genellikle kart mikrodenetleyiciye bağlıyken çalıştırılan kısa bir ayar kodu ile yapılır ve pil takılı kaldığı sürece tekrar ayarlamaya gerek kalmaz.
Paket İçeriği
- 1 adet DS1307 RTC + 24C32 EEPROM I2C modül kartı
- Modül üzerinde hazır lehimlenmiş pin header
- Pil yuvası (CR2032 pilin ürünle birlikte gelip gelmediği satış görseline göre değişebilir)
- Kartın alt yüzeyinde SDA, SCL, VCC, GND, SQW gibi pin etiketleri (bağlantıyı kolaylaştırmak için)
Dikkat Edilmesi Gerekenler
- CR2032 pil takılı değilse veya bitmişse, harici güç kesildiğinde tarih/saat bilgisi sıfırlanır ya da hatalı ilerlemeye başlar.
- Kod içinde RTC ve EEPROM için farklı I2C adresleri (0x68 / 0x50) kullanılmalıdır; adres karıştırılırsa haberleşme hatası alınır.
- 24C32'nin yazma dayanımı sınırlıdır (1.000.000 döngü); her saniye gibi çok sık ve gereksiz yazma yapan uygulamalarda ilgili EEPROM hücreleri beklenenden erken aşınabilir, bu yüzden sık değişen verilerde wear-leveling veya seyrek yazma mantığı kullanmak faydalıdır.
- Modül 5V ile çalışacak şekilde tasarlanmıştır; 3,3V mantık seviyeli mikrodenetleyicilere (örneğin ESP32/ESP8266) seviye kaydırıcı olmadan doğrudan bağlamak kararsız haberleşmeye veya uzun vadede entegrenin zarar görmesine yol açabilir.
- DS1307'de yıl bilgisi 2 haneli (00-99) tutulur; yüzyıl bilgisinin yazılım tarafında ayrıca yönetilmesi gerekir.
- SDA/SCL hatlarında uzun kablo kullanılması veya pull-up direncinin yetersiz kalması I2C haberleşmesinde kararsızlığa yol açabilir.