Temelelektronik.info

RF otomatik bahçe kapısı simülatör devresi

Devre


Bu devre Eylül ayından itibaren 689  defa ziyaret edilmiştir.

Açıklama

Devrenin Çalışması:
Devre 731 numaralı devrenin test edilmesi için kuruldu. Otomatik bahçe kapısına gönderilen rf kodlarına göre ilgili ledin yakılmasını sağlıyor. 

____________Program_______________




//OTOMATIKKAPIMASTERSIMULATOR
#include "RCSwitch.h"
RCSwitch mySwitch = RCSwitch();
//CIKISLAR
#define ac 8
#define kapa 7

//DURUMLAR
int kilit=0;
int guvenlik=0;
int gelenveri=0;
int kapamaswici=0;
int acmaswici=0;
int sensor=0;

void setup() 
{
//gostergeler
pinMode(3,OUTPUT);


pinMode(4,OUTPUT);

pinMode(5,OUTPUT);
  digitalWrite(3,LOW);
  digitalWrite(4,LOW);
  digitalWrite(5,LOW);
      pinMode(ac, OUTPUT);
      pinMode(kapa, OUTPUT);
      pinMode(11, INPUT);
      pinMode(10,INPUT);
      pinMode(9,INPUT);
      digitalWrite(kapa, LOW);
      digitalWrite(ac, LOW);
      Serial.begin(9600);
      mySwitch.enableReceive(0);
}
void loop() 
{              
         if (mySwitch.available())
       {     
                  gelenveri = mySwitch.getReceivedValue();
                  Serial.println(gelenveri);


                //kapıyı aç komutu gelince
                if (gelenveri==22145 || gelenveri==-5503 || gelenveri==32385 || gelenveri==-19071 || gelenveri==7201 || gelenveri==22049 || gelenveri==17281)
                 {
                  digitalWrite(3,HIGH);
                  digitalWrite(4,LOW);
                  digitalWrite(5,LOW);
                  
                  
//                      if (kapamaswici==1 && acmaswici==0 && sensor==0)//kapı kapalı mı kontrol et. ona göre kapıyı aç
//                      {digitalWrite(ac, HIGH); digitalWrite(kapa, LOW); kilit=0;  delay(1500);}
                 }

                 
                 //kapıyı kapat komutu gelince                 
                if (gelenveri==22146 || gelenveri==-5502 || gelenveri==32386 || gelenveri==-19070 || gelenveri==7202 || gelenveri==22052 || gelenveri==17282)
                {
                  digitalWrite(3,LOW);
                  digitalWrite(4,HIGH);
                  digitalWrite(5,LOW);
                  
//                     if(acmaswici==1 && kapamaswici==0 && sensor==0)//kapı açıkmı kontrol et. ona göre kapıyı aç
//                     {digitalWrite(kapa, HIGH); digitalWrite(ac, LOW); kilit=0; guvenlik=1; delay(1500);}
                }

                 //kapıyı durdur komutu gelince
                 if (gelenveri==22148 ||  gelenveri==-5500 || gelenveri==32388 || gelenveri==-19068 || gelenveri==7204 || gelenveri==22056 || gelenveri==17284)
                 {
                  digitalWrite(3,LOW);
                  digitalWrite(4,LOW);
                  digitalWrite(5,HIGH);
                  
//                     if(kapamaswici==0 && acmaswici==0)  // kapı açık ya da kapalı değilse durdurma işlemi yap
//                     {digitalWrite(kapa, LOW); digitalWrite(ac, LOW); kilit=1;}
                 }

//                 
//                 if (gelenveri==22145 || gelenveri==-5503 || gelenveri==32385 || gelenveri==-19071 || gelenveri==7201 || gelenveri==22049 || gelenveri==17281)
//                 {
//                    if (kilit==1 && sensor==0)
//                    {digitalWrite(ac, HIGH); digitalWrite(kapa, LOW); kilit=0;}
//                 }
//
//                 
//                 if (gelenveri==22146 || gelenveri==-5502 || gelenveri==32386 || gelenveri==-19070 || gelenveri==7202 || gelenveri==22052 || gelenveri==17282)
//                 {
//                      if (kilit==1 && sensor==0)
//                    {digitalWrite(kapa, HIGH); digitalWrite(ac, LOW); guvenlik=1; kilit=0;}
//                 }
                                 
                 mySwitch.resetAvailable(); 
       }




       
                  kapamaswici=digitalRead(10); 
                  acmaswici=digitalRead(11); 
                  sensor=digitalRead(9);


         //kapı açılınca dur
         if(kapamaswici==0 && acmaswici==1)
          {
            digitalWrite(kapa, LOW);
            digitalWrite(ac, LOW);
          }

        //kapı kapanınca dur
         if(kapamaswici==1 && acmaswici==0)
          {
            digitalWrite(kapa, LOW); 
            digitalWrite(ac, LOW);
          }

        //kapı meşgulse dur
          if(kapamaswici==0 && acmaswici==0 && sensor==1 && guvenlik==1)
         {
          digitalWrite(kapa, LOW); 
          digitalWrite(ac, LOW);  
          guvenlik=0; 
          kilit=1;
         }
    }