Constant LED Brightness on Batteries

Interesting question: I'm working on a specialized LED controller right now. It runs off of a 3.9V, 18650 Li-Ion battery. The LED's have an average Vf of 2.8V, with a max Vf of 3.2V

I'd like the LED's to stay at a constant brightness (as in not dim and suffer from the loss of voltage with the battery). And then at 3V (Vthresh), a voltage monitor will throw a flag which will dim the LEDs to 10% to signal the user that the battery is pretty much as low as it can get before the battery can't safely power the LEDs properly anymore.

So then here's what I'm seeing\thinking: According to the numbers, I can use a 1R resistor to get the Vf still of 2.8V even at the Vthresh of 3V. So at 3.9V, that 1R resistor will be giving me 3.7V, which is obviously too much unless I want fireworks.

So what if I was to use PWM to control the voltage being supplied to the LEDs to start and stay at "3V", and then monitor the voltage using the built in bandgap reference to adjust the PWM to compensate for the loss of voltage in the battery. That way the LEDs get 3V giving me a Vf of 2.8V. And then when the battery actually hits 3V for real, the voltage monitor flags the MCU of this, and then the LEDs dim to 10%.

I figure this way, I can ensure the brightness of the LEDs remain constant as well, which my client wants.

Just looking to bounce this off ya'll. What do you guys think? Grazie

I think you need to some basic reading on how to control the brightness of an LED ;-) LEDs are constant current devices, not constant voltage devices. As such PWM is used to controll average current, not voltage.

The resistor in series with the LED(s) is there to limit the current going through the LEDs. This only works for the normal small signal LEDs say between 20-50 mA forward current and in general is not good practice for battery diven devices. you want the energy converted into light not heat.

With high brighness and high power LEDs you'll likely need a SMPS

If you can, please provide a link to the datasheet for the LEDs you have in mind.

I understand how to control LED’s, and I can supply a constant current to them for hours. Problem is I can’t be using an SMPS for this due to space and cost. So I’m trying to find a workaround of sorts. I figured that since I’m already using PWM to control the LEDs, I could write an algorithm that monitors the voltage of the batteries and compensates the PWM rate to keep the voltage to the LEDs stable.

And I understand how PWM works as well, and that it’s just switching on and off from low to max high. Yet when read with a voltmeter, the voltage will read 3.2V.

So I can supply constant current to the LEDs, and I can supply 3.2V using PWM, it seems to me that I can just modify the PWM rate to keep a steady 3.2V, thereby keeping the LEDs stable.

Datasheet for LED:,L&lang=en&region=apc&sug=1

dominicluciano: So I can supply constant current to the LEDs, and I can supply 3.2V using PWM, it seems to me that I can just modify the PWM rate to keep a steady 3.2V, thereby keeping the LEDs stable.

Then you are dead wrong, as by definition applying PWM is not a "steady 3.2V" nor is it "stable".

Muddled thinking there.

(LEDs are not linear devices.)

Do you have another solution then?

Why not use a boost regulator to keep the power supply at 5V for as long as the battery can supply current? Example

As stated above, I don’t have the space available for an SMPS.

How much room do you have?
What are you aiming to use to provide the PWM regulation, how will it fit?

Tom… :slight_smile:

I have about 10mm2 left. PWM is provided by a Tiny84. All that has already been put on a board.

What about a 20mA constant current supply, they are the same size as a transistor.

How about something like this? It's a simple constant-current circuit with a PWM input. The MOSFET shown sounds like it may be overkill for your application, but something similar but smaller could perhaps be substituted.


Problem is it has an overhead of around 1.2V. You can't afford that!


With a bit of moving things around, this looks like it'd work. Sat on the phone with a Maxim tech for like an hour working on it. Pretty low footprint

You may consider a greater than 10% drop in current to the light. I doubt a person would notice a 10% drop in current if they were not watching it do it. You need to experiment with it a little. Dwight

The OP wrote " dims to 10%". For me that translates to "dim by 90%".