🛠 Pilotage GPIO et Affichage LCD sur ToughC5
Objectifs
Ce tutoriel vise à maîtriser l'interaction physique avec le kit M5Stack ToughC5. Vous apprendrez à configurer les broches GPIO pour lire des entrées numériques et à piloter l'écran LCD couleur tactile ILI9342C. L'objectif est de créer une interface de base affichant l'état d'un capteur ou d'un bouton, en exploitant la puissance du processeur RISC-V et la mémoire PSRAM.
Matériel nécessaire
- Kit M5Stack ToughC5 (ESP32-C5HR8)
- Câble USB Type-C pour l'alimentation et le programme
- IDE Arduino avec le support M5Stack installé
- Un bouton poussoir (ou utiliser le tactile de l'écran comme entrée)
- Résistance de pull-up/down si nécessaire (souvent interne)
Étapes
- Configuration de l'environnement : Dans l'IDE Arduino, sélectionnez la carte "M5Stack ToughC5". Assurez-vous que le port série est détecté. Le ToughC5 utilise une architecture RISC-V, vérifiez que le compilateur est bien configuré pour cette cible.
- Initialisation de l'écran : Incluez la bibliothèque
M5GFX.h. Danssetup(), appelezM5.Display.begin(). L'écran IPS de 320x240 pixels nécessite une initialisation spécifique pour gérer la luminosité (853 nits) et l'orientation. UtilisezM5.Display.setRotation(1)pour un mode paysage adapté au boîtier étanche. - Définition des broches GPIO : Identifiez les connecteurs HY2.0-4P. Pour ce tutoriel, nous utiliserons une broche GPIO accessible via ces connecteurs pour simuler une entrée externe. Définissez la broche en
INPUT_PULLUPpour éviter les états flottants. - Boucle principale : Dans
loop(), lisez l'état de la broche avecdigitalRead(). Si l'état change, mettez à jour l'affichage. UtilisezM5.Display.fillRect()pour dessiner des rectangles de couleur indiquant l'état (vert pour actif, rouge pour inactif). - Optimisation tactile : Si vous utilisez l'écran tactile capacitif, intégrez
M5.Touchpour détecter les pressions. Comparez les coordonnées (x,y) avec les zones dessinées pour interagir avec l'interface sans boutons physiques externes.
Vérification
Alimentez le ToughC5 via USB. L'écran doit s'allumer avec un fond d'écran ou une couleur unie. Lors de la simulation d'une entrée (ou d'un appui tactile), l'affichage doit changer instantanément de couleur ou de texte. Vérifiez que la réactivité est fluide grâce aux 8 Mo de PSRAM qui permettent de stocker les buffers graphiques sans ralentir le processeur.
Pour aller plus loin
Explorez l'intégration du RTC RX8130CE pour afficher l'heure en temps réel sur l'écran. Vous pouvez également combiner les données GPIO avec la connectivité Wi-Fi 6 pour envoyer l'état des entrées à un serveur distant, transformant le ToughC5 en nœud IoT complet avec interface locale.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
toughc5_gpio_button_buzzer.inoC++ (Arduino)toughc5_wifi6_scanner.inoC++ (Arduino)toughc5_rtc_battery_log.inoC++ (Arduino)toughc5_ili9342c_touch_ui.inoC++ (Arduino)toughc5_rs485_modbus_master.inoC++ (Arduino)toughc5-rs485-modbus-master.inoArduino C++