Paso 19: Establecer el Balance de blancos
La DM163 LED driver IC en la Colorduino tiene entradas para el ajuste de la corriente actual relativa a través de los canales de 3 color. Estos son controlados por resistencias. En lugar de utilizar potenciómetros, ITead Studio había instalado fijo 10Ω resistencias en todos los canales de 3. Esto es porque el DM163 también tiene un sistema adicional de tres registros de 6 bits para ajustar el brillo relativo de los canales de 3 color vía control PWM.
En la función setup() de ColorduinoSlave.pde, hay el siguiente código:
compensar las diferencias de intensidad relativa de brillo R/G/B
matriz de valores base 6 bits para RGB (0 ~ 63)
whiteBalVal [0] = rojo
whiteBalVal [1] = verde
whiteBalVal [2] = azul
unsigned char whiteBalVal [3] = {36,63,63}; para LEDSEE 6x6cm redondo matriz
unsigned char whiteBalVal [3] = {22,63,63}; para LED de 5cm CA
Colorduino.SetWhiteBal(whiteBalVal);
Los valores van de 0 a 63, con 0 fuera y ser un brillo máximo de 63. Trate de tocar con estos valores hasta lograr la aproximación más cercana al blanco en la matriz.
Un método alternativo
Otra forma de establecer el balance de blancos es enviar primero un boceto a su Colorduino con todos los canales para máximo brillo:
unsigned char whiteBalVal [3] = {63,63,63}; salida máxima de todos los canales
A continuación, con RGBmtx en modo de registro, enviar iterativamente pantallas de color sólido a la matriz, ajuste los valores relativos de R/G/B, hasta que la pantalla lo más cerca se aproxima al blanco como se puede lograr. Luego multiplicar cada valor por 63/255 y entrar en l whiteBalVa.
Pude obtener una aproximación bastante decente de blanco cuando se utiliza mi matriz de 60x60m m LEDSEE. Desafortunadamente, no casi como acertado con la mano de 5mm fue matriz de LED en Lampduino. Como se puede ver en la foto de arriba, hay una amplia variación de niveles relativos de R/G/B entre los 64 del LED. Esto hace imposible ajustar unos LED a la vez para mostrar el blanco.