🛠 Piloter l'E-Paper et les GPIO sur M5Stack PaperDIY
Objectifs
Ce tutoriel vise à maîtriser l'interaction avec l'écran e-paper ED047TC1 et les broches GPIO du module ESP32-S3. Vous apprendrez à afficher du texte dynamique et à lire l'état d'un bouton physique, exploitant la mémoire PSRAM pour le buffer graphique.
Matériel nécessaire
- Kit d'assemblage M5Stack PaperDIY (ESP32-S3-WROOM-1-N16R8)
- Câble USB-C pour l'alimentation et le flash
- Ordinateur avec Arduino IDE ou VS Code (PlatformIO)
- Un bouton poussoir (optionnel pour la démonstration GPIO)
Étapes
Installez la bibliothèque M5GFX et M5Unified via le gestionnaire de bibliothèques Arduino. Ces librairies gèrent l'interface parallèle 8 bits spécifique à l'écran ED047TC1.
- Configuration de l'environnement
Créez un nouveau projet. Incluez les en-têtes nécessaires. L'écran utilise une interface parallèle, ce qui nécessite une configuration précise des broches.
- Initialisation du code
#include <M5Unified.h>
void setup() {
M5.begin();
M5.Display.setBrightness(255);
M5.Display.fillScreen(GRAY_WHITE);
}
L'écran offre 16 niveaux de gris. Utilisez M5.Display.drawString pour afficher du texte. Notez que le rafraîchissement est lent comparé à un LCD.
- Affichage sur l'E-Paper
void loop() {
M5.Display.setCursor(10, 10);
M5.Display.printf("PaperDIY GPIO Test\n");
M5.Display.update();
delay(5000);
}
Pour lire un bouton, définissez une broche en entrée avec résistance de pull-up. Le module ESP32-S3 permet une gestion flexible des GPIO.
- Gestion des GPIO
const int buttonPin = 4; // Broche GPIO à vérifier selon le schéma
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
M5.begin();
}
Dans la boucle principale, lisez l'état du GPIO et mettez à jour l'affichage si l'état change. L'écran e-paper ne doit pas être rafraîchi trop fréquemment pour préserver la batterie de 140 mAh.
- Lecture et Affichage
void loop() {
int state = digitalRead(buttonPin);
if (state == LOW) {
M5.Display.fillScreen(GRAY_BLACK);
} else {
M5.Display.fillScreen(GRAY_WHITE);
}
M5.Display.update();
delay(1000);
}
Vérification
Compilez et téléversez le code. L'écran doit afficher le texte initial. En appuyant sur le bouton connecté (ou en court-circuitant la broche à la masse), l'écran doit changer de couleur. Vérifiez que le module reste alimenté sans surchauffe, grâce à la puce M5PM1.
Pour aller plus loin
Explorez l'utilisation de la PSRAM de 8 MB pour stocker des images complexes. Intégrez le WiFi 802.11b/g/n pour recevoir des commandes à distance et mettre à jour l'affichage e-paper via un serveur web.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
epaper_hello_world.inoC++wifi_web_dashboard.inoC++sdcard_logger.inoC++deep_sleep_battery.inoC++ble_beacon.inoC++gpio-button-led-basic.inoC++ (Arduino)