Elektrik elektronik temrinleri

Ders Notları => Arduino Öğreniyorum => Projeler => Konuyu başlatan: Hasan ERTÜRK - 26 Eylül 2015, 21:22:01

Başlık: 6. PIR Sensör Kontrollü Çakar Lamba Uygulaması
Gönderen: Hasan ERTÜRK - 26 Eylül 2015, 21:22:01
http://www.youtube.com/watch?v=sa9ofckCLbw

Bu dersimizde PIR sensör kontrollü çakar lamba uygulaması yaparken PIR sensör ve röle modülünün de nasıl kullanılacağını öğreneceğiz.

Soru:
Sistemde hareket algılamak üzere 1 adet PIR sensör ve 2 adet lamba bulunmaktadır. PIR sensör hareket algıladığında birinci lamba 250'şer ms aralıklarla 3 defa yanıp sönerken, ikinci lambanın sönük kalması ve birinci lamba 3 kere flash çaktıktan sonra ikinci lambanın 3 kere 250 ms aralıklarla yanıp sönerken birinci lambanın sönük kalması istenmektedir. Bu senarya 6 kere tekrarlanacak ve ortaamdaki hareketlilik sona erdiyse sistem duracaktır. Hareketlilik devam ediyorsa yukarıdaki senarya tekrar uygulamaya sokulacaktır.

Çözüm:
Öncelikle bizden ne istendiğinin net bir şekilde anlaşılması için söz konusu senaryoya ait akış diyagramını hazırlayalım. Daha sonra oluşturduğumuz bu akış diyagramından program yazarken faydalanacağız.

(http://temrinlerim.org/images/arduino77.bmp)

Bu akış diyagramına göre yazılması gereken program şu şekilde olacaktır:
int pir_sensor_cikisi=A0;               // A0 PİNİNE pir_sensor_cikisi ADI VERİLDİ
int lamba=0;                            // D0 PİNİNE lamba ADI VERİLDİ
int lamba2=1;                           // D1 PİNİNE lamba2 ADI VERİLDİ

void setup() 
{
  pinMode(pir_sensor_cikisi, INPUT);    // A0 PİNİ PIR SENSÖRÜNÜ BAĞLAMA AMACIYLA GİRİŞ YAPILDI
  pinMode(lamba, OUTPUT);               // D0 PİNİ BİRİNCİ LAMBAYI BAĞLAMA AMACIYLA ÇIKIŞ YAPILDI  
  pinMode(lamba2, OUTPUT);              // D1 PİNİ İKİNCİ LAMBAYI BAĞLAMA AMACIYLA ÇIKIŞ YAPILDI  
}

void loop() 
{
// DİKKAT RÖLE SHILD LOW AKTİF ÇALIŞMAKTADIR
if (digitalRead(pir_sensor_cikisi) == HIGH ) // PIR SENSOR ÇIKIŞI AKTİF İSE
    {
    for (int yak_sondur = 1; yak_sondur <= 6;  yak_sondur ++)      
      { 
       digitalWrite(lamba, LOW);           // BİRİNCİ LAMBAYI YAK
       digitalWrite(lamba2, HIGH);         // İKİNCİ LAMBAYI SÖNDÜR       
       delay(250);                         // 250ms BEKLE
       digitalWrite(lamba, HIGH);          // BİRİNCİ LAMBAYI SÖNDÜR
       digitalWrite(lamba2, HIGH);         // İKİNCİ LAMBAYI SÖNDÜR       
       delay(250);                         // 250ms BEKLE
       digitalWrite(lamba, LOW);           // BİRİNCİ LAMBAYI YAK
       digitalWrite(lamba2, HIGH);         // İKİNCİ LAMBAYI SÖNDÜR       
       delay(250);                         // 250ms BEKLE
       digitalWrite(lamba, HIGH);          // BİRİNCİ LAMBAYI SÖNDÜR
       digitalWrite(lamba2, HIGH);         // İKİNCİ LAMBAYI SÖNDÜR       
       delay(250);                         // 250ms BEKLE
       digitalWrite(lamba, LOW);           // BİRİNCİ LAMBAYI YAK
       digitalWrite(lamba2, HIGH);         // İKİNCİ LAMBAYI SÖNDÜR       
       delay(250);                         // 250ms BEKLE
       digitalWrite(lamba, HIGH);          // BİRİNCİ LAMBAYI SÖNDÜR
       digitalWrite(lamba2, HIGH);         // İKİNCİ LAMBAYI SÖNDÜR       
       delay(250);                         // 250ms BEKLE

       digitalWrite(lamba, HIGH);          // BİRİNCİ LAMBAYI SÖNDÜR
       digitalWrite(lamba2, LOW);          // İKİNCİ LAMBAYI YAK       
       delay(250);                         // 250ms BEKLE
       digitalWrite(lamba, HIGH);          // BİRİNCİ LAMBAYI SÖNDÜR
       digitalWrite(lamba2, HIGH);         // İKİNCİ LAMBAYI SÖNDÜR       
       delay(250);                         // 250ms BEKLE
       digitalWrite(lamba, HIGH);          // BİRİNCİ LAMBAYI SÖNDÜR
       digitalWrite(lamba2, LOW);          // İKİNCİ LAMBAYI YAK       
       delay(250);                         // 250ms BEKLE
       digitalWrite(lamba, HIGH);          // BİRİNCİ LAMBAYI SÖNDÜR
       digitalWrite(lamba2, HIGH);         // İKİNCİ LAMBAYI SÖNDÜR       
       delay(250);                         // 250ms BEKLE
       digitalWrite(lamba, HIGH);          // BİRİNCİ LAMBAYI SÖNDÜR
       digitalWrite(lamba2, LOW);          // İKİNCİ LAMBAYI YAK       
       delay(250);                         // 250ms BEKLE
       digitalWrite(lamba, HIGH);          // BİRİNCİ LAMBAYI SÖNDÜR
       digitalWrite(lamba2, HIGH);         // İKİNCİ LAMBAYI SÖNDÜR       
       delay(250);                         // 250ms BEKLE
    
      }
     }
    else
      { 
       digitalWrite(lamba, HIGH);           // BİRİNCİ LAMBAYI SÖNDÜR
       digitalWrite(lamba2, HIGH);          // İKİNCİ LAMBAYI SÖNDÜR   
       delay(250);                         // 250ms BEKLE    
      }    
  
}



(http://temrinlerim.org/images/arduino78.jpg)

(http://temrinlerim.org/images/arduino79.jpg)

(http://temrinlerim.org/images/arduino80.jpg)

PIR sensörünün Vcc pini arduinonun 5V pinine ve ya 3,5Volt pinine
PIR sensörünün GND pini arduinonun GND pinine
PIR sensörünün OUT pini arduinonun A0 pinine
Röle modülünün Vcc pini arduinonun 5V pinine
Röle modülünün GND pini arduinonun GND pinine
Röle modülünün IN1 pini arduinonun D0 pinine
Röle modülünün IN2 pini arduinonun D1 pinine bağlanmalıdır.

Ayrıca röle modülünün RL1 ve RL2 çıkışlarına birer lamba bağlanır. Nasıl bağlanacağını bilmeyenler sorabilirler.Yanlış bağlantı yapılması durumunda devrede kullanılan malzemelerin zarar görmesi muhtemeldir.
Başlık: Ynt: 6. PIR Sensör Kontrollü Çakar Lamba Uygulaması
Gönderen: kamussi - 09 Kasım 2016, 22:32:21
hocam elinize sağlık çok güzel bir çalışma olmuş emeğinize sağlık