¿Cambiar la intensidad de leds RGB?

3

Lo siento si esto es demasiado básico pero no entiendo este problema.

Ahora mismo, utilizando una MCU, cambio los colores RGB de una tira de LED con 3 señales PWM. Todos los colores funcionan muy bien. La cosa es que, cuando estoy tratando de establecer la intensidad de la luz, no sé cómo hacerlo.

Entonces, si, por ejemplo, tengo RGB (15,170,230), quiero reducir lentamente la intensidad de la luz, manteniendo el mismo color, ¿cómo cambiaría el RGB para obtener eso?

    
pregunta Curnelious

3 respuestas

6

Comience por escalar R, G y B según el valor de intensidad; para su ejemplo, con una intensidad del 50%, 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, a 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 múltiples dispositivos es encender un subconjunto de los dispositivos para proporcionar 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.

    
respondido por el rolinger
2

En tu caso:
(1) Establecí el hardware + software de la unidad ACTUAL proporcional al valor de salida PWM. El control de corriente y no de voltaje es esencial ya que los lúmenes: mA es MUY RÁPIDAMENTE constante, pero los lúmenes: voltios no son lineales Muy.

(2) Yo 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. Como el lumen es una unidad basada en la respuesta del ojo, incluso si los LED tuvieran la misma luz_mW / mA, los valores del lumen por mA diferirían. Además, cuando se mezclan las coulours, incluso cuando el sol de (Rojo) 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 por uno, se necesita una diferencia en la salida luminosa de casi 2: 1 antes de que la mayoría de las personas puedan percibir un cambio de brillo. De lado a lado tal vez 1.5: 1. Lavado de paredes adyacente - tal vez 1.2: 1.

(4) Luego establecería el brillo por paso de PWM.

Esto permite utilizar el brillo deseado por paso de PWM para seleccionar una mezcla RGB.
Podrías

  • escala en el software para que todos los colores utilicen el valor, por ejemplo, 0-100 para 0-100% de brillo, o

  • 0-100 para intensidades absolutas (establecer el color más sensible a 100 a un brillo mx para que no se sobrecargue O

  • usa datos "sobre la marcha".

por ejemplo, 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

Entonces, Rojo = 8 brillos por mA, 25 mA máx. Entonces, Verde = 6 brillos por mA, 20 mA máx. Entonces, Azul = 4 brillos por mA, 20 mA máx.

Hay varias formas de controlar esto.
Si SIEMPRE desea que la parte superior pueda usar RGB iguales, entonces el rojo azul (siendo menos brillante máximo) establece el límite en 80bu, 20 mA.
So Green max = 80bu / 6 ma / bu = 13.333 mA max
Rojo máx = 80bu / 8 = 10 mA Azul = 80bu / 4 = 20 mA (como arriba).

Puede usar estos valores de escala sobre la marcha O, si, por ejemplo, PWM máx = 250 = 25 mA, puede usar brillos de 0 a 100 por color para que: Rojo 100 = 10 mA - > Factor de escala = 1 Verde 100 = 13.333 mA - > los valores de escala UP por 1.33
Azul 100 = 20 mA - > escalar los valores hasta 2.0

Entonces, un valor de, por ejemplo, RGB 50 50 50 produce una luz "blanca" con el mismo brillo RGB.
Los valores reales de PWM son 50 67 100.
Los mA reales son 5 6.7 10.

Así también, 25 25 25 brillos producen blanco a la mitad de los brillos y corrientes generales anteriores.

El cambio a 50 20 80 o 50 80 20 produce un nuevo color y un brillo APROXIMADAMENTE inalterado si se agregan valores de lúmenes independientes. Lo que ve el sistema ojo-cerebro puede diferir.

¿Cómo funcionó tu experimento original?
Estoy a punto de intentar 'jugar' con algunas tiras de LED que adquirí.

    
respondido por el Russell McMahon
1

Solo haz una interpolación lineal. Diga, más de 100 pasos de tiempo, comience con el color original y luego disminuya cada componente en un 1% cada paso de tiempo. Debe conservar la proporción entre los componentes para conservar el color general. Siempre que escales todos los elementos en la misma cantidad, el color seguirá siendo el mismo.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas