Stap 4: programma
Disclaimer: Ik ben geen programmeur en daarom de onderstaande code mogelijk niet de meest efficiënte. Voel je vrij om de code voor uw eigen gebruik als er fouten of problemen. Het werkt voor mij, dus ik hoop dat het werkt voor je.CW wenden tot slot en CCW te ontgrendelen
1700 CCW; 1500 stop; 1300 CW
geschreven door Chris Rybitski
#include < Servo.h >
Servo deadbolt; servo maken
Const int CWLimit = 6; Hekschakelaar op 6 ontgrendelen
Const int CCWLimit = 7; Hekschakelaar 7 lock
Const int Redbtn = 12; rode drukknop
Const int Blackbtn = 8; zwarte push-knop
Const int GreenLED = 10; Groene LED
Const int RedLED = 11; Rode LED
Const int Ch1 = 5; RF-kanaal 1
Const int Ch2 = 4; RF-kanaal 2
Const int Buzz = 9; zoemer
int Unlock = 0;
int Lock = 0;
int timer = 0;
Boole UnLcomplete = false;
Boole Lcomplete = false;
VOID Setup
{
Serial.begin(9600);
deadbolt.attach(3); hecht de servo
pinMode (GreenLED, uitvoer);
pinMode (RedLED, uitvoer);
pinMode(Buzz,OUTPUT);
pinMode (CWLimit, INPUT);
pinMode (CCWLimit, INPUT);
pinMode (Redbtn, INPUT);
pinMode (Blackbtn, INPUT);
pinMode (Ch1, INPUT);
pinMode (Ch2, INPUT);
LED's en Buzzer te zijn standaard ingesteld
digitalWrite (GreenLED, hoge);
digitalWrite (RedLED, hoge);
digitalWrite (Buzz, hoge);
}
void loop
{
Als (digitalRead(Ch1) == HIGH || digitalRead(Redbtn) == LOW) {//If externe of knop wordt ingedrukt
if(UnLcomplete == false) {//dont uitvoeren ontgrendelen als deur is al geopend
Serial.println("UnLock");
Ontgrendelen = 1 ;}}
Als (digitalRead(Ch2) == HIGH || digitalRead(Blackbtn) == LOW) {//If externe of knop wordt ingedrukt
if(Lcomplete == false) {//dont uitvoeren vergrendelen als deur is al vergrendeld
Serial.println("lock");
Lock = 1 ;}}
//---------------UNLOCK-------------------------
Als (Unlock == 1) {}
timer = 0;
terwijl (digitalRead(CWLimit) == LOW) {}
Als (timer > 1500) {}
digitalWrite (Buzz, laag);
delay(500);
digitalWrite (Buzz, hoge);
}
else {}
deadbolt.write(1700);
timer ++;
delay(1);
}}
deadbolt.write(1500); Servo stop
digitalWrite (RedLED, laag);
digitalWrite (GreenLED, hoge);
UnLcomplete = true; volledige ontgrendelen
Lcomplete = false; Reset Lock boolean
digitalWrite (Buzz, laag);
delay(100);
digitalWrite (Buzz, hoge);
Ontgrendelen = 0; Reset
}
//--------------LOCK----------------------------
Als (Lock == 1) {}
timer = 0;
terwijl (digitalRead(CCWLimit) == LOW) {}
Als (timer > 1500) {}
digitalWrite (Buzz, laag);
delay(500);
digitalWrite (Buzz, hoge);
}
else {}
deadbolt.write(1300);
timer ++;
delay(1);
}}
deadbolt.write(1500);
digitalWrite (GreenLED, laag);
digitalWrite (RedLED, hoge);
Lcomplete = true; volledige vergrendeling
UnLcomplete = false; Reset Lock boolean
digitalWrite (Buzz, laag);
delay(100);
digitalWrite (Buzz, hoge);
delay(50);
digitalWrite (Buzz, laag);
delay(100);
digitalWrite (Buzz, hoge);
Lock = 0; Reset
}
}