Gerekli Malzemeler
1 adet Arduino Uno R3
1 adet breadboard
1 adet RTC Saat modülü (DS1302)
2 adet led (kırmızı, yeşil)
2 adet direnç (220 ohm)
1 adet buzzer (aktif)
11 adet jumper kablo (6EE, 5DE)
RTC Saat modülü (DS1302) nedir?
DS1302 gerçek zamanlı saat devresi entegresi olup saat bilgisini anlık ve sürekli olarak okuyabileceğiniz çok kullanışlı bir modüldür. Kart üzerinde CR2032 pil konnektörü bulunur. DS1302 entegresi saniye, dakika, saat, gün, ay ve yıl bilgisini sürekli olarak içinde tutabilen bir RTC entegresidir.
RTC Saat modülü (DS1302) Devresi
RTC Saat modülü (DS1302) arduino kodları
DS1302 RTC Saat modülü için virtuabotixRTC kütüphanesini indiriniz. Kütüphaneyi indirmek için tıklayınız.
/*RTC modülünün işleyişini görmek açısından bir örnek yapıyoruz.
Saat 19:25 ise iki led yansın ve buzzer ses versin bir defaya mahsus 15 saniye
Ve her zaman şu kontrolü de yapsın.. saniye 30dan küçükse mavi led yanıp sönsün, büyükse kırmızı led yanıp sönsün*/
#include <virtuabotixRTC.h> //RTC kütüphanemizi ekliyoruz.
#define kled 3
#define kled 4 //Kırmızı led
#define yled 3 //Yeşil led
#define ses 2 //buzzer
int CLK_PIN = 6; //6. pini clock pini olarak tanımladık
int DAT_PIN = 7; //7. pini data pini olarak tanımladık
int RST_PIN = 8; //8. pini reset pini olarak tanımladık.
virtuabotixRTC myRTC(CLK_PIN, DAT_PIN, RST_PIN); // Kütüphanemizi pinlere atıyoruz.
//LCD'nin pin bağlantılarını ayarlıyoruz.
void setup() {
Serial.begin(9600);
pinMode(kled, OUTPUT);
pinMode(ses, OUTPUT);
pinMode(yled, OUTPUT);
}
void loop() {
digitalWrite(yled,0);
digitalWrite(kled,0);
digitalWrite(ses,0);
myRTC.updateTime(); //RTC'den zamanı okuyoruz
Serial.print(myRTC.dayofmonth); //Günü ekrana gönderiyoruz
Serial.print("/");
Serial.print(myRTC.month); //Ayı ekrana gönderiyoruz
Serial.print("/");
Serial.print(myRTC.year); //Yılı ekrana gönderiyoruz
Serial.print(myRTC.hours); //Saati ekrana gönderiyoruz
Serial.print(":");
Serial.print(myRTC.minutes); //Dakikayi ekrana gönderiyoruz
Serial.print(":");
Serial.println(myRTC.seconds); //Saniyeyi ekrana gönderiyoruz
delay(1000); //1 saniye bekle
if (myRTC.hours==19 && myRTC.minutes==25)
{
digitalWrite(yled,1);
digitalWrite(kled,1);
digitalWrite(ses,1);
delay(15000);
}
if (myRTC.seconds<30)
{
digitalWrite(yled,1);
digitalWrite(kled,0);
delay(500);
}
else
{
digitalWrite(yled,0);
digitalWrite(kled,1);
delay(500);
}
}
RTC Saat modülü (DS1302) Mblock Kodları
RTC Kütüphanesini indiriniz. Kodlarda düzenleme yapabilirsiniz.