pdf-icon

Arduino 上手教程

2. 设备开发 & 案例程序

6. 应用案例

PowerHub Wakeup 休眠唤醒

PowerHub Wakeup 休眠唤醒相关 API 与案例程序。

案例程序

编译要求

  • M5Stack 板管理版本 >= 3.2.3
  • 开发板选项 = M5PowerHub
  • M5Unified 库版本 >= 0.2.11
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
#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 灯点亮)。

API

PowerHub Wakeup 休眠唤醒部分驱动使用了M5Unified库中的Power_Class,更多相关的 API 可以参考下方文档:

注意
由于 PowerHub 的电源、LED 灯由协处理器 STM32 控制,所以主控 ESP32-S3 进入休眠时不会自动改变电源和 LED 灯的状态。如果需要通过休眠模式省电,请在进入休眠前关闭电源及 LED 灯,可参考 PowerRGB LED 页面。
On This Page