Shift register RGB led brightness

74hc595brightnessledshift-register

I'm currently using 74HC595 shift register to light leds. Recently I decided to start using RGB leds instead of simple 1-color leds. Which means that I now have to use 3 output pins for each individual led. So far so good.

The problem however, is that I cannot fully enjoy the power of the RGB leds. I would like to use the full color-depth by mixing the 3 color components (Red,Green,Blue) at different individual distinct brightnesses.

There is an Output-Enable pin on the 74HC595 which can be used to control the brightness, but as far as I know, its value applies to all output pins, and cannot be used to set the brightness of individual outputs.

Can it be done with the 74HC595 shift-register, or is there a more appropriate component ?

Best Answer

Although you could run a shift register fast enough to PWM some LEDs, there are dedicated RGBA LED drivers which will take a serial input and perform PWM. One arbitrary example is the TLC5971:

The TLC5971 is a 12-channel, constant-current sink Spectrum PWM: driver. Each output channel has individually 16-bit (65536 steps) adjustable currents with 65536 PWM grayscale (GS) steps. Also, each color group can be controlled by 7-bit (128 steps) for each color group 128 constant-current sink steps with the global brightness control (BC) function. GS control and BC are accessible via a two-wire signal interface.