Lo siento si esto es demasiado básico, pero no entiendo este problema.
En este momento, usando una MCU, cambio los colores RGB de una tira de LED con 3 señales PWM. Todos los colores funcionan muy bien. El caso es que cuando trato de ajustar la intensidad de la luz, no sé cómo hacerlo.
Entonces, si, por ejemplo, tengo RGB (15,170,230), entonces quiero reducir lentamente la intensidad de la luz, manteniendo el mismo color, ¿cómo cambiaría el RGB para obtener eso?
Comience escalando R, G y B por el valor de intensidad, para su ejemplo, al 50 % de intensidad, establecería 15*0,5, 170*0,5, 230*0,5 (7, 85, 115).
Los LED pueden tener diferentes respuestas no lineales, por lo que es posible que deba modificar la escala para el color percibido
En particular, en niveles muy bajos, sufrirá un error de redondeo. No hay una forma fácil de evitar esto, excepto aumentando la resolución de color (por ejemplo, a 0-1000 en lugar de 0-250) o seleccionando dispositivos con un rango dinámico más apropiado para la aplicación (LED más brillantes o más tenues).
Otra alternativa si está utilizando varios dispositivos es encender un subconjunto de dispositivos para dar diferentes niveles de intensidad, por ejemplo, si tiene 6 LED RGB, puede cambiar 3 a (1,10,10) y 3 a (0,10). ,10) para agregar resolución, efectivamente (0.5, 10, 10) en general.
En su caso:
(1) Establecería la unidad ACTUAL de hardware + software proporcional al valor de salida PWM. El control de corriente y no de voltaje es esencial ya que los lúmenes: mA son APROXIMADAMENTE constantes, pero los lúmenes: voltios son muy no lineales. Muy.
(2) Establecería la corriente máxima permitida por color y
(3) brillo de cada uno en esa corriente.
Tenga en cuenta que la medida puede ser lumen/mA. Dado que los lúmenes son una unidad basada en la respuesta del ojo, incluso si los LED tuvieran la misma luz_mW/mA, los valores de lúmenes por mA serían diferentes. Además, al mezclar colores, incluso cuando el sol de (Red) lumen + green_lumen + blue_lumen) es constante a medida que cambian las magnitudes, es posible que el brillo percibido varíe. Sin embargo, cuando se observan dos LED uno a la vez, se necesita una diferencia en la salida luminosa de casi 2:1 antes de que la mayoría de la gente pueda discernir un cambio de brillo. Lado a lado tal vez 1.5:1. Lavado de paredes adyacentes - quizás 1.2:1.
(4) Entonces establecería el brillo por paso de PWM.
Esto permite usar el brillo deseado por paso de PWM para seleccionar una mezcla RGB.
Tú podrías
escala en el software para que todos los colores usen un valor, digamos 0-100 para 0-100% de brillo, o
0-100 para intensidades absolutas (configurando el color más sensible a 100 con brillo máximo para que no se sature O
utilizar datos "sobre la marcha".
ej., SAY
Rojo = brillo máximo 200 unidades a 25,0 mA
Verde = brillo máximo 120 unidades a 20,0 mA
Azul = brillo máximo 80 unidades a 20,0 mA
So Red = 8 brillos por mA, 25 mA max So Green = 6 brillos por mA, 20 mA max So Blue = 4 brillos por mA, 20 mA max
Hay varias formas de controlar esto.
Si SIEMPRE desea que la parte superior pueda usar RGB igual, entonces el azul (siendo menos brillante) el rojo establece el límite en 80bu, 20 mA.
Entonces Green max = 80bu/6 ma/bu= 13.333 mA max
Red max = 80bu/8 = 10 mA Azul = 80bu/4 = 20 mA (como arriba).
Puede usar estos valores de escala sobre la marcha O si dice PWM max = 250 = 25 mA, entonces podría usar brillos 0-100 por color para que: Rojo 100 = 10 mA -> Factor de escala = 1 Verde 100 = 13.333 mA -> valores de escala ARRIBA en 1,33
Azul 100 = 20 mA -> valores de escala arriba en 2,0
Entonces, un valor de, digamos, RGB 50 50 50 produce luz "blanca" con el mismo brillo RGB.
Los valores PWM reales son 50 67 100.
Los mA reales son 5 6,7 10.
Así también 25 25 25 brillos produce blanco a la mitad de los brillos y corrientes generales anteriores.
Cambiar a 50 20 80 o a 50 80 20 produce un color nuevo y un brillo APROXIMADAMENTE sin cambios SI se agregan valores de lúmenes independientes. Lo que ve el sistema ojo-cerebro puede diferir.
¿Cómo funcionó su experimentación original?
Estoy por intentar 'jugar' con unas tiras de LED que adquirí.
Solo haz una interpolación lineal. Digamos, más de 100 pasos de tiempo, comience con el color original y luego reduzca cada componente en un 1 % en cada paso de tiempo. Debe conservar la proporción entre los componentes para conservar el color general. Siempre que escale todos los elementos en la misma cantidad, el color seguirá siendo el mismo.
Andy alias
Curnelioso
Pablo
Andy alias
Pablo
Pablo
dfsg76