LED Candle
Este efecto convierte el LED en una vela, y me parece muy interesante porque usando lo que hemos aprendido en los dos anteriores efectos blink y fade más añadiendo funciones pseudoaleatorias podemos recrear el efecto de una vela. Usaremos el mismo circuito del fade que usa el pin PA0.

Note
Este tipo de código lo conseguirás comúnmente para los ATtiny / tinyAVR.
Para ir entendiendo vamos a ir desde lo más simple hasta lograr un efecto más real.
Ejemplo simple:
En este primer caso encendemos y apagamos el LED usando el algoritmo LFSR de Galois 8 bits (Linear Feedback Shift Register) para generar secuencias pseudoaleatorias muy rápidas y muy baratas en hardware. Utiliza el desplazamiento de bits a la izquierda >> (right shift) y la realimentación lineal ^ (XOR).
| |
Ejemplo complejo:
Para este caso mantenemos el uso del algoritmo LFSR, pero añadimos una condición más, no puede apagarse el LED, este debe hacer cómo un efecto fade + LFSR. Entonces para lograrlo debemos hacer uso del PWM.
| |
Note
Hay quien ha hecho lo mismo usando el algorimo BBS (Blum-Blum-Shumb).
Compilar y subirlo
Para compilarlo deberá ejecutar el siguiente comando:
| |
Para subir el programa al microcontrolador, deberá ejecutar el siguiente comando:
| |
Si todo fue bien, podrá disfrutar de una velada.