Have a power hungry Arduino and looking for a dead simple solution? Fear not, hardware hacker. The community has come to your aid. There are several libraries available that abstract all of the gritty AVR commands needed to make your Arduino drowsy.
Rocket Scream low power library
Rocket Scream has developed a lightweight low power library that supports all AVR power down modes. Each mode has an associated library method that lets you control sleep duration using the watchdog timer. You can also provide arguments to shut off individual peripherals.
Even better, their writeup has a comprehensive table of power draw using each sleep mode, with test values for every possible combination of peripherals. They use their own custom Arduino-compatible board for testing, but their results give a good sense of what’s possible using power down functionality.
Enerlib is an alternative power library with a very similar implementation. Like Rocket Screams’ version, each power mode is controlled by it’s own library method. Enerlib is an even simpler alternative, with no additional arguments to worry about. It relies on external interrupts to wake your device from sleep, so you’ll have to rely on a change in pin state unless you want to modify the implementation.
If you’d prefer to have more control over your sleep implementation, you can also roll your own using our sleep basics tutorial. One way or the other, your project should be sipping power like fine champagne in no time.