#include <M5Unified.h>
#include <Preferences.h>
Preferences pref;
int count = 0;
void setup() {
auto cfg = M5.config(); // M5Unified の設定
M5.begin(cfg);
M5.Display.setRotation(0); // 縦型
M5.Display.fillScreen(CYAN);
M5.Display.setTextSize(2);
M5.Display.setTextScroll(true);
loadCount(&count);
M5.Speaker.tone(2000, 500);
M5.Display.printf("count = %d\n", count);
}
void loop() {
M5.update();
if (M5.BtnA.wasReleaseFor(1000)) { // Aボタン長押し
count = 0;
saveCount(&count);
M5.Speaker.tone(1200, 300);
M5.Display.printf("count = %d\n", count);
} else if (M5.BtnA.wasReleased()) { // Aボタン押し
count++;
saveCount(&count);
M5.Speaker.tone(2000, 300);
M5.Display.printf("count = %d\n", count);
} else if (M5.BtnB.wasReleased()) { // Bボタン押し
reboot();
} else if (M5.Power.isCharging() == false && M5.BtnPWR.wasReleased()) { // 電源ボタン押し
poweroff();
}
delay(50);
}
void loadCount(int *c) {
pref.begin("mydata", false);
*c = pref.getInt("count", 0); // 初回時に 0 をデフォルト値とする
pref.end();
}
void saveCount(int *c) {
pref.begin("mydata", false);
pref.putInt("count", *c);
pref.end();
}
void poweroff() {
M5.Power.powerOff();
}
void reboot() {
ESP.restart();
}