registro de desplazamiento RGB led brillo

0

Actualmente estoy utilizando 74HC595 shift register to light leds . Recientemente decidí comenzar a usar leds RGB en lugar de leds de 1 color simples. Lo que significa que ahora tengo que usar 3 pines de salida para cada led individual. Hasta ahora todo bien.

Sin embargo, el problema es que no puedo disfrutar plenamente de la potencia de los leds RGB. Me gustaría usar la profundidad de color completa mezclando los 3 componentes de color (rojo, verde, azul) con diferentes brillos distintos.

Hay un pin Output-Enable en el 74HC595 que se puede usar para controlar el brillo, pero que yo sepa, su valor se aplica a todos los pines de salida y no se puede usar para establecer el brillo de salidas individuales .

¿Se puede hacer con el 74HC595 shift-register, o hay un componente más apropiado?

    
pregunta bvdb

3 respuestas

2

Aunque puede ejecutar un registro de desplazamiento lo suficientemente rápido para PWM en algunos LED, hay controladores de LED RGBA dedicados que tomarán una entrada en serie y realizarán PWM. Un ejemplo arbitrario es el TLC5971 :

  

El TLC5971 es un PWM de espectro de sumidero de corriente constante de 12 canales:   conductor. Cada canal de salida tiene corrientes ajustables de 16 bits (65536 pasos) individualmente con 65536 escala de grises PWM (GS)   pasos.   Además, cada grupo de color puede ser controlado por   7 bits (128 pasos) para cada grupo de colores 128 pasos de sumidero de corriente constante con el global   Función de control de brillo (BC). Control de GS y BC   son accesibles a través de una interfaz de señal de dos cables.

    
respondido por el Pete Kirkham
1

La respuesta simple es, no, no puedes hacerlo.

La respuesta más larga es, sí, puedes hacerlo, pero tomará más de lo que crees y probablemente será más difícil.

Tomemos un grupo de 8 LEDs. Puede conducir uno de cada salida de un 595, ¿verdad? (Siempre y cuando no trates de conducirlos con demasiada fuerza).

Ahora desea conducir 3 entradas a cada LED. Esto tomará 3 595s; llámelos red595, green595 y blue595. Con esta configuración, solo puedes encender o apagar cada LED, por lo que obtienes 7 colores diferentes (8 si cuentas el negro como un color).

Ahora desea encender o apagar cada LED parcialmente, y cada uno de forma independiente. Puede hacer esto proporcionando a cada 595 datos PWM. Así que echemos un vistazo a LED1, el canal rojo. Digamos que quieres controlar su intensidad en 8 pasos. Lo que puedes hacer es actualizarlo en ciclos de 8 actualizaciones. Digamos que desea establecerlo en el nivel 3 en una escala de 0 a 7. El equivalente binario de 3 (en representación octal) es 011. Por lo tanto, enviaría un ciclo de valores rojos que parecen 1,1,1,0 , 0,0,0,0. El LED estaría encendido durante 3 / 8ths de un ciclo, a pleno brillo cuando está encendido.

Ahora, digamos que tienes 100 LEDs. Tomará 13 595s para controlarlos. Los LED deben tener una frecuencia PWM mejor que unos 30-50 Hz, o parecerán parpadear, y más alta es mejor para los LED de colores. Digamos que corres a 60 Hz. Para actualizar toda la cadena de LEDs tomará 100 ciclos de reloj. Como cada PWM toma 8 ciclos, los 595s deben alimentarse a una velocidad de reloj de al menos 100 x 8 x 60, o 48,000 Hz. Para cada salida de datos, la computadora debe determinar qué píxel se está enviando, cuál es su valor y cuál debería ser el valor de PWM. Eso no es difícil a 48 kHz. Para 3 colores, la frecuencia de reloj efectiva debe ser 3 veces 48 KHz o 144 kHz. Todavía no está tan mal (probablemente). La velocidad del reloj físico puede permanecer a 48 kHz, ya que puede usar 3 líneas para datos, configurarlas y luego enviar un solo reloj a todas las 3 x 13, o 39 595s.

Pero digamos que quieres 256 niveles de intensidad. Ahora la velocidad del reloj debe ser de 256 x 100 x 60, o 1.53 MHz, y eso está empezando a parecer bastante dudoso. No solo eso, también puede utilizar esta velocidad de reloj físico para 3 colores, ya que puede usar 3 líneas de datos y marcar el 595s desde el mismo reloj. Pero. Para cada reloj físico, tiene que determinar 3 valores de color separados, calcular 3 valores PWM diferentes y emitir esos 3 bits a las líneas de datos. Y todo en unos 650 nseg.

Puede que encuentres esto como un desafío.

    
respondido por el WhatRoughBeast
0

Una idea simple que usa su hardware actual: puede reorganizar su Matrix para que el registro de desplazamiento controle el pin común de sus LED. Entonces puedes controlar los pines de color usando pwm. Sin embargo, esto establecería una columna del mismo color.

    
respondido por el Christian

Lea otras preguntas en las etiquetas