Excuse the lack of electrical engineering knowledge but I have an Arduino Uno microcontroller that I want to power with a coin cell battery.

The project will have 6 LED lights that will flash for a few seconds every few hours. My question is, what sort of coin cell battery would I need for this project? Also, how would I connect it to arduino? With something like this?

Would I require anything like resistors/transistors?

Here is a diagram of what I have so far:

diagram of what I have so far.

(Resistors are 1/4-watt 200ohm resistors)


5 Answers 5


The Arduino Uno isn't fit to run off a coin cell.

  1. The Uno isn't exactly low-power. It contains 2 microcontrollers running at high clock frequencies and consumes a couple tens of mA

  2. A coin cell will give you 3 V, while the Uno is designed to run on 5 V.

  3. Most important: a coin cell has enough energy to power the Arduino for a couple of hours, but can only supply this in small doses, i.e. a few mA. That won't work.

  • \$\begingroup\$ As you can change the firmware of both microcontrollers, keeping them in micro power sleep mode most of the time should be possible. Have to check the data sheets if they will run off the coin cell voltage; also any pull up / down resistors must not be driven against while sleeping, or that will waste power. And the voltage regulator might need to be removed. \$\endgroup\$ Aug 30, 2012 at 13:07
  • \$\begingroup\$ @ChrisStratton I agree that such optimizations/removals (as well as the FT232 and disabling UART registers) would indeed bring it closer to coin-cell runnable. This writeup discusses several interesting power-minimization strategies particular to AVRs. \$\endgroup\$
    – boardbite
    Aug 30, 2012 at 20:52
  • \$\begingroup\$ @boardbite - Unlike the earlier USB models and many copies, an Arduino Uno does not have an FT232, it has two ATMEGAs with customizable firmware - the second from the "u" series handles the USB-serial task previously accomplished by the FT232. \$\endgroup\$ Aug 31, 2012 at 2:00
  • \$\begingroup\$ @stevenvh: Since OP wants the LEDs flashed with a very low duty cycle (a few seconds ever few hours), couldn't he/she use a coin cell and simply charge & discharge a capacitor to provide a pulse when needed? \$\endgroup\$
    – boardbite
    Oct 10, 2012 at 16:31
  • \$\begingroup\$ @boardbite - possibly, but for 6 x 20 mA during 5 seconds (rough estimate) you'll need a 2 F capacitor to have a 300 mV maximum drop. (Note that you only have 1 V across the series resistor at the start, then 300 mV is 30 %!) Supercaps exist in > 1 F capacity, but then you're moving the problem: just like the battery low-cost supercaps are rated at very low discharge currents. \$\endgroup\$
    – stevenvh
    Oct 10, 2012 at 16:54

As stevenvh pointed out, the Arduino Uno is not designed to run off a coin cell.

Two option exist (or at least that I can see):

1) Use a battery other than a coin cell. Adafruit's 9v battery pack comes to mind.

2) Use a low power microcontroller.

Option #1 will work with no additional learning but will cost you in batteries over the long term. Option #2 will more effort on the front side (sourcing and programming bare microcontrollers) but will result in a great many useful skills and piles of frustration. Depends on what you want to get out of this.


Note that CR* cells (lithium) can deliver a maximum of about 4 mA; refer to the manufacturer's specifications. If you try to draw more power, they may start to outgas and explode like popcorn, so try to avoid that.

If you absolutely must use coin cells, an alternative would be LR* type cells. Those are alkaline (not lithium) and can deliver higher electrical current. However, they have a smaller capacity. I doubt you can power a standard Arduino board plus severeal LEDs with coin cells for more than a few hours.

I recommend to look at another microcontroller. It's more work, but it might be worth to build your own board, e.g. with an ATtiny at a much lower clock rate (you don't need 16 MHz just to flash a few LEDs), and without the overhead of the USB chip. That will lower the power consumption considerably. Also, you should use "ultra bright" LEDs because you can drive them with only 1 or 2 mA while getting the same brightness as a normal LED at 20 mA.

  • \$\begingroup\$ The high-luminosity LEDs are a great idea. However, AFAIK, alkaline/LR cells don't allow higher electrical current draws. For example, this Toshiba page lists a Standard current spec as low as 0.12mA \$\endgroup\$
    – boardbite
    Oct 10, 2012 at 16:29

There are significant ways to reduce current drain in LEDs .. Spend more time search for higher efficiency LEDs at low cost so that instead of 20mA 1/4W resistors you can use 2 or 3 mA with 1/8W resistors and get the same brightness. What colours and how many of each.

Typical C of CR2032 or 2cm x 3.2mm is 225 mAh

Computer duty factor (On/total time x current x qty.) = average current of LEDs.

e.g. 3 sec / 3hr x 20mA x 6 LEDS = 3/(3*3600) x 0.020 x 6 = 33 µA average Duration (hr) = C/A = 225mAh / 33uA ~ 6800 hrs.

If you want longer time, you can choose more efficient LEDs and run them at 10% current. Such as 10,000 mcd instead of 1000mcd or even 100 mcd depending on what you got.

Of course that neglects power consumption of Arduino for which current is not stated.

(I would consider Blue and White LEDs, low cost and bright at low currents but thats up to you)

Lithium coin cells have low capacity but OK for low current applications.


I had a small project on an Atmel ATtiny2313, but I imagine similar considerations would apply. My goal was to flash 6 leds (2 yellow, two white and two red) for about 4 hours. I strobed (in software) them to reduce the current draw.

I used 2xCR2016 (3v each) with a small diode (to drop to around 5V, not really necessary, but I'm conservative). The CR2016 is half the size of a CR2032.

I had hoped to stuff both into a CR2032 holder, but every holder I tried shorted the two edges together. I ended up fashioning a holder with Shapelock (not entirely satisfactory, but workable).


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.