m5paper_gpio_button.ino

Kit de desarrollo IoT M5Paper con pantalla táctil e-Ink de 4,7 pulgadas · Archivo : m5paper_gpio_button.ino · Lenguaje : C++ · Uso : Gérer les boutons physiques du M5Paper (UP, DOWN, LEFT, RIGHT) pour changer l'affichage.

Usa los cuatro botones físicos para incrementar, decrementar o restablecer un contador mostrado en la pantalla.

Configura los GPIO internos para los botones. El método pressedFor gestiona el rebote por software. La pantalla se actualiza solo si el estado cambia para ahorrar energía de la 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);
}

← Volver a la ficha