Real Time Clock Modules
Gerekli kütüphane: virtuabotixRTC.h
ilk yüklenilecek kod:
birinci aşama >
(1. kod)
#include <virtuabotixRTC.h>
virtuabotixRTC myRTC(6,7,8);
void setup(){Serial.begin(9600);myRTC.setDS1302Time(00,41,16,0,18,01,2025);}void loop(){myRTC.updateTime();Serial.print(myRTC.dayofmonth);Serial.print("/");Serial.print(myRTC.month);Serial.print("/");Serial.print(myRTC.year);Serial.print(" ");Serial.print(myRTC.hours);Serial.print(":");Serial.print(myRTC.minutes);Serial.print(":");Serial.println(myRTC.seconds);delay(1000);}
Bu aşamada kod içerisindeki
myRTC.setDS1302Time(00,41,16,0,18,01,2025);
kısmına ("sabit 00", "anlık dakika", "anlık saat", "sabit 0", "anlık gün", "anlık ay", "anlık yıl") ; bilgileriyle doldurulur. Ardından kod, gerekli kütüphane yüklendikten sonra arduino içerisine yüklenir.
kod yüklendikten sonra Arduino IDE üzerinden seri port ekranı açılarak zamanlayıcının sorunsuz şekilde ilerlediği gözle görülerek kontrol edilir.
ikinci aşama >
Hali hazırdaki kod üzerinden
myRTC.setDS1302Time(00,41,16,0,18,01,2025);
kısmını bularak satırın başına "//" iki adet eğik çizgi eklenir.
//myRTC.setDS1302Time(00,15,12,0,04,10,2020); Yeni hali bu şekilde gözükür.
İşlem sonrasında kod yeniden arduino cihazına yüklenerek seri port ekran kontrolü sağlanır. sağlıklı bir şekilde çalıştığı saat ve dakika kısmının ilerlediği gözlemlenir.
üçüncü aşama >
#include <virtuabotixRTC.h>virtuabotixRTC myRTC(6,7,8);yukarıdaki satırların altına
String aylar[] = {"","Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"};
Eklenerek sırasıyla aylar tanımlanır. Ardından kodun sonlarına doğru bulunan void loop kısmı aşağıdaki gibi güncellenir.
myRTC.updateTime();Serial.print(myRTC.dayofmonth);Serial.print("/");Serial.print(myRTC.month);Serial.print("/");Serial.print(myRTC.year);Serial.print(" ");Serial.print(myRTC.hours);Serial.print(":");Serial.print(myRTC.minutes);Serial.print(":");Serial.println(myRTC.seconds);
Yani kod finalde üçüncü aşamada bütünüyle aşağıdaki gibi olmalıdır.
(2. kod)
#include <virtuabotixRTC.h>virtuabotixRTC myRTC(6,7,8);String aylar[] = {"","Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"};void setup(){Serial.begin(9600);//myRTC.setDS1302Time(00,41,16,0,18,01,2025);}void loop(){myRTC.updateTime();Serial.print(myRTC.dayofmonth);Serial.print(" ");Serial.print(aylar[myRTC.month]);Serial.print(" ");Serial.print(myRTC.year);Serial.print(" ");Serial.print(myRTC.hours);Serial.print(":");Serial.print(myRTC.minutes);Serial.print(":");Serial.println(myRTC.seconds);delay(1000);}
Kod bütünüyle tamamlandıktan sonra yeniden arduino içerisine yüklenir. Seri port ekranı açılarak tanımlanan ayların yazdırılıp yazdırılmadığı kontrol edilir. İsteğe bağlı olarak arduino güç kaynağından kesilerek bir iki dakika kadar beklenir, ve yeniden güce bağlanılarak seri port ekranı ile anlık saat arasında elektrik kesintisi olmasına rağmen fark oluşup oluşmadığı kontrol edilir.
Kod bu aşamadan sonra anlık olarak tarih ve saati göstererek çalışır.
Kablolama ve Pin girişleri
Real Time Clock Modülü, toplamda 5 adet pin bağlantısına sahip bir gerçek zamanlı saat hesaplama modülüdür. pinleri sırasıyla vcc, gnd, clk, dat, rst dir.
Yukarıdaki koda göre pinlerin bağlantı şeması şu şekildedir:
VCC > Arduino üzerindeki 5V veya 3.3V girişine
GND > Arduino üzerindeki GND girişine
CLK > Arduino üzerindeki D6 girişine
DAT > Arduino üzerindeki D7 girişine
RST > Arduino üzerindeki D8 girişine
