Which is the most efficient battery for Arduino Uno?

Hi guys,

As the title says, I would like to run my Arduino Uno using batteries and would like to know which one is the most efficient in terms of cost and battery life (need to run it for at least 10 days before it dies).

Understand that using 9V battery is the least efficient as it can only last for 1 day most.
Will using 6 AA batteries be better?
Or would using lithium batteries like this be better? : http://www.battery.com.sg/un_product_details.asp?pid=2306

Other suggestions are welcome also..

(need to run it for at least 10 days before it dies).

Before any battery selection can be made, based on your duration requirement, you first have to measure or calculate the total current draw for the arduino board and everything you have wired up and powered by the battery. Only then do you have the information required to determine the minimum mAH rating of the battery you will need.

Lefty

How should I measure the current drawn from the arduino?

I have a multimeter and where should I connect the wires?

kurtselva:
How should I measure the current drawn from the arduino?

I have a multimeter and where should I connect the wires?

You have to wire your DMM (in current measurement mode) In series with the voltage source driving the arduino and your external components. If you are powering via USB that is a difficult current measurement to make physically.

Lefty

[/quote]

You have to wire your DMM (in current measurement mode) In series with the voltage source driving the arduino and your external components. If you are powering via USB that is a difficult current measurement to make physically.

[/quote]

So is this what you meant:

Let's say I am using a 9V battery to power the arduino. And a wire goes from Vcc in the arduino to a breadboard row (supply) and another wire goes from ground in the arduino to another breadboard row(ground). And the other external components are connected. So I should connect 1 wire from the multimeter to the wire that is connected to the Vcc of the arduino and another wire from the multimeter to a new wire and then connect the new wire to the supply breadboard row?

Pls correct me if I am wrong. Thanks.

So is this what you meant:

Let's say I am using a 9V battery to power the arduino. And a wire goes from Vcc in the arduino to a breadboard row (supply) and another wire goes from ground in the arduino to another breadboard row(ground). And the other external components are connected. So I should connect 1 wire from the multimeter to the wire that is connected to the Vcc of the arduino and another wire from the multimeter to a new wire and then connect the new wire to the supply breadboard row?

Pls correct me if I am wrong. Thanks.

Well there is no shield pin named Vcc so you either mean the 5V pin or the Vin pin?

As everything seems to be being powered by the 9vdc battery, then the best measurement would be to break the positive wire from the battery and place your series current meter on that wire, that would give you the total current draw for the complete project, arduino board + your breadboard mounted stuff.

Lefty

To measure the current, connect your multimeter in series with the 9V battery. To get 10 days battery life, you'll need a battery capacity of at least 10Ah or so even if you are not powering anything else. A 6V SLA battery is probably the best option.

If you're serious about getting long battery life, you should move to a standalone atmega328p design (to avoid the current consumption of the USB-to-serial converter), consider using a clock frequency lower than 16MHz, and put the processor in sleep mode when nothing much is gong on. Then you will be able to use a smaller battery.

Well there is no shield pin named Vcc so you either mean the 5V pin or the Vin pin?

As everything seems to be being powered by the 9vdc battery, then the best measurement would be to break the positive wire from the battery and place your series current meter on that wire, that would give you the total current draw for the complete project, arduino board + your breadboard mounted stuff.

Yup I meant the Vin pin.

hmmm my 9V battery is connected to the arduino via a jack barrel adapter..So I have to remove the wire from the jack barrel adapter? That would be quite tedious to remove and put it back..

Or is there a way to measure the current drawn by the components only? I have only have a LCD display and 2 pushbuttons connected to the arduino..

kurtselva:

Well there is no shield pin named Vcc so you either mean the 5V pin or the Vin pin?

As everything seems to be being powered by the 9vdc battery, then the best measurement would be to break the positive wire from the battery and place your series current meter on that wire, that would give you the total current draw for the complete project, arduino board + your breadboard mounted stuff.

Yup I meant the Vin pin.

hmmm my 9V battery is connected to the arduino via a jack barrel adapter..So I have to remove the wire from the jack barrel adapter? That would be quite tedious to remove and put it back..

Or is there a way to measure the current drawn by the components only? I have only have a LCD display and 2 pushbuttons connected to the arduino..

Can't you just unsnap the positive button from the battery, rotate it 180 degrees with the negative post still attached and wire your current meter leads in series from the battery positive to the battery connector positive?

One needs to think outside the box once in awhile. :smiley:

Lefty

dc42:
To measure the current, connect your multimeter in series with the 9V battery. To get 10 days battery life, you'll need a battery capacity of at least 10Ah or so even if you are not powering anything else. A 6V SLA battery is probably the best option.

If you're serious about getting long battery life, you should move to a standalone atmega328p design (to avoid the current consumption of the USB-to-serial converter), consider using a clock frequency lower than 16MHz, and put the processor in sleep mode when nothing much is gong on. Then you will be able to use a smaller battery.

The arduino will be connected to a LCD display and two pushbuttons. And the a servo is also connected but it has its own external 6V battery supply. So basically, the arduino only powers the LCD display..So if this is the case, would a 2500mAh battery capacity be sufficient?

Can't you just unsnap the positive button from the battery, rotate it 180 degrees with the negative post still attached and wire your current meter leads in series from the battery positive to the battery connector positive?

Wow ok. Why didn't I think of that :blush:

Haha

kurtselva:

Can't you just unsnap the positive button from the battery, rotate it 180 degrees with the negative post still attached and wire your current meter leads in series from the battery positive to the battery connector positive?

Wow ok. Why didn't I think of that :blush:

Haha

Because you were stuck inside that box I mentioned. :smiley:

Lefty

kurtselva:
The arduino will be connected to a LCD display and two pushbuttons. And the a servo is also connected but it has its own external 6V battery supply. So basically, the arduino only powers the LCD display..So if this is the case, would a 2500mAh battery capacity be sufficient?

No. The Arduino Uno draws about 42mA, the LCD draws about 5mA plus whatever current you run through the backlight. So that's 47mA even with the backlight turned off. Your 2500mAh battery will last (2500/42) = 53 hours, so just over 2 days - and that's without the backlight illuminated.

On the other hand, a standalone atmega328p running at 8MHz draws about 5mA, giving 10mA in total, so just over 10 days from a 2500mAh battery (without backlight). For longer battery life, you can use a lower clock frequency, or put the microcontroller in sleep mode and turn off the power to the LCD when it is not in use.

No. The Arduino Uno draws about 42mA, the LCD draws about 5mA plus whatever current you run through the backlight. So that's 47mA even with the backlight turned off. Your 2500mAh battery will last (2500/42) = 53 hours, so just over 2 days - and that's without the backlight illuminated.

On the other hand, a standalone atmega328p running at 8MHz draws about 5mA, giving 10mA in total, so just over 10 days from a 2500mAh battery (without backlight). For longer battery life, you can use a lower clock frequency, or put the microcontroller in sleep mode and turn off the power to the LCD when it is not in use.

Oh no.. What my program does is it rotates a servo motor at MOST 4 times a day at 6 hourly interval and the user uses the LCD to input some information such as the number of times to rotate per day, number of days, etc. So if I put the arduino to sleep mode after the program is made to run, the program will stop am I right?

You can use sleep mode, and have the mcu wake up at regular intervals (so you can turn the servo) and also whenever the user presses a button (so that you can turn on the lcd and respond to user commands). However, if you use your Arduino Uno, then although you can put the atmega328p to sleep, the USB-to-serial converter will still be drawing power. That's why I said you need a standalone system.

You'll either need to power your mcu directly from a 3V to 5V battery (e.g. 3 x AA cells, if 4.5V signal is enough for your servos), or you'll need to use 6V or more battery and a micropower 5V regulator such as the MCP1702.

dc42:
You can use sleep mode, and have the mcu wake up at regular intervals (so you can turn the servo) and also whenever the user presses a button (so that you can turn on the lcd and respond to user commands). However, if you use your Arduino Uno, then although you can put the atmega328p to sleep, the USB-to-serial converter will still be drawing power. That's why I said you need a standalone system.

You'll either need to power your mcu directly from a 3V to 5V battery (e.g. 3 x AA cells, if 4.5V signal is enough for your servos), or you'll need to use 6V or more battery and a micropower 5V regulator such as the MCP1702.

But won't the servo require continuous power and control pulses to hold any load they might it be trying to maintain? If so I don't think any 'sleep' mode would work well?

Lefty

dc42:
You can use sleep mode, and have the mcu wake up at regular intervals (so you can turn the servo) and also whenever the user presses a button (so that you can turn on the lcd and respond to user commands). However, if you use your Arduino Uno, then although you can put the atmega328p to sleep, the USB-to-serial converter will still be drawing power. That's why I said you need a standalone system.

You'll either need to power your mcu directly from a 3V to 5V battery (e.g. 3 x AA cells, if 4.5V signal is enough for your servos), or you'll need to use 6V or more battery and a micropower 5V regulator such as the MCP1702.

Hmmm.. I guess I'll just have to live with the 9V battery for now. Cos I need to present my project in school soon and I wont have time to come up with the standalone system so soon..

So comes another qn: is a 9V battery better or a 3 AA battery connected directly to the 5V pin of arduino better?

retrolefty:
But won't the servo require continuous power and control pulses to hold any load they might it be trying to maintain? If so I don't think any 'sleep' mode would work well?

I thought servos only move when you send them pulses?

kurtselva:
So comes another qn: is a 9V battery better or a 3 AA battery connected directly to the 5V pin of arduino better?

3 x AA will last a lot longer. But check that your LCD works OK on 4.5V.

dc42:

retrolefty:
But won't the servo require continuous power and control pulses to hold any load they might it be trying to maintain? If so I don't think any 'sleep' mode would work well?

I thought servos only move when you send them pulses?

Lack of servo pulses but with power still applied to a servo is simply a undefined state for any servo, they just are not designed to perform any specific action in that state, it may move un-commanded or not move. They are designed under the assumption that if they are powered up there will be continuous position pulses being sent, even if to just maintain the present position.

Also without servo power all 'holding torque' is lost and depending on external load on the servo and the friction value of the servo's gear train the servo can lose position as the external load forces movement.

Lefty