--
Resumen
Cuando queremos un microcontrolador para enviar y recibir datos a/desde dispositivos con algún tipo de lógica digital, a menudo lo hacemos por medio de protocolos estándar como SPI, UART, I2C/TWI, etc.. Sin embargo, llega un momento en la vida de cada programador hardware encajado donde sea conveniente o necesario enrollar sus mangas y la manivela-hacia fuera su propio protocolo. Tal es el caso para el control de los LEDs RGB ubicua de WorldSemi: la serie de WS281X.
Cabe señalar que ha habido intentos exitosos para utilizar el protocolo SPI para el control de estos LEDs. Sin embargo, dada la naturaleza de su Protocolo de comunicación (descrito abajo) este es un escenario perfecto para la aplicación de una solución personalizada utilizando una técnica de programación conocida como bitbanging. Esta técnica nos permite imitar diversas funciones de hardware especializado utilizando el software. En este caso, lo usamos para activar un pin de salida digital en el microcontrolador ATMega328p de manera muy precisa, para que la señal digital creada nos permite encender y apagar una matriz de 1 por 60 de WS2812 RGB LED.
Nivel de dificultad: principiante + (cierta familiaridad con la programación de Arduino)
Hora de finalización: 15-30 minutos