3 fórmulas y media para Led Blink en Arduino

Vamos a ver de que manera tan variada podemos hacer que un LED prenda y apague en Arduino…

Arduino Uno LED Blink sketch - Onboard D13 LED - YouTube

Vamos por la clásica, la del ejemplo de la IDE de Arduino:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

Bastante clara y muy explicada, verdad?

Vamos con otra…

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  delay(1000);
}

El truco: digitalRead devuelve el estado del pin, y lo niega (si es 1 lo pone en 0, y viceversa)
Luego espera un segundo y el ciclo comienza otra vez…

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, (millis() / 1000) % 2);
}

Vamos mejorando!
Usando la funcion millis() de Arduino, que devuelve los milisegundos desde que se inicio el Arduino, lo dividimos por 1000 para convertir en segundos. Luego aplicamos la funcion módulo (%) que devuelve un 1 para números pares o un 0 para impares, y según el estado, lo “escribimos” en el pin!
Este tipo de solución evita “congelar” el microcontrolador usando la función delay()

Y de regalo,

#include <Automaton.h> //https://github.com/tinkerspy/Automaton

Atm_led led;

void setup() { 
led.begin( 4 ).trigger( led.EVT_BLINK ); 
}

void loop() { 
automaton.run(); 
}

Usando una librería que entre otras cosas, cambia de estados pines rapidamente!!!

Basado en la idea de Wokwi

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s