Low Power Arduino
A common Arduino, for instance the Mini does not consume very much power, typically 40 mA when connected to a USB cable. If you’re going to be powering your Arduino on something other than batteries, the power requirements normally isn’t a concern, it will be just too little to make any difference.
Once you start something like a remote monitoring application where you are required to run with battery power, power consumption can become significant.
How To Power / Battery Types
In my working experience hoping to calculate the amount of time an Arduino will continue with a battery pack is quite tough due to the fact that there are so many factors involved, first of all there are a lot of types, alkaline, Nickel Metal Hydride, lithium-ion, rechargeable, non-rechargeable.
Even for a certain kind of battery say AAA, there will be widely varying storage capacities depending on the style of battery it is ( Nickel Metal Hydride or lithium-ion) and there is likely variability among the different brands (usually you get what you pay for). When your batteries get depleted, the voltage supplied drops, if you are using 4 triple A batteries, which supply six volts to operate an Arduino which requires at least 5V, the Arduino may very well stop working when the voltage supplied dips too low, despite the fact that there is still a substantial quantity of energy remaining in the batteries.
I won’t be doing any specific calculations here for the reason that I find the figures are not practical. I must mention that batteries usually are specified in terms of milli-ampere hours. So anytime your Arduino is hooked via USB, its functioning at 5 volts, if it is drawing forty milli-amps, that isn’t the same measure of wattage as requiring forty milli-amperes from a 9 V battery.
Moreover it depends on what your application is. Are you just taking input from some type of analog monitoring device or are you using it on a servo, these have dramatically different power needs, and once more in my experience you’ll find it not useful to calculate. I find the best way is get a hold of some batteries you have around the house and see how long they last, then use those measurements to make empiric calculations.
Assume you’re working on a remote tracking device and you need to have the Arduino to continuously measure something for some significant period of time. I did something similar with a DS18B20 sensor that was on the inside of one of the cold frames in my yard, it would have been a pain pulling an extension cord out to the yard, and not such a good idea to leave it outdoors and exposed, so I deciding on operating on a battery.
The At mega and SAM processors that come on an Arduino contain some very sophisticated power management functionality which you can tinker with, but before we discuss the methods which you can make your Arduino conserve power, we should really examine some easy but more direct solutions.
First and foremost would be to use an alternative Arduino whenever possible. The 3.3 volt Arduino’s will use less energy than a 5 V Arduino for a certain kind of application. The Arduino Nano (about $8) and Arduino Micro (about $20) will use way less energy than an Uno (about $10) and Mega (about $15), and if they work for your needs this alone might be sufficient.
Another thing to think about is using a different kind of battery. Currently when we speak about batteries it sometimes seems as if there is this attitude that lithium-ion batteries are the best for anything. Lithium-ion batteries are great for possessing a very high power/weight ratio.
This is great for projects like robots and other things that move. If your battery isn’t going to need to move then a better solution might be a lead acid battery, similar to the one in your car or truck, this is what I decided on in my backyard cold frame.
I took a small lead acid battery that might be used in a mower, which I found at Wall-mart for about $28, it was a 12 V 18 amp hour battery, this would be comparable to nearly 70 nine V batteries with respect to capacity. This was ideal for my cold frame, and I just didn’t need to muddle with the complicated power handling functions.
What if you still want to conserve power and a different Arduino or larger sized battery will not meet your requirements, then there are lots of approaches we can try out to get the Arduino to conserve power.
Reducing Power Consumption
One technique is to bypass everything except the processor chip, you actually do this by avoiding the power connector, but directly providing energy to the processor with power, you must be cautious here that you stay inside the operating limitations of the given chip which is on your Arduino, that voltage regulator is there for a reason! This will save significant power.
The processor chip consumes much less power than the entire Arduino board will use, this is typically in the form of heat lost by the regulator and things like the LED’s.
Another way to reduce power consumption is to lower the clock speed. If you’re running a program like monitoring the temperature of my backyard cold frame every thirty seconds, there’s no need for the Arduino to perform at its maximum clock rate.
This can be accomplished with the pre-scaler library. You can reduce the clock speed by a factor as much as 256, this will decrease a sixteen Megahertz Arduino to a 62.5 kHz one, but when you find yourself just checking a measurement every 25 seconds or so, this is more than enough, and this will decrease consumption significantly.
For a remote monitoring project, just about the most effective technique you could do to improve efficiency is to instruct Arduino to sleep. There is a library called narcoleptic allowing you to hold the Arduino in a minimal consumption mode, just a single timer is functioning. This timer is able to be used to awaken the Arduino every 20 seconds as I needed to do. Many of the smaller 3.3 V Arduino’s will consume under 1 mA while asleep.