Hola buenas a todos , soy nuevo en esto foro y también en lo que se refiere Arduino
llevo varios días intentando comprender este código que a continuación paso a comentar según como yo lo veo:
En este código de encender y apagar un led con un pulsador, es decir pulso una vez se enciende pulso otra vez se apaga
Yo entiendo lo siguiente:
-Primera vez que pulso (led apagado).
Estado es igual a 1 y estado anterior = 0 se cumple la condición y
el led se encenderá
estado = estadoanterior por lo tanto 1 = 1
-Segunda vez que pulso (led encendido).
Estado es igual a 1 y estado anterior es igual a 1 por lo tanto no se cumple la condición y se apaga.
estado = estadoanterior, por lo tanto 1 = 1
-Tercera vez que pulso.
Estado igual a 1 y estado anterior es igual a 1 por lo tanto no se cumple la condición y el led tendría que permanececer apagado
estado = estadoanterior por lo tanto 1 =1
Y así todas las veces que pulse , según lo que yo entiendo el led no se volvería a encender porque estado es igual a estado anterior ,lógicamente sé que no es así ya que con este código el led se apaga y enciende una y otra vez pero no entiendo la parte de
estado = estadoanterior
¿Alguien me lo podría explicar?, sé que es una tontería pero es que no soy capaz de verlo y llevo días intentando comprenderlo
Saludos
int estado = 0;
int estadoAnterior;
int salida = 0;
void setup(){
pinMode (8,INPUT);
pinMode (4,OUTPUT);
}
void loop(){
estado = digitalRead(8);
if ((estado == HIGH) &&(estadoAnterior == LOW)){
salida = 1 - salida;
}
estadoAnterior = estado;
if(salida == 1) {
digitalWrite(4,HIGH);
}
else{
digitalWrite(4,LOW);
}
}