Paso 1: Modulación de anchura de pulso para la mezcla de colores
Modulación de anchura de pulso esencialmente es encender el alimentan a un dispositivo eléctrico y apagado muy rápidamente. Los resultados de la energía utilizable de la media matemática de la función de onda cuadrada, asumido el control el intervalo de un período. Más la función se mantiene en la posición ON, se obtiene más energía. PWM tiene el mismo efecto sobre el brillo de los LED como un atenuador de luces AC.
La tarea es controlar individualmente el brillo de 64 LEDS RGB (= 192 LEDs solo!) de una manera barata y fácil, así que uno puede conseguir todo el espectro de colores. Preferiblemente deben ser ninguÌ n oscilar u otros efectos inquietantes. La percepción no lineal del brillo por el ojo humano no se tendrán en cuenta aquí (por ejemplo, la diferencia entre 10% y 20% de brillo parece "más grande" que entre 90% y 100%).
Imagen (1) ilustra el principio de funcionamiento del algoritmo PWM. Dicen que el código se da un valor de 7 para el brillo de LED(0,0). Además sabe que hay un máximo de pasos de N en brillo. El código ejecuta N lazos para todos los posibles niveles de brillo y los lazos necesarios para cada LED individual en todas las filas. En caso el contador de bucle x en el circuito de brillo es menor que 7, el LED se enciende. Si es mayor que 7, el LED se apaga. Haciendo esto muy rápidamente por todos los LEDs, los niveles de brillo y colores base (RGB), cada LED puede ser ajustada individualmente para indicar el color deseado.
Mediciones con un osciloscopio que demuestran que el código de actualización de pantalla toma alrededor de 50% de tiempo de CPU. El resto puede utilizarse para hacer comunicación serial con el PC, leer botones, hablar con un lector RFID, enviar2C datos para otros módulos...