+ long int ms = millis();
+ if ( pir == 0 ) {
+ if (pir_millis > 0 && ms - pir_millis > PIR_TIMEOUT * 1000 ) {
+ Serial.println("PIR timeout, fade-out");
+ pir_millis = -1; // mark that we are in timeout
+ for(int i=0; i<=2; i++) {
+ analogWrite(mosfet_pins[i], 0);
+ }
+ }
+ } else {
+ if (pir_millis < 0) {
+ Serial.println("PIR fade-in after timeout");
+ for(int i=0; i<=2; i++) {
+ analogWrite(mosfet_pins[i], mosfet_pwm[i]);
+ }
+ }
+ pir_millis = ms;
+ }
+