🛠 Dominar las Entradas/Salidas GPIO en M5Paper

M5Stack M5Paper · intermediaire · Apprenez à lire les boutons et à contrôler les périphériques via les broches GPIO du M5Paper.

Objetivos

Este tutorial tiene como objetivo comprender la interacción de bajo nivel con el M5Paper. Aprenderás a identificar los pines GPIO disponibles, configurar un botón físico como entrada digital y controlar una salida (o simular una) según el estado del botón. También exploraremos las especificidades de la pantalla e-Ink para evitar actualizaciones innecesarias.

Material Necesario

Pasos

  1. Configuración del entorno: Abre Arduino IDE, ve a *Preferencias* y añade la URL del gestor de tarjetas M5Stack. Instala la tarjeta «M5Paper» a través del *Gestor de tarjetas*.
  1. Identificación de pines: El M5Paper tiene varios GPIOs accesibles. Los botones físicos (BTN_A, BTN_B, BTN_C) suelen estar en los pines GPIO 39, 38 y 37. Consulta el esquema oficial para confirmar las asignaciones de tu revisión.
  1. Escritura del código: Crea un nuevo boceto. Incluye la biblioteca M5Paper.h. En setup(), inicializa la placa con M5.begin() y configura el pin del botón como INPUT_PULLUP.
#include <M5Paper.h>

const int btnPin = 39; // Ejemplo para BTN_A

void setup() {
  M5.begin();
  pinMode(btnPin, INPUT_PULLUP);
  M5.Display.print("Presiona el botón");
}
  1. Lógica de lectura: En loop(), lee el estado del botón con digitalRead(). Ten en cuenta que con INPUT_PULLUP, el estado es LOW cuando se presiona. Añade un pequeño retraso (delay(50)) para evitar rebotes mecánicos.
void loop() {
  if (digitalRead(btnPin) == LOW) {
    M5.Display.print("¡Botón presionado!");
    delay(500);
  }
}
  1. Gestión de la pantalla e-Ink: La pantalla IT8951 es lenta. No llames a M5.Display.update() en cada bucle. Usa el modo parcial si está disponible o limita las actualizaciones completas para preservar la batería.

Verificación

Carga el código en el M5Paper. Presiona el botón físico correspondiente. El texto en la pantalla debe cambiar. Si no ocurre nada, verifica el cableado o cambia el pin GPIO. Usa el monitor serie para depurar los valores de digitalRead.

Para ir más allá

Explora las interrupciones por hardware (attachInterrupt) para reaccionar instantáneamente a las pulsaciones sin consultar el pin continuamente, optimizando así el consumo de energía, crucial para aplicaciones IoT con batería.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales