Saltar la navegación

Dejar encendido un LED con un pulsador pull-down

#define PIN_BOTON 5 //Pin al que conectamos el botón
#define PIN_LED 8 //Pin al que conectamos el led
byte estado_anterior = 0;
byte estado_nuevo; //Definición de variables
byte estado_led = LOW;
void setup() {
  pinMode(PIN_BOTON, INPUT); //Declaramos los pines de entrada y salida
  pinMode(PIN_LED, OUTPUT);
}
void loop() {
  estado_nuevo = digitalRead(PIN_BOTON); //Leemos el estado del botón
  if ((estado_anterior == 0) && (estado_nuevo == 1)) { //Condición del «clic»
    cambiar_estado_led();
  }
  estado_anterior = estado_nuevo; //Actualizamos el estado del pulsador
  delay(10); //Una pausa para no volvernos locos
}
void cambiar_estado_led() { //Función para cambiar el estado del led
  if (estado_led == LOW) { //Si está apagado lo encendemos
    digitalWrite(PIN_LED, HIGH);
    estado_led = HIGH; //Ahora el estado del led será encendido
  }
  else { //Si está encendido lo apagamos
    digitalWrite(PIN_LED, LOW);
    estado_led = LOW; //Ahora el estado del led será apagado
  }
}

Creado con eXeLearning (Ventana nueva)