From 6091e42eccf985afd3720d3da10f57ae9e28492f Mon Sep 17 00:00:00 2001 From: Johannes Krug Date: Thu, 7 Mar 2019 15:28:26 +0100 Subject: [PATCH] =?UTF-8?q?Testcode=20f=C3=BCr=20Bewegungsmelder=20HC-SR50?= =?UTF-8?q?1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Bewegungsmelder_HC-SR501.ino | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 arduino/Bewegungsmelder_HC-SR501/Bewegungsmelder_HC-SR501.ino diff --git a/arduino/Bewegungsmelder_HC-SR501/Bewegungsmelder_HC-SR501.ino b/arduino/Bewegungsmelder_HC-SR501/Bewegungsmelder_HC-SR501.ino new file mode 100644 index 0000000..2102aa3 --- /dev/null +++ b/arduino/Bewegungsmelder_HC-SR501/Bewegungsmelder_HC-SR501.ino @@ -0,0 +1,36 @@ +//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; +}