Reducing Arduino Power Consumption
When it comes to portable electronics, one of the most important features is how to maximize the battery life. The ATmega328P, used on popular boards like the SparkFun RedBoard, Arduino Uno, and Pro Mini are actually quite power hungry. The RedBoard and Arduino Uno, draw around 15mA minimum, which doesn’t sound like much but as you’ll see in this project, we can drastically bring that down with just a few tricks. In this guide we’ll see if we can reduce the supply current to less than 10uA with a couple hardware and software tricks.
Removing the extra hardware!
Making it seems to be difficult having a lot of components. No, actually most of the components of a Arduino board are for preventing short circuiting, damage control, etc. But, if you have basic knowledge and experience of working with Arduino then, you can avoid those parts and can check the circuit for any mishap.
So, let’s see what can we remove to lower the power consumption on our homemade Arduino.
Remove the programmer IC
Every integrated circuit (IC) needs power to function. By reducing the number of ICs needed, you can save a bit of power. The Arduino Uno has a USB bridge that converts the USB signals to signals that the Arduino’s Universal Asynchronous Receiver Transmitter (UART) can use. This alone draws around 10mA. I will tell you other alternatives for programming the micro-controller later on.
No power LED!
We can also remove the power LED. It is just to show that arduino is on or off. So, it will not reduce the functionality of the arduino.
Ditching the Linear Voltage Regulator
Linear regulators are great. They’re cheap and can regulate a higher voltage to a lower voltage with as few as 3 pins (Vin, ground Vout). The downside of a linear regulator however is they can get pretty hot when you have a large difference between the input and output voltage, or if you’re drawing a lot of current. You can calculate the power that gets wasted in the form of heat with a simple equation:
Pwasted = (Vin - Vout) * I
For 5V output, 7V in given as input to to regulator. Means that Vin – Vout is 2V and the usual current drawn is 1A. Pwasted is 2 watt.
Linear regulators are, at best, only around 70% efficient. The more current you draw, the lower the efficiency.
For, supplying the 5V and 1A supply, we can use battery mentioned in the list above or we can also use 3x AA battries. This makes 4.5V and ATmega328 can work on 1.8 V to 5.5 V.
Reducing the clock speed
In projects where the Arduino doesn’t need to execute a large number of instructions in a short amount of time or in projects where timing isn’t an issue, reducing the clock speed of the micro-controller can shave a few milliamps off the supply current. For example, running the Arduino at 5V and reducing the clock speed from 16 MHz down to just 8 MHz can drop the current needed from 12 mA down to about 8.5 mA.
To better understand the relationship clock speed has with the microcontroller, let’s look at the graph below.
As you can see, reducing the clock speed can triple the battery life. The trade off of course is that you won’t be able to execute as many instructions per second, and for some applications, this solution isn’t an option.
To know, how it can be done, click here.
Saving Power with Software
So far we’ve talked about how to reduce the power of the Arduino, but we haven’t talked about why it uses the power it does. Inside the ATmega328P, lies a series of circuits that work together to offload work from the processor, and each of these draws some amount of power.
analogWrite() function, for example, doesn’t have the processor create a PWM signal by counting the clock cycles itself. Instead, the Arduino uses one of the built in timers to count clock cycles and send an interrupt request to the processor. From there, the processor stops what it’s doing and handles the interrupt by switching the pin’s state. By offloading some of the work, the micro-controller is able to do multiple things at the same time.
Foe more detail: Reducing Arduino Power Consumption
Leave a Comment
You must be logged in to post a comment.