Arduino入門
Fire のスリープ・ウェイクアップに関連する API とサンプルプログラムです。
#include <M5Unified.h>
int myIndex = 0;
void setup() {
M5.begin();
M5.Display.setRotation(1);
M5.Display.setFont(&fonts::FreeMonoBold12pt7b);
M5.Display.clear();
M5.Display.println("Sleep & Wakeup Test");
}
void loop() {
myIndex++;
M5.Display.setCursor(0, 50);
M5.Display.printf(" %4d", myIndex);
delay(50);
if (myIndex % 20 == 0) {
M5.Power.lightSleep(5000000, false); // in microseconds
// M5.Power.deepSleep(5000000, false); // in microseconds
// M5.Power.timerSleep(5); // in seconds
M5.Display.setCursor(0, 0);
M5.Display.println("Sleep & Wakeup Test");
}
if (myIndex >= 1000) {
myIndex = 0;
}
}
このプログラムは、0 から始まり 1 ずつ増加するカウンターを表示します。カウンターが 20 の倍数に達するたびに、デバイスは 5 秒間のライトスリープに入り、その後ウェイクアップしてプログラムを続行します。プログラムをタイマー付きスリープまたはディープスリープ(コメントアウトされている 2 行)に変更すると、ウェイクアップ後にプログラム全体が最初から再開されます。
Fire のスリープ・ウェイクアップ機能は、M5Unified
ライブラリの Power_Class
を使用しています。さらに関連する API については、以下のドキュメントを参照してください: