Вообще - атмега в ардуине имеет 6 режимов энергосбережения:
Idle Mode (режим ожидания). В нем процессор приостанавливается, но остальная периферия - SPI, USART, аналоговый компаратор, шина TWI (I2C), таймеры/счетчики, сторожевой таймер и система прерываний - продолжают работать. Поэтому выход из режима Idle возможен как по внешнему, так и по внутреннему прерыванию.
ADC Noise Reduction Mode (режим снижения шумов АЦП). Данный режим присутствует только в моделях МК, содержащих в своем составе АЦП и предназначен для уменьшения всевозможных наводок во время его работы. В этом режиме прекращает работу процессор и отключается синхронизация ввода-вывода, остальные устройства продолжают работу.
Power-Down mode (режим микропотребления) - самый экономный режим, присутствует во всех AVR. В этом режиме отключаются все внутренние тактовые сигналы, соответственно, прекращается функционирование всех узлов МК, работающих в синхронном режиме. Единственными узлами, продолжающими работать в этом режиме, являются асинхронные модули МК: сторожевой таймер (если он включен), подсистема обработки внешних прерываний и блок сравнения адреса модуля TWI. Пробуждение из режима Power-Down возможно при возникновении сброса (аппаратного, от сторожевого таймера, от схемы BOD) или в результате генерации некоторых прерываний (в том числе INT0 и INT1)
Power Save Mode (экономичный режим). Идентичен режиму Power Down с одним отличием: в режиме Power Save таймер/счетчик 2 может продолжать работу, причем как в синхронном, так и асинхронном режиме. Вывести МК из этого режима могут те же события, что и в случае использования режима Power Down, а так же прерывания от таймера/счетчика 2.
Standby Mode (режим ожидания). Этот режим рекомендуется задействовать только при использовании внешнего резонатора. Он идентичен режиму Power Down, за исключением того, что тактовый генератор продолжает функционировать. Благодаря этому пробуждение МК и переход в рабочий режим требует всего 6 тактов.
Extended Standby Mode (расширенный режим ожидания). Как и режим Standby этот режим рекомендуется использовать совместно с внешним резонатором. Он идентичен режиму Power Save, за исключением того, что тактовый генератор продолжает функционировать. Благодаря этому пробуждение МК и переход в рабочий режим требует всего 6 тактов.
Для того чтобы перевести Ардуино в один из перечисленных режимов достаточно выполнить 2 функции: set_sleep_mode(<mode>) для задания конкретного режима и sleep_mode(). Они объявлены в файле sleep.h, поэтому он должен быть добавлен в секцию include вашего скетча.
#include <avr/sleep.h>
...
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_mode();
Для указания режима используются константы:
SLEEP_MODE_IDLE
SLEEP_MODE_ADC
SLEEP_MODE_PWR_DOWN
SLEEP_MODE_PWR_SAVE
SLEEP_MODE_STANDBY
SLEEP_MODE_EXT_STANDBY
Более подробное описание можно найти в документации к атмеге 328p в разделе Power Management and Sleep Modes
... и добавил:Еще есть библиотека Low Power
https://github.com/rocketscream/Low-Power Она предназначена для управления режимами энергосбережения Ардуино в более гибкий способ, чем стандартными средствами. Там есть примеры - после них все понятно что и как там работает. Позволяет одной строчкой обработать запрос и перевести в нужный режим прибор.