Estoy usando una matriz LED RGB de 64x64 para la que estoy preparando algunos contenidos. El firmware existente lee archivos de video RGB888.
Me gustaría analizar estos archivos antes de cargarlos, para asegurarme de que el brillo general no supere un umbral para mantener el amperaje en una zona feliz.
Hasta ahora, estoy pensando en obtener el brillo máximo en función del brillo promedio de cada cuadro de video.
Mi pregunta es sobre cómo calcular el brillo de una manera que tenga sentido en términos de electrónica (con lo que no tengo mucha experiencia).
¿Cuál es el mejor método para calcular el brillo de un píxel RGB888 en relación con el amperaje utilizado por un LED RGB?
Hay múltiples espacios de color que tienen un canal de luminancia (YUV,YCrCb,XYZ,Luv,L*a*b*,HLS,HSV), pero ¿tiene sentido usar alguno de estos en términos de cuánta potencia consumirá un LED? ?
¿Estaría más cerca simplemente promediar los valores R, G, B?
La pregunta que debe hacerse no es "cuán brillantes serán los LED", sino "cuál será el ciclo de trabajo de los LED", ya que es el ciclo de trabajo el que define tanto el brillo como el consumo de corriente. El brillo puede ser algo divertido de resolver, ya que lo que percibes no es lo mismo que la corriente utilizada.
Puede estimar una relación 1:1 entre el ciclo de trabajo de la señal PWM de cualquier LED y la corriente consumida (0 % de servicio = apagado = 0 % de corriente máxima, 50 % de servicio = medio encendido = 50 % de corriente máxima, 100 % de servicio = encendido completo = 100% de corriente máxima).
Entonces, suponiendo que sepa cuánta corriente consume cada canal de R, G y B cuando está completamente encendido por LED, puede calcular cuál sería el consumo de corriente para un cuadro completo.
Es importante mantener los tres canales separados, ya que la corriente de cada canal puede ser muy diferente; por ejemplo, el azul se percibe más brillante que el rojo y puede iluminarse con menos corriente para compensarlo.
Entonces, para cada píxel en la imagen, toma cada uno de R, G y B, y calcula la intensidad promedio de ese canal en toda la imagen. Digamos que funciona como 20 % rojo, 15 % verde y 45 % azul. Entonces, en general, tendría el 20% de la corriente roja total, el 15% de la corriente verde total y el 45% de la corriente azul total.
Digamos que cada LED rojo y verde toma 10 mA y cada uno azul toma 5 mA (en aras de la simplicidad y el argumento) cuando está completamente encendido. Eso sería para cada uno de rojo y verde, y para azul
Haciendo los cálculos, esa es una corriente total de 40,96 A para cada rojo y verde, y 20,48 A para el azul.
Con un brillo promedio del 20 % y, por lo tanto, un ciclo de trabajo promedio del 20 %, eso sería el 20 % de 40,96 A, que es 8,192 A para el rojo. Para verde, al 15%, sería 6.144A y azul, al 45% sería 9.216A. Súmalos y obtienes 23.552A.
Por supuesto, esa es solo una cifra aproximada, y los números que he elegido para demostrar son probablemente total y absolutamente erróneos.
También eso supone que cada LED es una entidad separada y se controla individualmente.
Sin embargo, lo que puede encontrar es que la pantalla se escanea una línea, una columna o un bloque arbitrario a la vez, y solo una línea está realmente iluminada en un momento dado.
En esta situación, el sorteo actual en cualquier momento es el sorteo actual de la línea que se muestra en ese momento. Por lo tanto, necesitaría encontrar la línea más brillante, o cualquiera que sea la unidad MUX, y calcular la corriente solo para esa subsección, ya que ese sería el consumo máximo para su marco.
Digamos que la pantalla escanea a través de una línea a la vez: esa es una línea de 64 píxeles a la vez, por lo que le gustaría encontrar el brillo promedio y, por lo tanto, el consumo de corriente promedio (corriente máxima por LED * 64 * % de servicio promedio) para cada individuo línea de tu imagen. Luego, averigüe qué línea tiene el consumo de corriente total máximo y tome eso como el máximo para su marco.
Jorge Profenza
Jorge Profenza
Majenko