m5paper_gpio_button.ino

Kit de développement IoT M5Paper avec écran e-Ink tactile 4,7 pouces · Fichier : m5paper_gpio_button.ino · Langage : C++ · Usage : Gérer les boutons physiques du M5Paper (UP, DOWN, LEFT, RIGHT) pour changer l'affichage.

Utilise les quatre boutons physiques pour incrémenter, décrémenter ou réinitialiser un compteur affiché sur l'écran.

Configure les GPIO internes pour les boutons. La méthode pressedFor gère le rebond logiciel. L'affichage est mis à jour uniquement si l'état change pour économiser l'énergie de l'e-Ink.

m5paper_gpio_button.ino

#include <M5EPD.h>

M5EPD_Canvas canvas(&M5.EPD);
int counter = 0;

void setup() {
  M5.begin();
  M5.EPD.SetRotation(0);
  M5.EPD.Clear(true);
  canvas.createCanvas(800, 480);
  canvas.setTextSize(10);
  updateDisplay();
}

void loop() {
  M5.update();
  bool changed = false;
  
  if (M5.BtnUP.pressedFor(100)) { counter++; changed = true; }
  if (M5.BtnDOWN.pressedFor(100)) { counter--; changed = true; }
  if (M5.BtnLEFT.pressedFor(100)) { counter = 0; changed = true; }
  if (M5.BtnRIGHT.pressedFor(100)) { counter = 100; changed = true; }

  if (changed) {
    updateDisplay();
    delay(300); // Anti-rebond simple
  }
}

void updateDisplay() {
  canvas.fillCanvas(G16_WHITE);
  canvas.setTextColor(G16_BLACK);
  canvas.drawCentreString(String(counter), 400, 240, 4);
  canvas.pushCanvas(0, 0, UPDATE_MODE_DU4);
}

← Retour à la fiche