I've been tasked to do an initial design for an Arduino setup that needs to run very infrequently.

Basically, I'd like the system to wake up daily to take some sensor readings and report them back to a central site (the mesh network for this will be my next stage).

Since these things are going to be run on battery, I need it to be as insanely efficient as possible, with minimal power drain when not reading the sensor.

What facilities does Arduino have to do this?


1 Answer 1


Please refer to http://playground.arduino.cc/Learning/ArduinoSleepCode

it explains the details of a the sleep command and interrupts to re-a-wake. Where the power savings is from putting the resources individually into low power mode.

In your solution, you may want to put everything in low power, except power_timer1_disable(). Where timer1 would be configured to provide an overflow interrupt, say every 1 minute or longer and then go back to powering all off and return to sleep.

Note the article also mentions that the UNO's power supply is a linear regulator, which is very in-efficient. You may want to use your own. You can also get away with just running directly off of 2-3 AA's, if your other circuitry does not care. If this, then I would also suggest enabling the brown out detection, to ensure low battery does not get funny.