I have been having difficulty wrapping my head around the ideas of constant current and constant voltage. Basically I have assembled this circuit with an arduino.

enter image description here

Now, imagine that I wanted to power a different number of LEDs on each pin.

1 LEDs for Q0 | 3 LEDs for Q1 | 5 LEDs for Q2 | 7 LEDs for Q3 and so on...

Now, in the past, I just wired each of the resistors in parallel and then attached their own individual resistor. And that of course worked fine. But I don't want to use so many resistors.

Presently, I have stumbled upon the idea of the constant current LED driver. Such as this one. Now, my question is it is possible to use a Constant Current LED Driver to light different numbers of LEDs on each pin and have them light up with the same brightness. If this is not possible is there some other way that avoiding the use of resistors would be possible? Adding transistors?

Overall, my question is if I can get around using resistors to light up a string of LEDs. My project has quite a few LEDs in it, and being able to eliminate the resistors that go along with them would be a great improvement.


A Constant Current LED Driver like the TI TLC5916 can be used like that. It depends on VLed, the LED Voltage, to be roughly 0.5~2 Volts above the Vf of the LEDs. It will then use it's N-Channel Fet or Transistor and feedback circuit to limit the output to the set current. The current would be the same regardless of how many leds are in Series.

VO must not be too high as this causes excess power dissipation inside the current sink. However, VO also must not be too low as this does not allow the full LED current (Figure 4). With VLED = 12 V: VO = 12V–(3×3.5V)= 1.5V

A big difference like you want, 7 Leds on one, 1 Led on another, would be bad. 7x 2.0 Vf led + 1 Volt control voltage = 15 Volts minimum. Dissipating 1 Volt @ 20mA = 0.02 Watts is fine. If that same voltage is used for 1 led, the driver would have to deal with 13 volts @ 20mA = 0.26 Watts to dissipate. That would push the TLC5916 close enough to it's heat limit of 150°C for that single channel itself (See data sheet for numbers).

You could do two things to compensate. One, use different voltages for VLed. That's unnecessarily difficult. Two, use resistors to help dissipate the difference. That defeats the purpose.

So no, it wouldn't help.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.