Paso 4: Intermitente LED (sin bloqueo)
Yo quería tener los LEDS parpadean en intervalos/velocidades variables para indicar cosas. No es práctico usar la función "delay()" (como en un "abrir y cerrar" ejemplo de Arduino), ya que el microcontrolador no puede ejecutar cualquier otra cosa mientras se está esperando el siguiente flash. El enfoque correcto es tomar nota de cuando un LED se convirtió encendido y luego en cada iteración del bucle principal, determinar si es el momento de girar apagado.
Echa un vistazo a la Arduino "BlinkWithoutDelay" ejemplo para hacerse una idea de cómo realmente se implementa. Amplié un poco en este concepto para permitir dos características adicionales.
- Los LEDS pueden tener asimétrica en/veces el LED rojo puede ser parpadeó un número determinado de veces y luego permanecer fuera
- El ámbar LED no está no incluido, ya que es un simple encendido, parpadear.
Primero establecemos algunas variables
La siguiente función actualiza los LEDS, por lo que puede ser llamado en cada iteración del bucle main(). Leer los comentarios en línea para más detalles.