🛠 Maîtriser les Entrées/Sorties GPIO sur 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
- Une carte M5Paper (ESP32-D0WDQ6-V3)
- Un câble USB-C pour la programmation et l'alimentation
- Un ordinateur avec l'IDE Arduino installé
- Le support M5Stack installé dans l'IDE Arduino
- Un petit bouton-poussoir externe (optionnel, sinon utiliser les boutons intégrés du M5Paper)
Étapes
- 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*.
- 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.
- Écriture du code : Créez un nouveau croquis. Incluez la bibliothèque
M5Paper.h. Danssetup(), initialisez la carte avecM5.begin()et configurez la broche du bouton enINPUT_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");
}
- Logique de lecture : Dans
loop(), lisez l'état du bouton avecdigitalRead(). Notez qu'avecINPUT_PULLUP, l'état estLOWquand 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);
}
}
- 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.