Bilgiler > Otomatik Kapı ve Aydınlatma Program Kodları
Otomatik Kapı ve Aydınlatma Program Kodları
#include "SoftwareSerial.h"#include "TimerOne.h"#include "RCSwitch.h"RCSwitch mySwitch = RCSwitch(); int data;int led=13;int darkness=0;int role=5;SoftwareSerial mySerial(10, 11); // RX, TXint sayac=0; void setup() { isiktest(); mySerial.begin(9600); pinMode(led,OUTPUT); pinMode(role,OUTPUT); Serial.begin(19200); digitalWrite(led,0); Timer1.initialize(100000); // set a timer of length 100000 microseconds (or 0.1 sec - or 10Hz => the led will blink 5 times, 5 cycles of on-and-off, per second) Timer1.attachInterrupt( timerIsr ); mySwitch.enableTransmit(2); mySwitch.setPulseLength(504); mySwitch.setRepeatTransmit(10); } void loop() { if (mySerial.available()) { data = mySerial.read(); if(data!=0) Serial.println(data); if(data==1) //istiklal marşı başlat/ durdur mars(); // kapıyı aç if(data==2) ac(); // kapıyı kapat if(data==3) kapat(); // kapıyı durdur if(data==4) durdur(); } } void kapat() { durdur(); mySwitch.send(22146, 24);//kapat Serial.println(22146); delay(1); sayac=0; digitalWrite(led,LOW); } void ac() { durdur(); mySwitch.send(22145, 24);//ac Serial.println(22145); delay(1); sayac=0; digitalWrite(led,HIGH); } void durdur() { mySwitch.send(22148, 24); Serial.println(22148); delay(750); sayac=0; } void mars() { mySwitch.send(15977475, 24); Serial.println(15977475); delay(1); } void isiktest() { darkness=analogRead(A6); Serial.println(darkness); if(darkness<800) { digitalWrite(role,LOW); } if(darkness>950) { digitalWrite(role,HIGH); } } //5 dakika da bir kapıyı kapat. Kapının açık kalmasını engelle void timerIsr() { sayac++; if(sayac>3000)//5 dakikada bir isigi test et ve kapiyi kapatma kodu gonder { isiktest(); //isik miktarini test et kapat(); // Kapıyı kapat sayac=0; } }Devre:http://www.temelelektronik.inf....aspx?devre=731
***