Arduino Quick Start
Tough sleep and wakeup related APIs and example programs.
#include <M5Unified.h>#include <M5GFX.h> int myIndex = 0; void setup() { M5.begin(); M5.Display.setRotation(1); M5.Display.setFont(&fonts::FreeMonoBold12pt7b); M5.Display.clear(); M5.Display.print("Sleep & Wakeup Test\n");} void loop() { myIndex++; M5.Display.setCursor(0, 50); M5.Display.printf(" %4d", myIndex); delay(50); if (myIndex % 20 == 0) { // M5.Power.timerSleep(5); // in seconds // M5.Power.deepSleep(5000000, false); // in microseconds M5.Power.lightSleep(5000000, false); // in microseconds M5.Display.setCursor(0, 0); M5.Display.print("Sleep & Wakeup Test\n"); } if (myIndex >= 1000) { myIndex = 0; }}
This program displays a counter that starts from 0 and increments by 1. Every time it reaches a multiple of 20, the device enters light sleep for 5 seconds and then wakes up to continue running. If you modify the program to use timer sleep or deep sleep (the two commented lines), the device will restart the entire program after waking up.
The Tough Wakeup functionality uses the Power_Class
from the M5Unified
library. For more related APIs, please refer to the following documentation: