アイドル状態のスリープ状態では、Ignacio Vazquez-Abramsがコメントしたように、タイマ割り込みによってプロセッサがスリープ状態に入る。
"より高い"スリープモードが動作しますが、シリアル出力バッファが空になる前にプロセッサがスリープ状態になるため、 Serial.flush()
を追加する必要があります。
#include
void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.println("Program is on");
Serial.flush ();
sleepNow();
}
void sleepNow()
{
//Choose our preferred sleep mode:
set_sleep_mode(SLEEP_MODE_PWR_SAVE);
//Set sleep enable (SE) bit:
sleep_enable();
//Put the device to sleep:
sleep_mode();
//Upon waking up, sketch continues from this point.
sleep_disable();
}
省電力についてのページをご覧ください。