🛠 Maîtriser les Entrées/Sorties GPIO sur M5Paper

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

Objectifs

Ce tutoriel vise à comprendre l'interaction bas niveau avec le M5Paper. Vous apprendrez à identifier les broches GPIO disponibles, à configurer un bouton physique comme entrée digitale et à allumer une LED (ou utiliser une sortie simulée) en fonction de l'état du bouton. Nous explorerons également les spécificités de l'écran e-Ink pour éviter les rafraîchissements inutiles.

Matériel nécessaire

Étapes

  1. Configuration de l'environnement : Ouvrez l'IDE Arduino, allez dans *Préférences* et ajoutez l'URL du gestionnaire de cartes M5Stack. Installez la carte « M5Paper » via le *Gestionnaire de cartes*.
  1. Identification des broches : Le M5Paper possède plusieurs GPIO accessibles. Les boutons physiques (BTN_A, BTN_B, BTN_C) sont généralement sur les broches GPIO 39, 38 et 37. Vérifiez le schéma officiel pour confirmer les mappings spécifiques à votre révision.
  1. Écriture du code : Créez un nouveau croquis. Incluez la bibliothèque M5Paper.h. Dans setup(), initialisez la carte avec M5.begin() et configurez la broche du bouton en INPUT_PULLUP.
#include <M5Paper.h>

const int btnPin = 39; // Exemple pour BTN_A

void setup() {
  M5.begin();
  pinMode(btnPin, INPUT_PULLUP);
  M5.Display.print("Appuyez sur le bouton");
}
  1. Logique de lecture : Dans loop(), lisez l'état du bouton avec digitalRead(). Notez qu'avec INPUT_PULLUP, l'état est LOW quand le bouton est pressé. Ajoutez un petit délai (delay(50)) pour éviter les rebonds mécaniques.
void loop() {
  if (digitalRead(btnPin) == LOW) {
    M5.Display.print("Bouton pressé!");
    delay(500);
  }
}
  1. Gestion de l'écran e-Ink : L'écran IT8951 est lent. N'appelez pas M5.Display.update() à chaque boucle. Utilisez le mode partiel si disponible ou limitez les rafraîchissements complets pour préserver la batterie.

Vérification

Téléversez le code sur le M5Paper. Appuyez sur le bouton physique correspondant. Le texte sur l'écran doit changer. Si rien ne se passe, vérifiez le câblage ou changez de broche GPIO. Utilisez le moniteur série pour déboguer les valeurs digitalRead.

Pour aller plus loin

Explorez les interruptions matérielles (attachInterrupt) pour réagir instantanément aux appuis sans poller la broche en continu, optimisant ainsi la consommation d'énergie, cruciale pour les applications IoT sur batterie.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels