//Author: Danny van den Brande, Arduinosensors.nl. BlueCore Tech. //This example code is written to show you how simple it is to build your own pir motion detector. int calibrationTime = 30; //give yourself time to leave the room long unsigned int lowIn; long unsigned int pause = 5000; boolean lockLow = true; boolean takeLowTime; int pirPin = 7; int ledPin = 8; int buzPin = 6; void setup() { Serial.begin(9600); pinMode(pirPin, INPUT); pinMode(ledPin, OUTPUT); digitalWrite(pirPin, LOW); pinMode(buzPin, OUTPUT); Serial.print("calibrating sensor "); for(int i = 0; i < calibrationTime; i++){ Serial.print("."); delay(1000); } Serial.println(" done"); Serial.println("SENSOR ACTIVE"); delay(50); } void loop(){ if(digitalRead(pirPin) == HIGH){ digitalWrite(ledPin, HIGH); digitalWrite(buzPin, HIGH); delay(100); digitalWrite(ledPin, LOW); digitalWrite(buzPin, LOW); delay(100); digitalWrite(ledPin, HIGH); digitalWrite(buzPin, HIGH); delay(100); if(lockLow){ lockLow = false; Serial.println("---"); Serial.print("Motion detected at "); Serial.print(millis()/1000); Serial.println(" sec"); delay(50); } takeLowTime = true; } if(digitalRead(pirPin) == LOW){ digitalWrite(ledPin, LOW); digitalWrite(buzPin, LOW); if(takeLowTime){ lowIn = millis(); takeLowTime = false; } if(!lockLow && millis() - lowIn > pause){ lockLow = true; Serial.print("Motion stopped at "); Serial.print((millis() - pause)/1000); Serial.println(" sec"); delay(50); } } }