const uint8_t pinRele = 13;
const uint8_t pinBtn = 7;
uint32_t ritardo = 10000;
uint32_t onTime = 0;
int32_t releON(const uint8_t pin) {
digitalWrite(pin, HIGH);
return millis();
}
void setup() {
pinMode(pinRele, OUTPUT);
pinMode(pinBtn, INPUT);
}
void loop() {
if (digitalRead(pinBtn)) {
delay(100); // semplicissimo debounce del pulsante
// if (digitalRead(pinRele) == LOW) // Partenza del conteggio dal fronte di salita del PIR
onTime = releON(pinRele);
}
if (millis() - onTime >= ritardo) {
digitalWrite(pinRele, LOW);
}
}