Sa, arkadaşlar RTC ile alarm devresi kurmak istiyorum ama buzzer çaldıktan sonra RTC üzerindeki saat neden sıfırlanıyor bakabilir misiniz?
(Kodların dağınık ve gereksiz uzatıldığının farkındayım ama daha sanro üzerinde uğraşacağım.)
[CODE title="RTC"]
#include <virtuabotixRTC.h>
virtuabotixRTC Saat(D6, D7, D8); //RST -> 5 CLK -> 6, ,//Data -> 7
String gunler[] = {"PAZARTESI", "SALI", "CARSAMBA", "PERSEMBE", "CUMA", "CUMARTESI", "PAZAR"};
int buzzerPin = D5;
int notaSayisi = 2;
int C = 262;
int D = 294;
/*int E = 330;
int F = 349;
int G = 392;
int A = 440;
int B = 494;
int C_ = 523;*/
int notalar[] = {C, D}; // , E, F, G, A, B, C_.
int buzzer=D5; // Buzzer'in + bacağının bağlı olduğu arduino pin.
//A= LOW;
void setup() {
Serial.begin(9600);
//pinMode(bzr,OUTPUT);
// saniye, dakika, saat, haftanın günü, ayın günü, ay, yıl.
// pinMode(buzzer,OUTPUT); // Buzzer'in bağlı olduğu pini çıkış olarak ayarladık.
Saat.setDS1302Time(20, 13, 14,4, 07, 04, 2022);
}
void loop() {
Saat.updateTime(); //Bu kod ile RTC deki anlık zamanı alıyoruz.
Serial.println(" ");
Serial.print(Saat.hours); //Saat
Serial.print(":");
Serial.print(Saat.minutes); //Dakika
Serial.print(":");
Serial.print(Saat.seconds); //Saniye
Serial.print(" ");
Serial.print(Saat.dayofmonth); //Gün
Serial.print("/");
Serial.print(Saat.month); //Ay
Serial.print("/");
Serial.print(Saat.year); //Yıl
Serial.print(" ");
Serial.println(gunler[Saat.dayofweek - 1]); //Hangi güne denk geldiğini bularak yazdırıyoruz.
delay(1000); // 1 saniye bekletiyoruz.
/*digitalWrite(buzzerPin,HIGH);
delay(2000);
digitalWrite(buzzerPin,LOW);
delay(2000);
//digitalWrite(buzzerPin,LOW);
/*digitalWrite(buzzerPin,HIGH);
delay(5000);
digitalWrite(buzzerPin,LOW);
delay(2000); */
int saat,dakika,saniye,gün,ay,yıl;
int saat2=Saat.hours;
int dakika2=Saat.minutes;
int saniye2=Saat.seconds;
int gün2=Saat.dayofmonth;
int ay2=Saat.month;
int yıl2=Saat.year;
/* Serial.print("(");
Serial.print(saat2);
Serial.print(":");
Serial.print(dakika2);
Serial.print(":");
Serial.print(saniye2);
Serial.print(" ");
Serial.print(gün2);
Serial.print("-");
Serial.print(ay2);
Serial.print("-");
Serial.print(yıl2);
Serial.print(")");*/
//boolean dogrumu = saat2 == 17; // "dogrumu" değişkeni değeri "true" (doğru) olur.
//Serial.println(dogrumu);
int a = saat2 ;
int b = dakika2;
int c = saniye2;
int d = gün2;
int e = ay2;
int f = yıl2;
int aa = a ;
int bb = b;
int cc = c;
int dd = d;
int ee = e;
int ff = f;
aa=11;
bb=20;
cc=0 ;
dd=7 ;
ee=4;
ff=2022;
Serial.print("
Alarm Zamanı
--->");
Serial.print(aa);Serial.print(":");Serial.print(bb);Serial.print(":");Serial.print(cc);Serial.print(" ");Serial.print(dd);Serial.print("/");
;Serial.print(ee);Serial.print("/");;Serial.print(ff);
if(saat2==14 && dakika2==14 &&saniye2==0 && gün2==7 && ay2==4 && yıl2==2022)
{
/* delay(500);
digitalWrite(buzzer,HIGH); //Buzzer'a güç göndererek ses çıkarmasını sağladık.
delay(1000); // 1 saniye boyunca çalmasını söyledik.
digitalWrite(buzzer,LOW); //Buzzerın gücünü keserek susmasını sağladık sağladık.
delay(1000); // 1 saniye boyunca susmasını söyledik.
*/
for (int i = 0; i < notaSayisi; i++)
{
tone(buzzerPin, notalar);
delay(500);
noTone(buzzerPin);
delay(20);
}
noTone(buzzerPin);
Serial.print("
Alarm!!!!!!!
");
Serial.print("(");
Serial.print(saat2);
Serial.print(":");
Serial.print(dakika2);
Serial.print(":");
Serial.print(saniye2);
Serial.print(" ");
Serial.print(gün2);
Serial.print("-");
Serial.print(ay2);
Serial.print("-");
Serial.print(yıl2);
Serial.print(")");
}
}
/*
void rtc_page() {
}*/[/CODE]
(Kodların dağınık ve gereksiz uzatıldığının farkındayım ama daha sanro üzerinde uğraşacağım.)
[CODE title="RTC"]
#include <virtuabotixRTC.h>
virtuabotixRTC Saat(D6, D7, D8); //RST -> 5 CLK -> 6, ,//Data -> 7
String gunler[] = {"PAZARTESI", "SALI", "CARSAMBA", "PERSEMBE", "CUMA", "CUMARTESI", "PAZAR"};
int buzzerPin = D5;
int notaSayisi = 2;
int C = 262;
int D = 294;
/*int E = 330;
int F = 349;
int G = 392;
int A = 440;
int B = 494;
int C_ = 523;*/
int notalar[] = {C, D}; // , E, F, G, A, B, C_.
int buzzer=D5; // Buzzer'in + bacağının bağlı olduğu arduino pin.
//A= LOW;
void setup() {
Serial.begin(9600);
//pinMode(bzr,OUTPUT);
// saniye, dakika, saat, haftanın günü, ayın günü, ay, yıl.
// pinMode(buzzer,OUTPUT); // Buzzer'in bağlı olduğu pini çıkış olarak ayarladık.
Saat.setDS1302Time(20, 13, 14,4, 07, 04, 2022);
}
void loop() {
Saat.updateTime(); //Bu kod ile RTC deki anlık zamanı alıyoruz.
Serial.println(" ");
Serial.print(Saat.hours); //Saat
Serial.print(":");
Serial.print(Saat.minutes); //Dakika
Serial.print(":");
Serial.print(Saat.seconds); //Saniye
Serial.print(" ");
Serial.print(Saat.dayofmonth); //Gün
Serial.print("/");
Serial.print(Saat.month); //Ay
Serial.print("/");
Serial.print(Saat.year); //Yıl
Serial.print(" ");
Serial.println(gunler[Saat.dayofweek - 1]); //Hangi güne denk geldiğini bularak yazdırıyoruz.
delay(1000); // 1 saniye bekletiyoruz.
/*digitalWrite(buzzerPin,HIGH);
delay(2000);
digitalWrite(buzzerPin,LOW);
delay(2000);
//digitalWrite(buzzerPin,LOW);
/*digitalWrite(buzzerPin,HIGH);
delay(5000);
digitalWrite(buzzerPin,LOW);
delay(2000); */
int saat,dakika,saniye,gün,ay,yıl;
int saat2=Saat.hours;
int dakika2=Saat.minutes;
int saniye2=Saat.seconds;
int gün2=Saat.dayofmonth;
int ay2=Saat.month;
int yıl2=Saat.year;
/* Serial.print("(");
Serial.print(saat2);
Serial.print(":");
Serial.print(dakika2);
Serial.print(":");
Serial.print(saniye2);
Serial.print(" ");
Serial.print(gün2);
Serial.print("-");
Serial.print(ay2);
Serial.print("-");
Serial.print(yıl2);
Serial.print(")");*/
//boolean dogrumu = saat2 == 17; // "dogrumu" değişkeni değeri "true" (doğru) olur.
//Serial.println(dogrumu);
int a = saat2 ;
int b = dakika2;
int c = saniye2;
int d = gün2;
int e = ay2;
int f = yıl2;
int aa = a ;
int bb = b;
int cc = c;
int dd = d;
int ee = e;
int ff = f;
aa=11;
bb=20;
cc=0 ;
dd=7 ;
ee=4;
ff=2022;
Serial.print("
Serial.print(aa);Serial.print(":");Serial.print(bb);Serial.print(":");Serial.print(cc);Serial.print(" ");Serial.print(dd);Serial.print("/");
;Serial.print(ee);Serial.print("/");;Serial.print(ff);
if(saat2==14 && dakika2==14 &&saniye2==0 && gün2==7 && ay2==4 && yıl2==2022)
{
/* delay(500);
digitalWrite(buzzer,HIGH); //Buzzer'a güç göndererek ses çıkarmasını sağladık.
delay(1000); // 1 saniye boyunca çalmasını söyledik.
digitalWrite(buzzer,LOW); //Buzzerın gücünü keserek susmasını sağladık sağladık.
delay(1000); // 1 saniye boyunca susmasını söyledik.
*/
for (int i = 0; i < notaSayisi; i++)
{
tone(buzzerPin, notalar);
delay(500);
noTone(buzzerPin);
delay(20);
}
noTone(buzzerPin);
Serial.print("
Serial.print("(");
Serial.print(saat2);
Serial.print(":");
Serial.print(dakika2);
Serial.print(":");
Serial.print(saniye2);
Serial.print(" ");
Serial.print(gün2);
Serial.print("-");
Serial.print(ay2);
Serial.print("-");
Serial.print(yıl2);
Serial.print(")");
}
}
/*
void rtc_page() {
}*/[/CODE]