|
|
|
|
|
|
|
|
|
|
|
//HC-SR501 als Bewegungsmelder, vergleicht alten PIR-wert mit neuem PIR-wert und lässt bei HIGH Phase LED leuchten |
|
|
|
|
|
//Einstellung *repeatable Trigger||single Trigger* hier egal |
|
|
|
|
|
//Single Trigger:Bei Bewegung läuft ein festgelegtes Zeitfenster HIGH ab (LINKER POTI, 3sec bis 5min) |
|
|
|
|
|
//Repeatable Trigger: Bei Bewegung läuft HIGH Zeitfester ab, wenn darin wieder Bewegung erkannt wird, wird das zeitfenster wieder neu gestartet und verlängert. |
|
|
|
|
|
//Nach diesen HIGH signal folgt in beiden fällen ein 3 sekündiges LOW Fenster, hier wird keine bewegung erkannt |
|
|
|
|
|
|
|
|
|
|
|
int ledPin = D1; // LED on Pin 13 of Arduino |
|
|
|
|
|
int pirPin = D0; // Input for HC-S501 |
|
|
|
|
|
|
|
|
|
|
|
int pirValueNeu; // Place to read PIR Value |
|
|
|
|
|
int pirValueAlt = 0; //Place to store read PIR Value |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void setup() { |
|
|
|
|
|
Serial.begin(9600); |
|
|
|
|
|
pinMode(ledPin, OUTPUT); |
|
|
|
|
|
pinMode(pirPin, INPUT); |
|
|
|
|
|
digitalWrite(ledPin, LOW); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void loop() { |
|
|
|
|
|
pirValueNeu = digitalRead(pirPin); |
|
|
|
|
|
|
|
|
|
|
|
if(pirValueNeu != pirValueAlt){ |
|
|
|
|
|
if(pirValueNeu==1){ |
|
|
|
|
|
Serial.println("Motion! Level:HIGH"); |
|
|
|
|
|
} |
|
|
|
|
|
else{ |
|
|
|
|
|
//Serial.println("Ruhemodus 3 Sekunden! Level:LOW"); |
|
|
|
|
|
//delay(3000); |
|
|
|
|
|
Serial.println("No motion so far! Level:LOW"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
digitalWrite(ledPin, pirValueNeu); |
|
|
|
|
|
pirValueAlt=pirValueNeu; |
|
|
|
|
|
} |