Ds1302 ile 1 yıllık alarm kurma

G-Smart

Üye
Katılım
9 Aralık 2022
Mesajlar
24
Ds1302 rtc ile bir yıl sonraya alarm kurmak istiyorum ama alarmı kur komutu mıt de yapacağım bir programla olacak bunun arduino kodlarını alabilirmiyim sizden
 
Hazır kod yok ama uğraşırsan yardım ederim. Bu arada "mıt" nedir?
 
Acemiyim Uğraşıyorum bir programla bu bir parçası yardım ederseniz çok memnun olurum
 
#include <SoftwareSerial.h>
#include <virtuabotixRTC.h>


virtuabotixRTC Saat(6, 7, 8); // CLK -> 6, ,//Data -> 7 RST -> 8
String gunler[] = {"PAZARTESI", "SALI", "CARSAMBA", "PERSEMBE", "CUMA", "CUMARTESI", "PAZAR"};

int buzzerPin = 5;


Serial.begin(9600);
pinMode(buzzerPin,OUTPUT); // Buzzer'in bağlı olduğu pini çıkış olarak ayarladık.

// saniye, dakika, saat, haftanın günü, ayın günü, ay, yıl
Saat.setDS1302Time(20, 13, 14,4, 17, 12, 2022);




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.


int saat,dakika,saniye,gun,ay,yil;


int saat2=Saat.hours;
int dakika2=Saat.minutes;
int saniye2=Saat.seconds;
int gun2=Saat.dayofmonth;
int ay2=Saat.month;
int yil2=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 = gun2;
int e = ay2;
int f = yil2;

int aa = a ;
int bb = b;
int cc = c;

int dd = d;
int ee = e;
int ff = f;


aa=14;
bb=14;
cc=0 ;
dd=17 ;
ee=12;
ff=2022;
void rtc(){
{ Serial.println("***************buton koşulu buranın içerisinde gerçekleşiyor******");
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);


/*{
int girilenSayi = 0;
do
{
Console.WriteLine("0'dan büyük bir sayı giriniz: ");
girilenSayi = int.Parse(Console.ReadLine());
} while (girilenSayi < 0);
}
*/




if(saat2==14 && dakika2==14 &&saniye2==0 && gun2==17 && ay2==12 && yil2==2022);


Serial.print("⏰ Alarm!!!!!!! ⏰");
Serial.print("(");
Serial.print(saat2);
Serial.print(":");
Serial.print(dakika2);
Serial.print(":");
Serial.print(saniye2);
Serial.print(" ");
Serial.print(gun2);
Serial.print("-");
Serial.print(ay2);
Serial.print("-");
Serial.print(yil2);
Serial.print(")");
}
for (int i=0; i<7884000; i++)///15
{
Serial.println("");
Serial.print(i);
digitalWrite(buzzerPin,HIGH);
delay(2000);
digitalWrite(buzzerPin,LOW);
delay(2000);

}





//continue;
}
if(saat2>=14 && dakika2>=14 &&saniye2>=0 && gun2>=7 && ay2>=4 && yil2>=2022)
{
for (int j=0; j<7884000; j++)///15
{

Serial.println("");
Serial.print(j);
digitalWrite(buzzerPin,HIGH);
delay(2000);
digitalWrite(buzzerPin,LOW);
delay(2000);


Serial.print("⏰ Alarm!!!!!!! ⏰");
Serial.print("(");
Serial.print(saat2);
Serial.print(":");
Serial.print(dakika2);
Serial.print(":");
Serial.print(saniye2);
Serial.print(" ");
Serial.print(gun2);
Serial.print("-");
Serial.print(ay2);
Serial.print("-");
Serial.print(yil2);
Serial.print(")");
Serial.println(" ***************buton koşulu buranın yukarısında gerçekleşiyor***********if koşulun bitimi");
}
}
 
bunu bir programı referans alarak yaptım ama emin değilim ayrıca 7884000 i neyi hesaplayarak bulmuş bilemedim ne saniye ne dakika cinsinden hesaplamalar tutmuyor e millis ile de hesaplayamıyoruz 49 günde kendini sıfırlıyor aklım iyice bulandı
 
Ben konuya tam hakim değilim ama uzun yoldan şöle olabilir. Millis i saydırırsın süresi bitince bir değişkene 49 yazdırıp yeniden başlatırsın ve her süresi bittiğinde değişkene 49 toplatarak atama yaparsın. Sonra if ile eğer değişken değeri 365 olduysa alarmı çal dersin ve değişkeni sıfıra eşitleyip baştan başlatırsın. Daha basit yöntemi illaki vardır ama.
 
Son düzenleme:
ÇARE BCD
 

Forum istatistikleri

Konular
7,728
Mesajlar
128,666
Üyeler
3,120
Son üye
senoltuzal

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
az bilgili çok meraklı
Back
Top