I'm looking to drive 10 WS2812 LED's at reduced brightness to limit my max current draw below the maximum 60mA per LED. I'm looking to reduce maximum brightness, even when PWM is set to 100% duty cycle.

What would be the most effective method of doing something like this? I suspect it would just be increasing the resistance of the current limiting resistors on each LED, following the usual

$$ R = \frac{V_s-V_f}{I}$$

formula, but I'm also worried about efficiency in the circuit overall. I'm on a constrained 500mA power budget, so I want to make the most of it.


1 Answer 1


There's a lot of ways to skin this cat. ( I'm also assuming that these are all in parallel, if not these may not be accurate ).

  1. A simple series resistor increase as you've mentioned is the simplest, but also the least power efficient.

  2. PWMing them using a N channel FET on each one, or even a couple grouped together ( depending on your circuit) is the next easiest, and gets the efficiency up a bit.

  3. Putting an inductor in series with them and also PWMing them like option 2 is the most efficient and also the most complex (but not that much).

Each option increases in complexity and cost and efficiency as you go from option 1->3.


Oh I thought that was a simple high power LED. What you have is an intelligent LED module that is the size of an LED. So to lower the consumed power, you want to reduce the on-time of each LED. The datasheet says each LED has 256 levels of brightness. With the max brightness consuming 20mA.
So programmatically set a lower brightness and you'll reduce the current being consumed.

The datasheet says it has an internal current source to make the LEDs consistent with each other. Adding a series resistor might help you, but it's likely to cause the colors to shift from each other. Maybe you could put a film over the LEDs to reduce the max brightness?

  • \$\begingroup\$ Thanks, as for Option 2, I thought the WS2812 "addressable" LED's already do PWM with a built-in IC. If I add another PWM circuit upstream, would that end up causing any issues? Also, yes I'm doing these in parallel. \$\endgroup\$
    – Felix Jen
    Jul 9, 2020 at 21:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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