#define pirPin 2
#define outPin 3
#define interval 10
int val;
unsigned long time;
unsigned long etime;
int outFlag;
void setup() {
Serial.begin(9600);
pinMode(pirPin,INPUT);
pinMode(outPin,OUTPUT);
digitalWrite(outPin,LOW);
outFlag=0;
}
void loop() {
val = digitalRead(pirPin); //read state of the PIR
if (val == LOW) {
Serial.println("No motion"); //if the
value read is low, there was no motion
}
else {
Serial.println("Motion!"); //if the
value read was high, there was motion
time = millis()/1000;
etime=time+interval;
digitalWrite(outPin,HIGH);
outFlag=1;
}
Serial.print("outFlag=");
Serial.println(outFlag);
if (outFlag) {
time = millis()/1000;
Serial.print(time);
Serial.print(" ");
Serial.println(etime);
if (time > etime) {
digitalWrite(outPin,LOW);
outFlag=0;
}
}
delay(1000);
}
|