PIR Sensor säkerhet (8 / 8 steg)
Steg 8: kod
#include < Servo.h >Servo myservo;
int pos = 0;
int calibrationTime = 30.
länge osignerade int lowIn;
länge osignerade int paus = 5000;
booleska lockLow = sant;
booleska takeLowTime;
int pirPin = 12;
int pirPos = 13.
void setup() {
myservo.attach(4);
Serial.BEGIN(9600);
pinMode (pirPin, ingång);
pinMode (pirPos, produktionen);
digitalWrite (pirPos, hög);
Serial.println ("kalibrera sensorn");
för (int jag = 0; jag < calibrationTime; i ++) {
Serial.Print(calibrationTime-i);
Serial.Print("-");
Delay(1000);
}
Serial.println();
Serial.println("Done");
medan (digitalRead(pirPin) == hög) {
Delay(500);
Serial.Print(".");
}
Serial.Print ("sensorn aktiv");
Delay(1000);
}
void loop() {
IF(digitalRead(pirPin) == hög) {
för (pos = 0; pos < 180; pos + = 1)
{
myservo.write(POS);
Delay(5);
}
för (pos = 180, pos > = 1; pos-= 1)
{
myservo.write(POS);
Delay(5);
}
IF(lockLow) {
lockLow = false;
Serial.println("---");
Serial.Print ("rörelse upptäckts på");
Serial.Print(Millis()/1000);
Serial.println ("sec");
Delay(50);
}
takeLowTime = sant;
}
IF(digitalRead(pirPin) == låg) {
IF(takeLowTime) {
lowIn = millis();
takeLowTime = false;
}
om (! lockLow & & millis() - lowIn > pausa) {
lockLow = sant;
Serial.Print ("motion slutade på");
Serial.Print((Millis() - paus) / 1000);
Serial.println ("sec");
Delay(50);
}
}
}