Mi pregunta es ¿Cómo puedo recibir sólo un pulso de un pulsador? digamos que queremos encender un led y darle un delay de 500ms, el problema es si se deja presionado el pulsador, el delay surtirá efecto al dejar de presionar el pulsador y tengo esa duda, gracias.
Leyendo solo el flanco del pulso.
Si tu pulsador esta configurador como pull-down por ejemplo, cuando presiones irá a HIGH
El estado anterior será LOW o sea pasa de LOW a HIGH
Entonces si tu memorias el estado anterior y el estado actual y consultas por el flanco es fácil
bool estado, estadoAnt = false; // asigno un valor al estado anterior.
void setup() {
pinMode(pin, INPUT);
Serial.begin(9600);
}
void loop() {
estado = digitalRead(pin);
if (estado && !estadoAnt) {
// esto se ejecuta solo en el flanco
Serial.println("Presionado 1 vez");
}
estadoAnt = estado;
}