/*
// Ver cambio
bool estado=0,pulsador, pulsador_ant=1;
void setup() {
pinMode(25, OUTPUT);
pinMode(21, INPUT_PULLUP);
}
void loop() {
pulsador = digitalRead(21);
if ((pulsador==0)&&(pulsador_ant==1))
estado=!estado;
pulsador_ant = pulsador;
digitalWrite(25,estado);
delay(100); // tiempo que asegure que no hay rebotes
}
*/
// ver valor cada cierto tiempo
bool estado=0,pulsador;
unsigned long espera_pulsador=0;
void setup() {
pinMode(25, OUTPUT);
pinMode(21, INPUT_PULLUP);
}
void loop() {
pulsador = digitalRead(21);
if ((pulsador==0)&&(millis()>espera_pulsador)) {
estado=!estado;
espera_pulsador = espera_pulsador + 500;
}
digitalWrite(25,estado);
delay(10);
}
/*
// INTERRUPCION
volatile boolean estado=0;
void setup() {
pinMode(25, OUTPUT);
pinMode(21, INPUT_PULLUP);
attachInterrupt(21,cambioDeEstado,FALLING);
}
void loop() {
digitalWrite(25,estado);
delay(10);
}
void cambioDeEstado() {
estado=!estado; // Se pasa de 0 a 1, y de 1 a 0.
}
*/