
Arduino入門
PowerHub の Wakeup に関連する API とサンプルプログラムです。
#include <M5Unified.h>
int myIndex = 0;
void setup() {
M5.begin();
M5.Led.setBrightness(255);
Serial.begin(115200);
Serial.println("\n\nPowerHub Sleep & Wakeup Test");
delay(1000);
}
void loop() {
myIndex++;
Serial.printf("%d ", myIndex);
M5.Led.setAllColor(TFT_WHITE);
M5.Led.display();
delay(200);
if (myIndex % 20 == 0) {
M5.Led.setAllColor(TFT_BLACK);
M5.Led.display();
M5.Power.timerSleep(5); // in seconds
// M5.Power.deepSleep(5000000, false); // in microseconds
// M5.Power.lightSleep(5000000, false); // in microseconds
}
if (myIndex >= 1000) {
myIndex = 0;
}
}このプログラムは、LED を点灯させながらシリアルモニターに 0 から 1 ずつ増加するカウンターを出力します。カウンターが 20 の倍数に達するたびに、デバイスは 5 秒間のタイマー付きスリープモードに入り(LED 消灯)、その後ウェイクアップしてプログラムを再起動し、LED を再び点灯させます。
PowerHub のスリープ/ウェイク制御ドライバ部分は、M5Unified ライブラリの Power_Class を使用しています。関連する API の詳細については、以下のドキュメントを参照してください: