m5paper_gpio_button.ino
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);
}