#define DISTANCE 15 // defines pins numbers const int trigPin = 2; //D4 const int echoPin = 0; //D3 // defines variables long duration; int distance; int bool1 = 0; void setup() { pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output pinMode(echoPin, INPUT); // Sets the echoPin as an Input Serial.begin(9600); // Starts the serial communication } void loop() { // Clears the trigPin digitalWrite(trigPin, LOW); delayMicroseconds(2); // Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds duration = pulseIn(echoPin, HIGH); // Calculating the distance distance = duration * 0.034 / 2; // Prints the distance on the Serial Monitor if (bool1 == 0) { //if ((distance != (DISTANCE - 1)) && (distance != (DISTANCE)) && (distance != (DISTANCE + 1))) { //+-1 if(((DISTANCE+2)distance)){ //darf +- 2 um festgelegte entfernung schwanken, um störungen herauszufiltern Serial.print("Motion detected: "); Serial.println(distance); bool1 = 1; } } else if(bool1==1){ if(((DISTANCE+2)distance)){ //darf +- 2 um festgelegte entfernung schwanken, um störungen herauszufiltern Serial.print("Still motion detected: "); Serial.println(distance); } else{ //Flag wieder auf 0 bool1=0; } } delay(100); }