SMF - Henüz Yeni Yüklendi!

Gönderen Konu: 6. PIR Sensör Kontrollü Çakar Lamba Uygulaması  (Okunma sayısı 9062 defa)

  • İleti: 620
  • Karma: 4
  • iletisim:
    <iframe width="640" height="385" src="//www.youtube.com/embed/sa9ofckCLbw?fs=1&start=" frameborder="0" allowfullscreen></iframe>

    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.



    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    
          }    
      
    }
    
    








    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.
    « Son Düzenleme: 09 Kasım 2016, 23:22:16 Gönderen: Hasan ERTÜRK »
    iletişim: 0542 343 09 15

      kamussi
    • Ziyaretçi
    Ynt: 6. PIR Sensör Kontrollü Çakar Lamba Uygulaması
    kamussi » 09 Kasım 2016, 21:02:21
    hocam elinize sağlık çok güzel bir çalışma olmuş emeğinize sağlık

     

    Bu sayfa 0.257 saniyede 71 sorgu ile oluşturulmuştur

    Adonis Roleplay

    Bu sunucu, bir SAMP sunucusu olmakla beraber forumda yapılan bütün işlemler kullanıcı sorumluluğundadır.
    SMF 2.0.15 | SMF © 2014, Simple Machines

    Adonis Roleplay © 2018 - 2021