const int pirPin = 7;
const int redLedPin = 10;
const int greenLedPin = 11;
unsigned long lastMotionTime = 0;
const long motionHoldTime = 5000;
void setup() {
Serial.begin(9600);
pinMode(redLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
pinMode(pirPin, INPUT);
}
void loop() {
int pirState = digitalRead(pirPin);
if (pirState == HIGH) {
digitalWrite(redLedPin, HIGH);
digitalWrite(greenLedPin, LOW);
lastMotionTime = millis();
}
else {
if (millis() - lastMotionTime < motionHoldTime) {
} else {
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
static bool printedIdle = false;
if (!printedIdle) {
printedIdle = true;
}
}
}
}