Buzzer çaldıktan sonra RTC sıfırlanıyor

Mçınar

Kilopat
Katılım
5 Ağustos 2019
Mesajlar
464
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.)

ssı.PNG


[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]
 

Technopat Haberler

Yeni konular

Geri
Yukarı