2
\$\begingroup\$

I have a small 3 volt device with an MCU and 8 LEDs that I'm currently powering by two AAA batteries connected in series. With fresh batteries, I start out with about 3.2-3.3 volts and get very good brightness on my LEDs, they're almost brighter than they need to be. However after a couple of months the brightness drops off significantly (the LEDs only blink for an hour or so each day).

I had an idea to add two extra AAA batteries, for a total of four batteries and a voltage of 6 volts (6.4 volts starting out with fresh batteries). I would then use these with a buck-boost converter set to an output voltage of 3 volts. There are two things I am however really unsure about:

  • How do I calculate the battery life of this new 6V/buck-boost combination? I am assuming that the device would continue to function even when all four batteries output well below 3 volts, but how low can it go and still power the device? I assume I can never get more than double the battery life of what I have now with my current 3V setup?

  • Am I overthinking this? Maybe adding the two extra AAA batteries in paralell would be better. Does anyone have any experience?

\$\endgroup\$
  • 1
    \$\begingroup\$ The buck-boost regulator will likely draw a quiescent current that is significant unless it was deactivated when the device isn't in use. Is this an issue to consider? \$\endgroup\$ – Andy aka Nov 20 '15 at 9:15
  • \$\begingroup\$ That could be an issue. What sort of current draw are we talking about? Microamps, milliamps? \$\endgroup\$ – David Högberg Nov 20 '15 at 9:19
  • \$\begingroup\$ Try to measure it! Or look at the datasheet. There are some with milliamps and others with micro/nano \$\endgroup\$ – Botnic Nov 20 '15 at 9:26
  • 2
    \$\begingroup\$ Why do you want to parallelize AAA? Have you thought taking AA or Mignon? \$\endgroup\$ – Botnic Nov 20 '15 at 9:27
  • \$\begingroup\$ What colour are your LEDs ? If red then the easy paralelling of cells or using larger cells will work .If the leds are white then boost convertor is your best bet .For other colours there is a choice. \$\endgroup\$ – Autistic Nov 20 '15 at 9:53
3
\$\begingroup\$

As noted in the comments, the best solution is likely to use 2 AA in series as opposed to 2 AAA.


Let's start with the knowns. Your MCU is likely drawing negligible current, unless you have all sorts of peripherals on that you don't need (timers, ADC, etc), or it is directly driving the LEDs (which is typically a bad idea, unless they are not pulling much current from the I/O pins).

Using 2 series alkaline batteries given you a voltage rail of ~3V. Alkaline batteries are 1.5V cells, but fresh ones will almost always give you a tenth or so more voltage, hence your measured 3.3V rail. This will not last all that long.

LED Stats

Your specified LEDs are rated for 3.2V at 20mA. Note, you do not need to push 20mA through these resistors if you don't need them to be that bright. This is a common mistake with simple LED designs. Reducing the current to 10mA per string will give you nearly the same brightness with double the run time. LED luminance does not typically have a linear relation to current draw.

On the other hand, you could also pulse the LEDs from the MCU. Turn them on for 1ms at full current and off for 2 or 3 ms. You can play with this PWM duty cycle to see how long you can leave the LEDs off before you really notice the decrease in brightness. Pulsing LEDs like this will save current since they are only on a portion of the time, and they remain a bit cooler, increasing their lifespan and efficiency.

Of course, the only way to limit the current without using an actual current driver is with series resistors.

Are you using series resistors? You didn't mention it, and another common mistake in these simple LED circuits is to go cheap and forgo them. This almost always a bad idea, especially if they are being driven from MCU pins. If you are using resistors, you have even less voltage to drop across the LEDs, and there was barely enough to begin with.

Doubling the Bank

Putting 2 more series AAA batteries in parallel with the original 2 would theoretically double the capacity of the bank; however, this is also not a good idea. Batteries don't always play well in parallel, especially not cheap alkalines. Parallel batteries can work fine with charge and dissipation controllers, but you will always run the risk of unbalanced batteries trying to discharge into one another constantly.

This is not to say it won't work (I have seen plenty of store bought products doing this) it's just bad design, and it will not perform as well as you had intended.

Doubling the Voltage

Putting 4 AAA in series will double the source voltage. Using linear regulation, this gets you nowhere, but with a good switching regulator, this can increase run time. Even still, it is not as good as just increasing the battery capacity to 2 AA.

One thing you could do with an increased voltage rail is put a very cheap LDO regulator to drop the voltage for the MCU power supply, and power strings of 2 series LEDs with series resistor directly from the 6.4V rail. To control them, you can sink the current into the MCU pins (active low) rather than sourcing it from the pins. This will halve your current consumption and increase run time; however, you have doubled the number of batteries - a net gain of zero.


Again, if you can afford the excess size of adding 2 more AAA batteries, you should just use 2AA batteries from the start.

\$\endgroup\$
  • \$\begingroup\$ Thank you for your very comprehensive answer, which I've accepted. The LEDs are being driven directly from an ATtiny85 MCU pin. Since designing it this way, I've learned that best practice may(?) be to use a transistor to drive the LEDs directly from Vcc. However, it is currently working fine the way I have it, so I see no immediate need to change this part of the design. The one thing I wanted to know more about is NOT using series resistors. I am currently driving each LED at 8mA (if memory serves me) with a 100 ohm resistor/LED. Do you think I could forego these resistors completely? \$\endgroup\$ – David Högberg Nov 20 '15 at 18:31
  • \$\begingroup\$ Actually, thinking about it, not using series resistors, even if that would work, would actually use MORE current. I would essentially be driving each LED with the maximum current for the given voltage, and thus given the same pulse length for the LEDs the batteries would drain faster. \$\endgroup\$ – David Högberg Nov 20 '15 at 18:34
  • \$\begingroup\$ You are correct. If you are driving the LEDs from the MCU pin (sourcing VCC, or sinking GND), you MUST use a resistor or else the LED will pull too much current from the pin and burn it out. How did you get your 8mA measurement? Did you measure the voltage drop across the 100 Ohm resistors? \$\endgroup\$ – Kurt E. Clothier Nov 20 '15 at 21:55
  • \$\begingroup\$ I connected my Fluke in series with the battery, measured the current draw with the LEDs on, subtracted current draw with LEDs off and divided by eight. Wouldn't your scenario be the same if I use e.g. a Mosfet to drive the LEDs directly from Vcc? The LEDs would draw too much current in that case, too. \$\endgroup\$ – David Högberg Nov 20 '15 at 22:21
  • \$\begingroup\$ That should work, but the most accurate way is to measure the voltage across a known resistance (that is actually how current meters work). The current draw on an LED is related to how much voltage it is dropping, so it's tricky to measure any other way. And yes, using an external transistor to drive the LEDs is only necessary when they are drawing too much current for the MCU to handle, or they are sourced at a much higher voltage rail than the MCU. What you are doing is easy enough for the MCU to handle directly. \$\endgroup\$ – Kurt E. Clothier Nov 20 '15 at 23:03

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.