ESP32 MicroPython - Afficheur 7 Segments 4 Chiffres 74HC595
L'ESP32 est un microcontrôleur puissant, compatible WiFi, largement utilisé dans les projets IoT et embarqués. Associé à MicroPython et au module d'affichage DIYables 4 chiffres 7 segments (74HC595), vous pouvez facilement afficher des nombres, du texte et des lectures de capteurs sur un afficheur LED lumineux.
Ce tutoriel vous guide à travers :
- La connexion de l'afficheur 7 segments 4 chiffres basé sur le 74HC595 à un ESP32 — seulement 3 broches de données nécessaires.
- L'affichage d'entiers, de flottants et de chaînes de texte.
- L'affichage de températures avec le symbole degré (°C / °F).
- L'affichage de l'heure avec un séparateur point clignotant.
- Le clignotement de l'afficheur.
- L'utilisation de la fonction de rafraîchissement automatique — aucune boucle de rafraîchissement manuelle requise.

Composants Nécessaires
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables ESP32 (ESP32 inclus) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Le Module d'Affichage 7 Segments 4 Chiffres 74HC595
Le module DIYables 4 chiffres 7 segments 74HC595 est un afficheur LED compact piloté par deux registres à décalage 74HC595. Il affiche 4 chiffres et 4 points décimaux. Comme les registres à décalage gèrent tout le pilotage des segments et des chiffres, l'ESP32 n'a besoin que de 3 broches GPIO (horloge, verrou et données) au lieu des 12+ broches qu'un afficheur brut nécessiterait.
L'ESP32 communique avec le module en décalant séquentiellement les données de segments et de sélection de chiffres. La bibliothèque gère cela automatiquement à l'aide d'un Timer matériel pour le multiplexage — chaque chiffre est rafraîchi à tour de rôle à haute vitesse, de sorte que les 4 chiffres semblent allumés simultanément.
Caractéristiques principales du module :
- Seulement 3 fils pour les données (SCLK, RCLK, DIO) plus l'alimentation.
- 4 points décimaux — contrôlables individuellement.
- Variantes anode commune ou cathode commune disponibles.
- Compatible 5V ou 3,3V.
Description des Broches
| Broche | Fonction | Connexion ESP32 |
|---|---|---|
| SCLK (SH_CP) | Entrée horloge série | Connecter à GPIO18 |
| RCLK (ST_CP) | Horloge de registre / verrou | Connecter à GPIO17 |
| DIO (DS) | Entrée données série | Connecter à GPIO16 |
| VCC | Alimentation 3,3V à 5V | Connecter à 3,3V |
| GND | Masse | Connecter à GND |

Câblage
L'ESP32 fonctionne en logique 3,3V. Le module 74HC595 fonctionne avec 3,3V et 5V, vous pouvez donc câbler directement — aucun adaptateur de niveau n'est nécessaire.
| Module 74HC595 | ESP32 | Notes |
|---|---|---|
| SCLK (SH_CP) | GPIO18 | Horloge série |
| RCLK (ST_CP) | GPIO17 | Verrou / horloge de registre |
| DIO (DS) | GPIO16 | Données série |
| VCC | 3.3V | Alimentation |
| GND | GND | Masse |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Conseil : Vous pouvez utiliser n'importe quelle broche GPIO disponible sur l'ESP32. Mettez simplement à jour les numéros de broches dans le code.
Étapes Rapides
Voici les instructions pour configurer et exécuter votre code MicroPython sur l'ESP32 avec Thonny IDE :
- Assurez-vous que Thonny IDE est installé sur votre ordinateur.
- Confirmez que le firmware MicroPython est chargé sur votre carte ESP32.
- Si c'est la première fois que vous utilisez un ESP32 avec MicroPython, consultez le guide ESP32 - Premiers pas. pour des instructions étape par étape.
- Connectez la carte ESP32 au module d'affichage 7 segments 4 chiffres selon le schéma fourni.
- Connectez la carte ESP32 à votre ordinateur avec un câble USB.
- Ouvrez Thonny IDE sur votre ordinateur.
- Dans Thonny IDE, allez dans Outils Options.
- Dans l'onglet Interpréteur, choisissez MicroPython (ESP32) dans le menu déroulant.
- Assurez-vous que le bon port est sélectionné. Thonny IDE le détecte généralement automatiquement, mais vous devrez peut-être le sélectionner manuellement (comme COM3 sur Windows ou /dev/ttyUSB0 sur Linux).
- Naviguez vers Outils Gérer les packages dans Thonny IDE.
- Recherchez "DIYables-MicroPython-4Digit7Segment-74HC595", puis trouvez la bibliothèque d'affichage 7 segments 4 chiffres créée par DIYables.
- Cliquez sur DIYables-MicroPython-4Digit7Segment-74HC595, puis cliquez sur le bouton Installer pour installer la bibliothèque.

- Copiez le code MicroPython fourni et collez-le dans l'éditeur de Thonny.
- Sauvegardez le code sur votre ESP32 en :
- Cliquant sur le bouton Enregistrer ou en appuyant sur Ctrl+S.
- Dans la boîte de dialogue d'enregistrement, choisissez Appareil MicroPython.
- Nommez le fichier main.py.
- Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script.
- Observez l'afficheur — vous devriez voir des nombres, du texte ou d'autres contenus apparaître sur l'afficheur 7 segments.
Modèle de Code de Démarrage
Code ESP32 — Afficher des Entiers
Essayez
- Câblez le module, connectez l'ESP32 via USB.
- Téléversez le code avec Thonny IDE.
- L'afficheur fait défiler plusieurs entiers (0, 42, 1234, -5, -123, 9999) et un nombre avec zéros de tête (0042).
Affichage d'Entiers
La méthode print() détecte automatiquement les entiers et les formate alignés à droite sur l'afficheur.
| Appel de méthode | Afficheur montre | Notes |
|---|---|---|
| display.print(0) | " 0" | Un seul chiffre, aligné à droite |
| display.print(42) | " 42" | Deux chiffres |
| display.print(1234) | "1234" | Quatre chiffres complets |
| display.print(-5) | " -5" | Négatif avec signe moins |
| display.print(-123) | "-123" | Négatif, largeur complète |
| display.print(9999) | "9999" | Valeur positive maximale |
| display.print(42, zero_pad=True) | "0042" | Zéros de tête |
Plage entière : -999 à 9999. Les valeurs hors de cette plage affichent "Err".
Code ESP32 — Afficher des Flottants
Affichage de Flottants
Le point décimal est automatiquement placé à la bonne position. Vous pouvez laisser la bibliothèque choisir le nombre de décimales, ou le spécifier manuellement.
| Appel de méthode | Afficheur montre | Notes |
|---|---|---|
| display.print(1.5) | " 1.5" | Décimales auto |
| display.print(12.34) | "12.34" | Auto — 2 décimales |
| display.print(3.141) | "3.141" | Auto — 3 décimales |
| display.print(23.5, decimal_places=1) | "23.5" | Forcé à 1 décimale |
| display.print(1.5, decimal_places=2) | " 1.50" | Forcé à 2 décimales avec zéro final |
| display.print(1.5, decimal_places=2, zero_pad=True) | "01.50" | Avec zéros de tête et 2 décimales |
Code ESP32 — Afficher du Texte, des Degrés et des Températures
Caractères Pris en Charge
L'afficheur peut afficher un sous-ensemble de caractères alphabétiques lisibles sur un afficheur 7 segments :
- Chiffres : 0-9
- Lettres : A, b, C, c, d, E, F, G, H, h, I, i, J, L, n, O, o, P, r, S, t, U, u, Y
- Spéciaux : ° (degré), - (tiret), _ (souligné), (espace)
Affichage de Températures
| Appel de méthode | Afficheur montre | Notes |
|---|---|---|
| display.print_temperature(25, 'C') | "25°C" | Celsius |
| display.print_temperature(72, 'F') | "72°F" | Fahrenheit |
| display.print_temperature(-5, 'C') | "-5°C" | Température négative |
| display.print_temperature(100, 'C') | "100°" | Pas de place pour l'unité |
Vous pouvez aussi construire des chaînes de température manuellement avec la constante DEGREE :
Gestion des Points dans les Chaînes
Un caractère . dans une chaîne active le point décimal sur le chiffre précédent plutôt que d'occuper sa propre position :
Code ESP32 — Afficher l'Heure
Affichage de l'Heure
Ce module possède uniquement des points (pas de deux-points). La méthode print_time() utilise le point sur le chiffre 1 (deuxième à partir de la gauche) comme séparateur horaire.
| Appel de méthode | Afficheur montre | Notes |
|---|---|---|
| display.print_time(12, 30) | "12.30" | Séparateur point activé |
| display.print_time(9, 5) | "09.05" | Zéros automatiques |
| display.print_time(12, 30, colon=False) | "12 30" | Séparateur point désactivé |
Effet de clignotement : Alternez le paramètre colon toutes les 500ms dans votre boucle principale pour créer un séparateur horaire clignotant.
Code ESP32 — Faire Clignoter l'Afficheur
Contrôle Marche/Arrêt de l'Afficheur
La méthode off() arrête le timer de rafraîchissement automatique et éteint tous les segments. La méthode on() redémarre le timer — l'afficheur reprend en montrant ce qui a été affiché en dernier.
| Méthode | Action | Notes |
|---|---|---|
| display.off() | Arrêter l'afficheur et effacer tous les segments | Le timer est arrêté |
| display.on() | Redémarrer l'afficheur avec le contenu actuel | Le timer reprend |
| display.clear() | Effacer le tampon d'affichage | L'afficheur montre du blanc |
Utilisez off() et on() dans une boucle pour créer un effet de clignotement. Le contenu de l'afficheur (défini par print()) est préservé pendant off().
Résumé de l'API
Pour la référence complète de l'API avec des paramètres et exemples détaillés, consultez la Référence de la Bibliothèque.
| Méthode | Description |
|---|---|
| print(value, decimal_places, zero_pad) | Afficher un entier, un flottant ou une chaîne (détection automatique du type) |
| print_temperature(temperature, unit) | Afficher une température avec le symbole ° |
| print_time(hours, minutes, colon) | Afficher l'heure HH.MM avec séparateur point |
| clear() | Effacer le tampon d'affichage |
| off() | Arrêter le rafraîchissement automatique et éteindre l'afficheur |
| on() | Redémarrer le rafraîchissement automatique |
| set_char(position, char) | Définir le caractère à la position (0-3) |
| set_number(position, number) | Définir le chiffre 0-9 à la position (0-3) |
| set_dot(position, state) | Définir le point décimal à la position (0-3) |
| set_segments(position, segments) | Définir les bits de segments bruts à la position (0-3) |
Prochaines Étapes
- Explorez la Référence de la Bibliothèque pour l'API complète incluant le contrôle bas niveau des segments.
- Combinez l'afficheur avec des capteurs (par ex. DHT11, DS18B20) pour construire un moniteur de température.
- Utilisez print_time() avec le RTC de l'ESP32 ou NTP pour construire une horloge simple.
- Ajoutez des boutons pour créer un minuteur à rebours ou un chronomètre.