// Reading Passive InfraRed (PIR) Motion Sensor // Added ability to turn on a function only once and // no restart it until it's finished. // Note: The PIM can take from 10 to 60 seconds to warm up when // first started. int ledPin = 2; int sensorPin = 3; int sensorFlag = 1; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); pinMode(sensorPin, INPUT); } void loop() { Serial.println(digitalRead(sensorPin)); if (digitalRead(sensorPin)) { if (sensorFlag) { doBlink(); } } } void doBlink() { sensorFlag = 0; for(int i=1; i <= 5; i++) { Serial.print("blinking: "); Serial.println(i); digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); delay(250); } sensorFlag = 1; }