I have built an automated window blind controller that will adjust the angle of a servo based on the value received via a light dependent resistor. Once every 10 minutes the MCU wakes up, gets the current value of the LDR, adjusts the angle of the servo accordingly and then goes back to SLEEP_MODE_PWR_DOWN using the watchdog timer. I am using a 5v 16MHz ATMega168 Arduino Pro Mini as the MCU. I have removed both of the on board LEDs to reduce idle power consumption. I am also powering directly from the VCC pin so that I bypass the on board regulator reducing power consumption even more. I’m trying to determine what is the best battery power option for this project. The project is still in testing but appears to be working as intended.
I have captured the following power consumption readings using an amp meter inline between the power lead during sleep and while the servo is moving to a new angle:
During sleep: approximately 0.70 mA Awake and servo moving: approximately 14 mA
Assuming that the servo will make 4 adjustments each day and that each adjustment will take approximately 2 seconds that equates to 8 seconds each day at 14 mA. The remaining 86,392 seconds will be in sleep mode. So that’s 99.99% of the time in sleep mode and just .01% of the time awake and doing something.
Next, I took the project a step further and created a sketch to mimic the action the servo would take during the course of a normal day and executed that action once every 68 seconds for 24 hours. Essentially every 68 seconds the servo would rotate through the four different pre-programmed positions and then go back to sleep. This equated to approximately 1,270 iterations in a 24 hour period or if I was only getting one iteration a day, close to 3 1/2 years. In between each position I put a three second delay so for approximately 12 seconds each 68 seconds I was pulling 14 mA. For the remaining 56 seconds I was pulling .70 mA. For that 24 hour period I ran power to the Arduino using a 5vdc cell phone wall charger with a power bank capacity tester placed in between the incoming power and the Arduino. The power bank capacity tester has a LCD screen that keeps track of voltage, amps, and mAh.
So, over the 24 hour period, the tester stated that the Arduino used a total of 120 mAh. That does not seem right to me. Am I missing some multiplier? I even put some resistance on the servo (added some weight to increase the current draw) thinking that would increase the amp draw during rotation but the increase was minimal. The most I ever saw the amp reading go up to was .48 amps.
Thoughts? Recommendations? Ultimately, I want to make sure that I use the right type and quantity of batteries to power the project for at least 3 months.