Seria mas facil ayudarte si compartieras tu codigo. Por lo que leo deberias tener un loop principal que chequee el cambio de señal (usando
digitalRead()), lo asignas a una variable por ej:
[code:1]variable = digitalRead(numeroDePin[/code:1]);
y despues podes chequear el valor con una declaracion
if: Por ej:
[code:1]if( variable == HIGH ) { esperar 5 seg y volver a LOW usando digitalWrite() }[/code:1]
digitalWrite() link.
Para esperar 5 seg podes usar
delay(5000) o usar una libreria externa como
timer1 para no tener que pausar el programa, y deberias agregar algun condicional para no volver a chequear lo chequeado hasta que sea necesario.