Bu sistem, belirli vakitlerde namaz zamanlarını hatırlatmak, minare ışıklarını kontrol etmek ve özel durumları ele almak için tasarlanmıştır.

Kodun ana bölümlerini aşağıda bulabiliriz:

  1. Kütüphane ve Tanımlamaların Eklenmesi: Arduino’nun çalışması için gerekli olan kütüphaneler eklenir ve pin bağlantıları tanımlanır.
  2. Setup Fonksiyonu: Arduino’nun başlangıç ayarları yapılır. Bu aşamada seri iletişim başlatılır, pinler ayarlanır, LCD ve RTC başlatılır ve SD kart hazırlanır.
  3. Loop Fonksiyonu: Arduino, bu döngü içinde sürekli olarak çalışır. Her döngüde mevcut zaman RTC ile kontrol edilir ve belirlenmiş namaz zamanlarına göre işlem yapılır. Namaz vakti geldiğinde, ilgili ezan sesi çalınır, LCD ekrana mesaj yazılır ve minare ışıkları kontrol edilir. Ayrıca, Cuma namazı öncesinde ve Ramazan ayı boyunca özel durumlar ele alınır.
  4. Reset Fonksiyonu: Bu fonksiyon, Arduino kartını sıfırlamak için kullanılır.

Bu sistem, kullanıcıya belirli namaz vakitlerinde hatırlatıcılar sunar ve ayrıca Cuma namazı gibi özel durumları ve Ramazan ayına özgü zamanlamaları da dikkate alır. Bu şekilde, kullanıcıya İslami ibadetlerini zamanında yerine getirmesi için yardımcı olur.

Adım adım sıra ile gideceğiz.

1.DS1302 RTC gerçek zaman bilgisinin Arduino’ya eklenmesi

Arduino Uno ve bir RTC (Gerçek Zaman Saati) modülü kullanarak zamanı izlemek için MyRealTimeClock.h gibi özel bir kütüphane kullanabilirsiniz. RTC modülü, Arduino Uno’ya bağlanan bir saat entegresi içerir ve gerçek zamanlı saat ve tarih bilgilerini sağlar.

MyRealTimeClock.h Hakkında bilgilendirme:

 1.MyRealTimeClock myRTC(6, 7, 8); DS1302’de CLK pini arduino’da 6 nolu pine, DAT pini arduino’da 7 nolu pine ve RST pini arduino’nun 8 nolu pinine bağladığımız için kodumuzda bu satırda iletişim adreslerini belitmiş oluyoruz.
2.//myRTC.setDS1302Time(15, 36, 23, 7, 4, 2, 2024);  Bu kod parçası DS1302’de saat bilgisini ayarlamamız için kullanılıyor. Sırası ile 15 saniyeyi, 36 dakikayı, 23 saati, 7 haftanın kaçıncı gününde olduğumuzu (1 olursa pazartesi olması gerekiyor), 4 günü, 2 ayı ve 2024 ise yılı ayarlamak için kullanıyor.
3.myRTC.updateTime(); Saat ve tarih bilgisinin yüklenmesini sağlıyor.
4.myRTC.month Ay bilgisini veriyor.
5.myRTC.dayofmonth Gün bilgisini veriyor.
6.myRTC.year Yıl bilgisini veriyor.
7.myRTC.hours Saat bilgisini veriyor.
8.myRTC.minutes Dakika bilgisini veriyor.
9.myRTC.seconds Saniye bilgisini veriyor.
10.myRTC.dayofweek Haftanın kaçıncı gününde olduğumuzun bilgisini veriyor.
Kütüphane hakkında daha fazla bilgi almak isterseniz GitHup link’ını buraya ekliyorum. DS1302 için MyRealTimeClock.h kütüphanesini bulamadıysanız MyRealTimeClock.zip dosyasını buraya ekledim.

Kod Örneği:

#include <MyRealTimeClock.h> DS1302 RTC kütüphanesi

MyRealTimeClock myRTC(6, 7, 8); //Or CLK -> 6 , DAT -> 7, Reset -> 8 pinleri arduino'ya ekledik

void setup()
{
  Serial.begin(9600);
  myRTC.setDS1302Time(15, 36, 23, 7, 4, 2, 2024);  //(saniye, dakika, saat, haftanın günü, ayın günü, ay, yıl) DS1302'yı ayarlamak için
}
void loop()
{
 myRTC.updateTime(); //Guncel Saati bilgisini istiyoruz
 int suanzaman[6]={myRTC.month,myRTC.dayofmonth,myRTC.year,myRTC.hours,myRTC.minutes,myRTC.seconds}; // Saat ve Tarih bilgisini suanzaman içine kaydettik

Serial.println(suanzaman[2]); // serial porta gönderdik 
//suanzaman[0]=>Ay bilgisini, suanzaman[1]=>Gün bilgisini, suanzaman[2]=>Yıl bilgisini, suanzaman[3]=>Saat bilgisini, suanzaman[4]=>Dakika bilgisini, suanzaman[5]=>Saniye bilgisini temsil eder
}

2.LCD Ekranın Arduino’ya eklenmesi

LiquidCrystal_I2C_AvrI2C.h, I2C arabirimini kullanan LCD ekranların Arduino ile kullanımını kolaylaştıran bir kütüphanedir. Bu kütüphane genellikle standart 16×2 veya 20×4 LCD ekranlarla kullanılır ve I2C adaptörü aracılığıyla LCD ekranı Arduino’ya bağlamayı sağlar.

İşte LiquidCrystal_I2C_AvrI2C.h kütüphanesini kullanarak bir LCD ekranı Arduino ile nasıl kullanacağınıza dair temel bir örnek:

  1. Bağlantılar: LCD ekranı ve I2C adaptörünü Arduino’ya bağlamak için gereken bağlantılar aşağıdaki gibidir:
    • SDA: Arduino A4 pinine bağlanır.
    • SCL: Arduino A5 pinine bağlanır.
    • VCC: Arduino’nun 5V pinine bağlanır.
    • GND: Arduino’nun GND pinine bağlanır.
  2. Kütüphane ve Nesne Oluşturma: İlk olarak, LiquidCrystal_I2C_AvrI2C.h kütüphanesini projenize eklemelisiniz. Ardından, bir LCD nesnesi oluşturmanız gerekir.

Kod Örneği:

#include <MyRealTimeClock.h> DS1302 RTC kütüphanesi
#include <LiquidCrystal_I2C_AvrI2C.h> I2C 17x2 Ekran kütüphanesi


MyRealTimeClock myRTC(6, 7, 8); //Or CLK -> 6 , DAT -> 7, Reset -> 8 pinleri arduino'ya ekledik
LiquidCrystal_I2C_AvrI2C lcd(0x27,17,2); //lcd isminde 0x27 adresli bir 17x2 ekran nesnesi oluşturduk 

void setup()
{
  Serial.begin(9600);
  //myRTC.setDS1302Time(15, 36, 23, 7, 4, 2, 2024);  //(saniye, dakika, saat, haftanın günü, ayın günü, ay, yıl) DS1302'yı ayarlamak için
  lcd.begin(); //lcd'yi başlatıyoruz
  lcd.backlight(); //lcd arka ışığını açıyoruz.
}
void loop()
{
 myRTC.updateTime(); //Guncel Saati bilgisini istiyoruz
 int suanzaman[6]={myRTC.month,myRTC.dayofmonth,myRTC.year,myRTC.hours,myRTC.minutes,myRTC.seconds}; // Saat ve Tarih bilgisini suanzaman içine kaydettik

 lcd.setCursor(0,0); //1.Satır 1.sıradan başlamasını belirtiyoruz
 lcd.print(myRTC.hours); //saati ekrana gönderdik
 lcd.print(":"); //saatın hemen yanına : işareti gönderdik
 lcd.print(myRTC.minutes); //Dakikayı ekran gönderdik
 lcd.print(":"); //Dakikanın hemen yanına : işareti gönderdik
 lcd.print(myRTC.seconds); //Saniyeyi ekrana gönderdik

 lcd.setCursor(0,1); //2.Satır 1.sıradan başlamasını belirtiyoruz
 lcd.print(myRTC.dayofmonth); //Günü ekrana gönderdik
 lcd.print("/"); //Günün hemen yanına / işareti gönderdik
 lcd.print(myRTC.month); //Ay bilgisini ekrana gönderdik
 lcd.print("/"); //Ayın hemen yanına / işareti gönderdik
 lcd.print(myRTC.year); //Yıl bilgisini ekrana gönderdik
 
}

Kütüphane hakkında daha fazla bilgi almak isterseniz GitHub link’ını buraya ekliyorum. I2C 16×2 için LiquidCrystal_I2C_AvrI2C.h kütüphanesini bulamadıysanız LiquidCrystal_I2C_AvrI2C.zip dosyasını buraya ekledim.

3.MicroSD kartın Arduino’ya eklenmesi

MicroSD kartın Arduino’ya eklenmesi için genellikle bir MicroSD kart adaptörü veya modülü kullanılır. Bu modül, Arduino ile SPI (Serileştirilmiş Paralel Arabirim) üzerinden iletişim kurar ve Arduino’nun MicroSD kart ile dosya okuma ve yazma işlemlerini gerçekleştirmesini sağlar.

İşte MicroSD kartı Arduino’ya eklemek için adımlar:

  1. Bağlantılar: MicroSD kart modülünü Arduino’ya bağlamak için aşağıdaki bağlantıları yapın:
    • MISO (Master In Slave Out): Arduino’nun MISO pinine bağlanır.
    • MOSI (Master Out Slave In): Arduino’nun MOSI pinine bağlanır.
    • SCK (Serial Clock): Arduino’nun SCK pinine bağlanır.
    • CS (Chip Select): Arduino’nun herhangi bir dijital pinine bağlanabilir, ancak genellikle D10 kullanılır.
    • VCC: Arduino’nun 5V veya 3.3V pinine bağlanır (MicroSD kart modülünün çalışma gerilimine bağlı olarak).
    • GND: Arduino’nun GND pinine bağlanır.
  2. Kütüphane Kurulumu: MicroSD kartı Arduino ile kullanmak için SD.h kütüphanesini kullanmanız gerekir. Bu kütüphane, Arduino’nun MicroSD kart ile iletişim kurmasını sağlar. Arduino IDE’de bu kütüphane kurulu gelir.
#include <MyRealTimeClock.h> DS1302 RTC kütüphanesi
#include <LiquidCrystal_I2C_AvrI2C.h> I2C 16x2 Ekran kütüphanesi
#include <SD.h> // sd kart kütüphanesi Arduinı IDE ile otomatik kurulmuş olur
#define Sd_Chip_pin 4 //MicoSD kartın CS haberleşme pini arduino'nun 4 nolu pinine bağlı olduğunu belirttik



MyRealTimeClock myRTC(6, 7, 8); //Or CLK -> 6 , DAT -> 7, Reset -> 8 pinleri arduino'ya ekledik
LiquidCrystal_I2C_AvrI2C lcd(0x27,17,2); //lcd isminde 0x27 adresli bir 17x2 ekran nesnesi oluşturduk 

void setup()
{
  Serial.begin(9600);
  //myRTC.setDS1302Time(15, 36, 23, 7, 4, 2, 2024);  //(saniye, dakika, saat, haftanın günü, ayın günü, ay, yıl) DS1302'yı ayarlamak için
  lcd.begin(); //lcd'yi başlatıyoruz
  lcd.backlight(); //lcd arka ışığını açıyoruz.
}
void loop()
{
 myRTC.updateTime(); //Guncel Saati bilgisini istiyoruz
 int suanzaman[6]={myRTC.month,myRTC.dayofmonth,myRTC.year,myRTC.hours,myRTC.minutes,myRTC.seconds}; // Saat ve Tarih bilgisini suanzaman içine kaydettik

 lcd.setCursor(0,0); //1.Satır 1.sıradan başlamasını belirtiyoruz
 lcd.print(myRTC.hours); //saati ekrana gönderdik
 lcd.print(":"); //saatın hemen yanına : işareti gönderdik
 lcd.print(myRTC.minutes); //Dakikayı ekran gönderdik
 lcd.print(":"); //Dakikanın hemen yanına : işareti gönderdik
 lcd.print(myRTC.seconds); //Saniyeyi ekrana gönderdik

 lcd.setCursor(0,1); //2.Satır 1.sıradan başlamasını belirtiyoruz
 lcd.print(myRTC.dayofmonth); //Günü ekrana gönderdik
 lcd.print("/"); //Günün hemen yanına / işareti gönderdik
 lcd.print(myRTC.month); //Ay bilgisini ekrana gönderdik
 lcd.print("/"); //Ayın hemen yanına / işareti gönderdik
 lcd.print(myRTC.year); //Yıl bilgisini ekrana gönderdik

}

4.TMRpcm Kütüphanesinin Arduino’ya eklenmesi

TMRpcm.h, Arduino ile ses çalma yetenekleri eklemek için kullanılan popüler bir kütüphanedir. Bu kütüphane, Arduino’nun dijital pinlerini kullanarak WAV dosyalarını SD kart üzerinden çalmanızı sağlar. Bu, Arduino projelerinizde ses efektleri, müzik veya konuşma eklemek için kullanışlıdır.

İşte TMRpcm.h kütüphanesi ile MicroSD kartın Arduino’ya nasıl eklenileceğine dair temel adımlar:

Kütüphane ve Nesne Oluşturma: İlk olarak, TMRpcm.h kütüphanesini projenize eklemeniz gerekir. Ardından, bir TMRpcm nesnesi oluşturmanız gerekir.Kütüphanemiz hoparlör pini olarak dokuzuncu pini otomatik olarak almıştır. Çünkü ses çıkışları arduino ile 9. pinden yapılmaktadır.

WAV dosyası Oluşturma:

Siteye girdiğimizde ilk başta mp3 dosyamızı yükleyelim ve aşağıdaki resimdeki gibi ayarları yapalım ve mp3 dosyamızı çevirelim.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Çevrilmiş müzik dosyasını 1.wav olarak kaydettiyseniz mikro sd karta yükleyelim ve modülümüze takalım. Geriye arduino’muza kodu yükleyelim

Dikkat edilmesi gerekenler;

1.MicroSD kartı FAT32 ile biçimlendirmiş olmanız gerekiyor. (Not: SD karta yükleme yapmadan 2 kez FAT32 ile biçimlendirin)

2.WAV dosyalarında isim değişikliği vb. şeyler yapmayın çevirdiğiniz dosyayı kopyalayarak SD karta atın. (örnek: 1.WAV)

3.SD kartda klasör oluşturmayın. Yükleyeceğiniz WAV dosyası ana dizinde olsun

4.WAV dosyasında harf kullanmayın. Çevireceğiniz Mp3 veya Mp4 dosyasını audio.online-convert.com’a yüklemeden isim oluşturunuz.

5.WAV convert ederken Change bit resolution: 8 Bit , Change audio frequency: 16000 Hz , Change audio channels: MONO ve Change PCM format: U8 seçin

Kod Örneği:

#include <MyRealTimeClock.h> DS1302 RTC kütüphanesi
#include <LiquidCrystal_I2C_AvrI2C.h> I2C 16x2 Ekran kütüphanesi
#include <SD.h> // sd kart kütüphanesi Arduinı IDE ile otomatik kurulmuş olur
#define Sd_Chip_pin 4 //MicoSD kartın CS haberleşme pini arduino'nun 4 nolu pinine bağlı olduğunu belirttik
#include <TMRpcm.h> // melodi çalma kütüphanesi
#include "SPI.h"
char val;
TMRpcm tmrpcm; // melodi fonksiyonu oluşturma
TMRpcm wav;



MyRealTimeClock myRTC(6, 7, 8); //Or CLK -> 6 , DAT -> 7, Reset -> 8 pinleri arduino'ya ekledik
LiquidCrystal_I2C_AvrI2C lcd(0x27,17,2); //lcd isminde 0x27 adresli bir 17x2 ekran nesnesi oluşturduk 

int anficalistir = 2; //Anfi çalıştırmak için 2 nolu pini çıkış olarak atayacağız
int minareisikyak = 3; //Minare Işıkları için 3 nolu pini çıkış olarak atayacağız
int ramazanayimi=0; //Ramazan ayı içinde 1 yapacağız


void(* resetfunc) (void) = 0; //WAV Dosyası çalıştıkdan sonra RAM'ı boşaltmak için buraya donuyoruz

void setup()
{
  pinMode(anficalistir, OUTPUT); //çıkış olarak ayarlandı
  pinMode(minareisikyak, OUTPUT); //çıkış olarak ayarlandı
  digitalWrite(anficalistir, LOW); //Çıkış LOW yapıldı
  digitalWrite(minareisikyak, LOW); //Çıkış LOW yapıldı

  Serial.begin(9600);
  //myRTC.setDS1302Time(15, 36, 23, 7, 4, 2, 2024);  //(saniye, dakika, saat, haftanın günü, ayın günü, ay, yıl) DS1302'yı ayarlamak için
  lcd.begin(); //lcd'yi başlatıyoruz
  lcd.backlight(); //lcd arka ışığını açıyoruz.
  tmrpcm.speakerPin = 9; // hoparlör + bacağı digital 9. pine tak
  if (!SD.begin(Sd_Chip_pin)) { // sd module bağlandık
  return;
  }
}
void loop()
{
 myRTC.updateTime(); //Guncel Saati bilgisini istiyoruz
 int suanzaman[6]={myRTC.month,myRTC.dayofmonth,myRTC.year,myRTC.hours,myRTC.minutes,myRTC.seconds}; // Saat ve Tarih bilgisini suanzaman içine kaydettik

   int sabahezansaati=1; //Sabah Ezan Vakti için Saatı ayarladık
  int sabahezandakikasi=46; //Sabah Ezan Vakti için Dakikayı ayarladık
  int sabahezansaniyesi=0;

  int oglenezansaati=1; //Öğlen Ezan Vakti için Saatı ayarladık
  int oglenezandakikasi=50; //Öğlen Ezan Vakti için Dakikayı ayarladık
  int oglenezansaniyesi=0;

  int ikindiezansaati=23; //İkindi Ezan Vakti için Saatı ayarladık
  int ikindiezandakikasi=20; //İkindi Ezan Vakti için Dakikayı ayarladık
  int ikindiezansaniyesi=0;

  int aksamezansaati=23; //Akşam Ezan Vakti için Saatı ayarladık
  int aksamezandakikasi=30; //Akşam Ezan Vakti için Dakikayı ayarladık
  int aksamezansaniyesi=0;

  int yatsiezansaati=23; //Yatsı Ezan Vakti için Saatı ayarladık
  int yatsiezandakikasi=40; //Yatsı Ezan Vakti için Dakikayı ayarladık
  int yatsiezansaniyesi=0;



   if (suanzaman[3]==sabahezansaati && suanzaman[4]==sabahezandakikasi && suanzaman[5]==sabahezansaniyesi)  //Şuan Zaman Sabah ezanı zamanına eşit olduğunda çalışacak
  {
  digitalWrite(anficalistir, HIGH); //Anfi Başlatıldı
  lcd.setCursor(0,0);
  lcd.print("EZAN OKUNUYOR...  ");
  lcd.setCursor(0,1);
  lcd.print(" SABAH ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds);
  lcd.print("          "); 

  tmrpcm.play("1.wav"); // Sabah ezanı SD kartdaki Dosyamız
  tmrpcm.volume(1);  //Sesi yükselttik
  tmrpcm.quality(1); //Ses kalitesi max. yapıldı
  delay(306000); //EZAN OKUNURKEN 5.1 DAKİKA BEKLE
  tmrpcm.stopPlayback(); //WAV dosyası durduruldu
  tmrpcm.disable(); //Kütüphane kapatıldı

  digitalWrite(anficalistir, LOW); //Anfi kapatıldı
  lcd.setCursor(0,0);
  lcd.print("  SABAH EZANI        ");
  lcd.setCursor(0,1);
  lcd.print("EZAN OKUNDU....      ");

  delay(60000);
  resetfunc(); // reser atıldı
  }





else if (suanzaman[3]==oglenezansaati && suanzaman[4]==oglenezandakikasi && suanzaman[5]==oglenezansaniyesi)
  { 
  digitalWrite(anficalistir, HIGH);
  lcd.setCursor(0,0);
  lcd.print("EZAN OKUNUYOR..    ");
  lcd.setCursor(0,1);
  lcd.print(" OGLEN ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds);
  lcd.print("          "); 

  tmrpcm.play("2.wav"); 
  tmrpcm.volume(1);
  tmrpcm.quality(1);
  delay(210000);//EZAN OKUNURKEN 3,5 DAKİKA BEKLE
  tmrpcm.stopPlayback();
  tmrpcm.disable();

  digitalWrite(anficalistir, LOW);
  lcd.setCursor(0,0);
  lcd.print("  OGLEN EZANI       ");
  lcd.setCursor(0,1);
  lcd.print("EZAN OKUNDU....     ");

  delay(60000);
  resetfunc();
  }





 else if (suanzaman[3]==ikindiezansaati && suanzaman[4]==ikindiezandakikasi && suanzaman[5]==ikindiezansaniyesi)
  { 
  digitalWrite(anficalistir, HIGH);
  lcd.setCursor(0,0);
  lcd.print("EZAN OKUNUYOR..    ");
  lcd.setCursor(0,1);
  lcd.print(" IKINDI ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds);
  lcd.print("          "); 

  tmrpcm.play("3.wav"); 
  tmrpcm.volume(1);
  tmrpcm.quality(1);
  delay(246000); //EZAN OKUNURKEN 4.1 DAKİKA BEKLE
  tmrpcm.stopPlayback(); 
  tmrpcm.disable();

  digitalWrite(anficalistir, LOW); 
  lcd.setCursor(0,0);
  lcd.print("  IKINDI EZANI       ");
  lcd.setCursor(0,1);
  lcd.print("EZAN OKUNDU....     "); 

  delay(60000);
  resetfunc();  
  }







 else if (suanzaman[3]==aksamezansaati && suanzaman[4]==aksamezandakikasi && suanzaman[5]==aksamezansaniyesi)
  { 
  digitalWrite(anficalistir, HIGH);
  lcd.setCursor(0,0);
  lcd.print("EZAN OKUNUYOR..    ");
  lcd.setCursor(0,1);
  lcd.print(" AKSAM ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds);
  lcd.print("          "); 

  tmrpcm.play("4.wav"); 
  tmrpcm.volume(1);
  tmrpcm.quality(1);
  delay(147000); //EZAN OKUNURKEN 2,45 DAKİKA BEKLE
  tmrpcm.stopPlayback(); 
  tmrpcm.disable();

  digitalWrite(anficalistir, LOW); 
  lcd.setCursor(0,0);
  lcd.print("  AKSAM EZANI       ");
  lcd.setCursor(0,1);
  lcd.print("EZAN OKUNDU....     ");

  delay(60000);
  resetfunc();
  }







 else if (suanzaman[3]==yatsiezansaati && suanzaman[4]==yatsiezandakikasi && suanzaman[5]==yatsiezansaniyesi)
  { 
  digitalWrite(anficalistir, HIGH);
  lcd.setCursor(0,0);
  lcd.print("EZAN OKUNUYOR..    ");
  lcd.setCursor(0,1);
  lcd.print(" YATSI ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds);
  lcd.print("          "); 

  tmrpcm.play("5.wav"); 
  tmrpcm.volume(1);
  tmrpcm.quality(1);
  delay(206400);
  tmrpcm.stopPlayback(); 
  tmrpcm.disable();

  digitalWrite(anficalistir, LOW);
  lcd.setCursor(0,0);
  lcd.print("  YATSI EZANI       ");
  lcd.setCursor(0,1);
  lcd.print("EZAN OKUNDU....     ");   

  delay(60000);
  resetfunc();
  }




 else
{
lcd.setCursor(0,0);
lcd.print("TARIH= ");
lcd.print(myRTC.dayofmonth);
lcd.print("/");
lcd.print(myRTC.month);
lcd.print("/");
lcd.print(myRTC.year);
lcd.print("     ");
lcd.setCursor(0,1);

switch(myRTC.dayofweek)
      { case 1: lcd.print("pts.");break;
        case 2: lcd.print("sal.");break;
        case 3: lcd.print("crs.");break;
        case 4: lcd.print("prs.");break;
        case 5: lcd.print("cum.");break;
        case 6: lcd.print("cts.");break;
        case 7: lcd.print("paz.");break;
      }

lcd.print(" ");
lcd.print(myRTC.hours);
lcd.print(":");
lcd.print(myRTC.minutes);
lcd.print(":");
lcd.print(myRTC.seconds);
lcd.print("     ");
}






//CUMA GÜNÜ CUMA NAMAZINDAN 1 SAAT ÖNCE SELA OKUR
 if (myRTC.dayofweek==5 && suanzaman[3]==oglenezansaati - 1 && suanzaman[4]==oglenezandakikasi && suanzaman[5]==oglenezansaniyesi)
 { 
  digitalWrite(anficalistir, HIGH);
  lcd.setCursor(0,0);
  lcd.print("SELAA OKUNUYOR..    ");
  lcd.setCursor(0,1);
  lcd.print(" CUMA SELASI ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds); 

  tmrpcm.play("6.wav"); 
  tmrpcm.volume(1);
  tmrpcm.quality(1);
  delay(378000);
  tmrpcm.stopPlayback();
  tmrpcm.disable();

  digitalWrite(anficalistir, LOW); 
  lcd.setCursor(0,0);
  lcd.print("  CUMA           ");
  lcd.setCursor(0,1);
  lcd.print("SELAA OKUNDU....     ");

  delay(60000);
  resetfunc();
 } 
//--------


//PERŞEMBE GÜNÜ AKŞAM EZANI İLE CUMA SABAH EZANINA KADAR AKTİF OLUR (MİNARE IŞIKLARINI YAKMAK İÇİN KULLANILIR)
 if (myRTC.dayofweek==4 && suanzaman[3]==aksamezansaati && suanzaman[4]==aksamezandakikasi && suanzaman[5]==aksamezansaniyesi)
 {digitalWrite(minareisikyak, HIGH);}
 else if (myRTC.dayofweek==5 && suanzaman[3]==sabahezansaati && suanzaman[4]==sabahezandakikasi && suanzaman[5]==sabahezansaniyesi)
 {digitalWrite(minareisikyak, LOW);}
//--------

//RAMAZAN AYI BOYUNCA İFTAR SAATI İLE SAHUR SAATI ARASINDA AKTİF OLUR (MİNARE IŞIKLARINI YAKMAK İÇİN KULLANILIR)
 if (ramazanayimi==1 && suanzaman[3]==aksamezansaati && suanzaman[4]==aksamezandakikasi && suanzaman[5]==aksamezansaniyesi)
 {digitalWrite(minareisikyak, HIGH);}
 else if (ramazanayimi==1 && suanzaman[3]==sabahezansaati && suanzaman[4]==sabahezandakikasi && suanzaman[5]==sabahezansaniyesi)
 {digitalWrite(minareisikyak, LOW);}
//--------




}

Kütüphane hakkında daha fazla bilgi almak isterseniz GitHub link’ını buraya ekliyorum.  Yardıma ihtiyacınız olduğunda yorum kısmından iletin yardımcı olmaya çalışırım.

Kaynak Dosyaları:

1.MyRealTimeClock.zip

2.LiquidCrystal_I2C_AvrI2C.zip

3.TMRpcm.zip

4.SD Kart ezanlar WAV içeriği.zip

5.bes_vakit_ezan_uygulamasi_mustafakeskin_org.ino

Mustafa KESKİN

By Mustafa KESKİN

Ölümün olduğu bu dünyada, hiçbir şey çok da ciddi değildir aslında

3 thoughts on “Arduino Uno ile 5 Vakit Ezan Okuyan Sistem Yapıyoruz”

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.