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
5,823
Mesajlar
99,361
Üyeler
2,476
Son üye
mrmandos

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top