ESP32 S3 - Écran 7 segments 4 chiffres TM1637

L'écran 7 segments 4 chiffres TM1637 est l'un des moyens les plus simples d'ajouter un affichage visuel à tout projet ESP32 S3, en utilisant seulement deux broches de données et une bibliothèque simple. Ce tutoriel vous guide à travers le câblage, la configuration de la bibliothèque, et cinq ateliers pratiques couvrant les chiffres, le texte, l'heure, les effets de clignotement, et le contrôle individuel des chiffres.

Ce que vous allez construire :

  1. Un affichage de chiffres qui montre des entiers de -999 à 9999
  2. Un affichage de texte et de température avec des symboles de degré
  3. Une horloge numérique avec un séparateur deux-points clignotant
  4. Des effets d'animation de clignotement et de luminosité
  5. Un contrôle individuel des chiffres pour des animations personnalisées
Écran 7 segments 4 chiffres TM1637 ESP32 S3

Matériel requis

1×ESP32 S3 WROOM N16R8
1×Alternativement: ESP32 S3 SuperMini Dev Module
1×Alternativement: ESP32 S3 Uno-form Board
1×Alternativement: ESP32 S3 Camera Board
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Afficheur 7 segments 4 chiffres TM1637
1×Fils de connexion
1×Recommandé: Screw Terminal Expansion Board for ESP32 S3
1×Recommandé: Breakout Expansion Board for ESP32 S3
1×Recommandé: Power Splitter for ESP32 S3

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module d'affichage TM1637

Le TM1637 est une puce driver LED dédiée qui contrôle quatre chiffres 7 segments via une interface série compacte à 2 fils, ce qui en fait une solution d'affichage idéale pour les projets de microcontrôleur où les broches GPIO sont rares. Elle gère en interne tout le multiplexage et le timing de rafraîchissement, de sorte que l'ESP32 S3 n'a besoin d'envoyer des données que lorsque la valeur affichée change. Le module fonctionne à la fois en logique 3,3 V et 5 V, ce qui signifie qu'il se connecte directement à la sortie 3,3 V de l'ESP32 S3 sans aucun décalage de niveau.

Spécifications clés

Le module TM1637 offre quatre chiffres, chacun composé de sept segments plus un point décimal. Un séparateur deux-points intégré se trouve entre le deuxième et le troisième chiffre, ce qui le rend idéal pour les affichages d'horloge. La luminosité est réglable sur huit niveaux (0 à 7) dans le micrologiciel. L'interface à 2 fils utilise une ligne CLK pour la synchronisation et une ligne bidirectionnelle DIO pour les données. Le contenu de l'écran reste allumé sans aucune charge de rafraîchissement constante sur le microcontrôleur.

Brochage du TM1637

Le module TM1637 expose quatre broches pour l'alimentation et la communication.

  1. CLK : Entrée de signal d'horloge qui synchronise les transferts de données
  2. DIO : Ligne bidirectionnelle d'entrée/sortie de données
  3. VCC : Alimentation, accepte 3,3 V ou 5 V
  4. GND : Référence de masse

Schéma de câblage

Connectez l'écran 4 chiffres TM1637 à votre ESP32 S3 en associant chaque broche du module à la broche correspondante sur la carte comme indiqué dans le tableau ci-dessous. Utiliser le rail 3,3 V garde les niveaux de signal cohérents avec les GPIO de l'ESP32 S3 et évite tout risque de surtension sur les lignes de données.

Notes de sécurité

Alimentez le TM1637 depuis la sortie 3,3 V de l'ESP32 S3 plutôt qu'en 5 V afin que les tensions de signal CLK et DIO restent dans la plage d'entrée sûre de la broche DIO bidirectionnelle du module. Assurez-vous que toutes les connexions de masse sont partagées entre le module d'affichage et la carte avant la mise sous tension.

Broche TM1637 Broche ESP32 S3
CLK GPIO39
DIO GPIO42
VCC 3.3V
GND GND
Schéma de câblage de l'écran 7 segments 4 chiffres TM1637 ESP32 S3

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Installer la bibliothèque TM1637

Avant de téléverser tout code, vous devez installer la bibliothèque DIYables_4Digit7Segment_TM1637, qui fournit une API propre et de haut niveau pour toutes les opérations d'affichage. La bibliothèque ne nécessite aucune dépendance supplémentaire et fonctionne sur toutes les plateformes compatibles Arduino, donc l'installation est simple via le gestionnaire de bibliothèques de l'Arduino IDE.

  1. Ouvrez l'Arduino IDE et lancez le gestionnaire de bibliothèques depuis la barre latérale gauche
  2. Recherchez "DIYables_4Digit7Segment_TM1637" dans la zone de recherche
  3. Cliquez sur Install sur l'entrée DIYables
  4. Confirmez que la bibliothèque apparaît dans votre liste de bibliothèques installées
Bibliothèque Arduino écran 7 segments 4 chiffres TM1637

Structure de base du code TM1637

Le code suivant montre le programme minimum nécessaire pour initialiser l'écran TM1637 et afficher un nombre à 4 chiffres sur l'ESP32 S3. Il inclut la bibliothèque, définit les deux broches GPIO, crée un objet d'écran, et appelle begin() avant d'afficher.

#include <DIYables_4Digit7Segment_TM1637.h> #define CLK_PIN 39 #define DIO_PIN 42 DIYables_4Digit7Segment_TM1637 display(CLK_PIN, DIO_PIN); void setup() { display.begin(); display.print(1234); } void loop() { }

Atelier 1 : Afficher des nombres entiers

L'atelier sur les entiers démontre comment afficher des nombres positifs, des nombres négatifs, zéro, et des valeurs complétées par des zéros sur le TM1637 avec l'ESP32 S3. Il couvre toute la plage numérique prise en charge par le driver et montre comment utiliser l'option de zéro non significatif.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-tm1637-4-digit-7-segment-display */ /* * DIYables_4Digit7Segment_TM1637 - Integer Example * * Displays various integer values on a 4-digit 7-segment display * with TM1637 driver, including zero-padded numbers. * * Tutorial: https://diyables.io/products/4-digit-7-segment-display-led-tm1637-with-colon * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4B Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables Nano R3: https://diyables.io/nano-board * - DIYables ESP32 Board: https://diyables.io/esp32-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_4Digit7Segment_TM1637.h> // Pin configuration - change to match your wiring #define CLK_PIN 39 #define DIO_PIN 42 DIYables_4Digit7Segment_TM1637 display(CLK_PIN, DIO_PIN); void setup() { Serial.begin(115200); display.begin(); Serial.println("TM1637 Integer Example"); } void loop() { // Display various integers int numbers[] = {0, 42, 1234, -5, -123, 9999}; int count = sizeof(numbers) / sizeof(numbers[0]); for (int i = 0; i < count; i++) { display.print(numbers[i]); Serial.print("Displaying: "); Serial.println(numbers[i]); delay(2000); } // Display with zero padding display.print(42, true); // Shows "0042" Serial.println("Displaying: 0042 (zero-padded)"); delay(2000); }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez le module TM1637 à l'ESP32 S3 en suivant le schéma de câblage ci-dessus
  3. Connectez l'ESP32 S3 à votre ordinateur avec un câble USB-C
  4. Ouvrez l'Arduino IDE et sélectionnez la bonne carte et le bon port
  5. Copiez le programme d'affichage d'entiers et collez-le dans l'Arduino IDE
  6. Cliquez sur Upload pour flasher le code vers votre carte
  7. Observez les différents nombres défiler sur l'écran 7 segments
  8. Ouvrez le moniteur série à 115200 bauds pour lire les messages d'état
  9. Astuce pro : Utilisez print(number, true) pour afficher des nombres avec des zéros non significatifs tels que "0042"

Sortie du moniteur série

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 10:23:15] Display initialized [2026-06-16 10:23:16] Showing: 0 [2026-06-16 10:23:17] Showing: 42 [2026-06-16 10:23:18] Showing: 1234 [2026-06-16 10:23:19] Showing: -5 [2026-06-16 10:23:20] Showing: -123 [2026-06-16 10:23:21] Showing: 9999 [2026-06-16 10:23:22] Showing: 0042 (zero-padded)
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Méthodes d'affichage d'entiers

Méthode Action Syntaxe
print(int) Affiche un entier (-999 à 9999) display.print(1234)
print(int, true) Affiche avec des zéros non significatifs display.print(42, true)
clear() Efface tous les chiffres display.clear()

Atelier 2 : Afficher du texte et la température

Cet atelier montre comment rendre de courtes chaînes de texte et des lectures de température avec des symboles de degré sur l'écran TM1637 de l'ESP32 S3. Le matériel 7 segments peut représenter un sous-ensemble utile de lettres, ce qui le rend adapté aux étiquettes d'état et aux affichages de capteurs.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-tm1637-4-digit-7-segment-display */ /* * DIYables_4Digit7Segment_TM1637 - TextAndDegree Example * * Displays text strings, special characters, and temperature * on a 4-digit 7-segment display with TM1637 driver. * * Tutorial: https://diyables.io/products/4-digit-7-segment-display-led-tm1637-with-colon * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4B Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables Nano R3: https://diyables.io/nano-board * - DIYables ESP32 Board: https://diyables.io/esp32-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_4Digit7Segment_TM1637.h> // Pin configuration - change to match your wiring #define CLK_PIN 39 #define DIO_PIN 42 DIYables_4Digit7Segment_TM1637 display(CLK_PIN, DIO_PIN); void setup() { Serial.begin(115200); display.begin(); Serial.println("TM1637 Text and Degree Example"); } void loop() { // Display text strings const char* texts[] = {"HELP", "Hi", "COOL", "done"}; for (int i = 0; i < 4; i++) { display.print(texts[i]); Serial.print("Displaying: "); Serial.println(texts[i]); delay(2000); } // Display temperature with degree symbol display.printTemperature(25, 'C'); // Shows "25°C" Serial.println("Displaying: 25 degrees C"); delay(2000); display.printTemperature(72, 'F'); // Shows "72°F" Serial.println("Displaying: 72 degrees F"); delay(2000); // Display string with degree constant char buf[5]; buf[0] = '2'; buf[1] = '5'; buf[2] = DIYables_4Digit7Segment_TM1637::DEGREE; buf[3] = 'C'; buf[4] = '\0'; display.print(buf); // Same as printTemperature(25, 'C') Serial.println("Displaying: 25 degrees C (via print)"); delay(2000); }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Confirmez que le câblage du TM1637 est sécurisé
  3. Téléversez le programme de texte et de température vers l'ESP32 S3
  4. Ouvrez le moniteur série à 115200 bauds
  5. Observez l'écran défiler entre les messages texte et les lectures de température
  6. Astuce pro : Le TM1637 peut rendre des lettres telles que H, E, L, P, C, o, n, et e — expérimentez avec des mots de quatre caractères utilisant uniquement ces glyphes

Sortie du moniteur série

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 11:05:22] TM1637 Text Demo Started [2026-06-16 11:05:23] Displaying: HELP [2026-06-16 11:05:25] Displaying: Hi [2026-06-16 11:05:27] Displaying: COOL [2026-06-16 11:05:29] Displaying: done [2026-06-16 11:05:31] Temperature: 25°C [2026-06-16 11:05:33] Temperature: 72°F
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Méthodes de texte et de température

Méthode Action Syntaxe
print(const char*) Affiche du texte (jusqu'à 4 caractères) display.print("HELP")
printTemperature(int, char) Affiche la température avec degré/unité display.printTemperature(25, 'C')
DEGREE Constante du symbole degré display.DEGREE

Atelier 3 : Afficher l'heure avec un deux-points clignotant

L'atelier sur l'heure crée un affichage d'horloge numérique sur l'ESP32 S3 avec les heures, les minutes, et un deux-points qui clignote à un intervalle d'une seconde. Le séparateur deux-points intégré du module TM1637 en fait le choix matériel parfait pour les projets d'horloge.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-tm1637-4-digit-7-segment-display */ /* * DIYables_4Digit7Segment_TM1637 - Time Example * * Displays time in HH:MM format with blinking colon separator * on a 4-digit 7-segment display with TM1637 driver. * * Tutorial: https://diyables.io/products/4-digit-7-segment-display-led-tm1637-with-colon * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4B Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables Nano R3: https://diyables.io/nano-board * - DIYables ESP32 Board: https://diyables.io/esp32-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_4Digit7Segment_TM1637.h> // Pin configuration - change to match your wiring #define CLK_PIN 39 #define DIO_PIN 42 DIYables_4Digit7Segment_TM1637 display(CLK_PIN, DIO_PIN); int hours = 12; int minutes = 30; bool colonOn = true; void setup() { Serial.begin(115200); display.begin(); Serial.println("TM1637 Time Example"); Serial.println("Displaying 12:30 with blinking colon"); } void loop() { display.printTime(hours, minutes, colonOn); delay(500); // Toggle colon every 500ms for blinking effect colonOn = !colonOn; }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Téléversez le programme d'affichage de l'heure vers votre ESP32 S3
  3. Observez "12:30" apparaître sur l'écran avec le deux-points clignotant toutes les 500 millisecondes
  4. Modifiez les valeurs d'heure et de minute dans le code pour définir une heure de départ différente
  5. Astuce pro : Utilisez millis() et l'arithmétique modulo pour créer des intervalles de clignotement fluides d'une seconde sans bloquer la boucle principale

Sortie du moniteur série

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 14:20:10] Time Display Demo [2026-06-16 14:20:10] Time: 12:30 (colon ON) [2026-06-16 14:20:11] Time: 12:30 (colon OFF) [2026-06-16 14:20:12] Time: 12:30 (colon ON) [2026-06-16 14:20:13] Time: 12:30 (colon OFF)
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Méthodes d'affichage de l'heure

Méthode Action Syntaxe
printTime(int, int) Affiche l'heure HHMM avec deux-points display.printTime(12, 30)
printTime(int, int, bool) Affiche l'heure, contrôle l'état du deux-points display.printTime(12, 30, false)

Atelier 4 : Faire clignoter l'écran

Cet atelier crée des effets de clignotement accrocheurs en activant et désactivant l'écran TM1637 de l'ESP32 S3 tout en préservant le contenu actuellement affiché. Comme le TM1637 conserve les données d'affichage en interne, vous n'avez pas besoin de renvoyer les valeurs après avoir appelé off().

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-tm1637-4-digit-7-segment-display */ /* * DIYables_4Digit7Segment_TM1637 - Blink Example * * Blinks integer and text on a 4-digit 7-segment display * using off() and on() to toggle the display. * * Tutorial: https://diyables.io/products/4-digit-7-segment-display-led-tm1637-with-colon * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4B Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables Nano R3: https://diyables.io/nano-board * - DIYables ESP32 Board: https://diyables.io/esp32-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_4Digit7Segment_TM1637.h> // Pin configuration - change to match your wiring #define CLK_PIN 39 #define DIO_PIN 42 DIYables_4Digit7Segment_TM1637 display(CLK_PIN, DIO_PIN); void setup() { Serial.begin(115200); display.begin(); Serial.println("TM1637 Blink Example"); } void loop() { // Blink an integer display.print(1234); Serial.println("Blinking: 1234"); for (int i = 0; i < 5; i++) { display.off(); delay(300); display.on(); delay(300); } delay(1000); // Blink text display.print("HELP"); Serial.println("Blinking: HELP"); for (int i = 0; i < 5; i++) { display.off(); delay(300); display.on(); delay(300); } delay(1000); }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Téléversez le programme de démonstration de clignotement vers votre carte
  3. Observez "1234" clignoter cinq fois, puis "HELP" clignoter cinq fois
  4. Ajustez les valeurs de délai pour contrôler la vitesse de clignotement
  5. Astuce pro : Le contenu de l'écran reste en mémoire lorsque vous appelez off() — pas besoin de renvoyer les données lorsque vous appelez on() à nouveau

Sortie du moniteur série

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 15:42:18] Blink Demo Started [2026-06-16 15:42:18] Blinking 1234 - cycle 1/5 [2026-06-16 15:42:19] Blinking 1234 - cycle 2/5 [2026-06-16 15:42:20] Blinking 1234 - cycle 3/5 [2026-06-16 15:42:21] Blinking 1234 - cycle 4/5 [2026-06-16 15:42:22] Blinking 1234 - cycle 5/5 [2026-06-16 15:42:23] Now blinking HELP...
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Méthodes de clignotement et de luminosité

Méthode Action Syntaxe
off() Éteint l'écran (données préservées) display.off()
on() Rallume l'écran display.on()
setBrightness(int) Définit la luminosité 0-7 display.setBrightness(4)

Atelier 5 : Contrôle individuel des chiffres

Le contrôle individuel des chiffres vous offre le niveau de précision le plus fin sur l'écran TM1637 de l'ESP32 S3, vous permettant de définir chacune des quatre positions avec un nombre, un caractère, ou un motif de segment brut indépendant. Cette capacité est la base du texte défilant, des séquences animées, et des glyphes personnalisés.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-tm1637-4-digit-7-segment-display */ /* * DIYables_4Digit7Segment_TM1637 - IndividualDigits Example * * Sets individual digits, characters, and colon on a 4-digit * 7-segment display with TM1637 driver. * * Tutorial: https://diyables.io/products/4-digit-7-segment-display-led-tm1637-with-colon * * TESTED HARDWARE: * - Arduino Uno R3 * - Arduino Uno R4 WiFi * - Arduino Uno R4 Minima * - Arduino Mega * - Arduino Due * - Arduino Giga * - DIYables STEM V3: https://diyables.io/stem-v3 * - DIYables STEM V4 IoT: https://diyables.io/stem-v4-iot * - DIYables STEM V4B IoT: https://diyables.io/stem-v4b-iot * - DIYables STEM V4B Edu: https://diyables.io/stem-v4-edu * - DIYables MEGA2560 R3: https://diyables.io/atmega2560-board * - DIYables Nano R3: https://diyables.io/nano-board * - DIYables ESP32 Board: https://diyables.io/esp32-board * - DIYables ESP32 S3, Uno-form factor: https://diyables.io/esp32-s3-uno * - It is expected to work with other boards */ #include <DIYables_4Digit7Segment_TM1637.h> // Pin configuration - change to match your wiring #define CLK_PIN 39 #define DIO_PIN 42 DIYables_4Digit7Segment_TM1637 display(CLK_PIN, DIO_PIN); void setup() { Serial.begin(115200); display.begin(); Serial.println("TM1637 Individual Digits Example"); } void loop() { // Set individual numbers on each digit position display.clear(); display.setNumber(0, 1); display.setNumber(1, 2); display.setNumber(2, 3); display.setNumber(3, 4); Serial.println("Displaying: 1234"); delay(2000); // Turn colon on display.setColon(true); Serial.println("Displaying: 12:34"); delay(2000); // Turn colon off display.setColon(false); Serial.println("Displaying: 1234"); delay(2000); // Set individual characters display.clear(); display.setChar(0, 'H'); display.setChar(1, 'E'); display.setChar(2, 'L'); display.setChar(3, 'P'); Serial.println("Displaying: HELP"); delay(2000); // Mix characters and numbers with colon display.clear(); display.setChar(0, 'A'); display.setNumber(1, 3); display.setChar(2, 'b'); display.setNumber(3, 7); display.setColon(true); Serial.println("Displaying: A3:b7"); delay(2000); // Blinking colon effect display.clear(); display.setNumber(0, 1); display.setNumber(1, 2); display.setNumber(2, 3); display.setNumber(3, 0); Serial.println("Blinking colon: 12:30"); for (int i = 0; i < 5; i++) { display.setColon(true); delay(500); display.setColon(false); delay(500); } delay(1000); }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Téléversez le programme de contrôle individuel des chiffres vers votre carte
  3. Observez différentes combinaisons de chiffres apparaître à chaque position
  4. Essayez setSegments() pour un contrôle complet sur les segments individuels
  5. Astuce pro : Les positions des chiffres vont de 0 à 3 de gauche à droite — utilisez des boucles pour créer des animations de défilement fluides

Sortie du moniteur série

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 16:30:44] Individual Digit Control Demo [2026-06-16 16:30:44] Setting digit 0 = 1 [2026-06-16 16:30:45] Setting digit 1 = 2 [2026-06-16 16:30:46] Setting digit 2 = 3 [2026-06-16 16:30:47] Setting digit 3 = 4 [2026-06-16 16:30:48] Displaying HELP with individual characters
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Méthodes de contrôle individuel des chiffres

Méthode Action Syntaxe
setNumber(int, int) Définit le chiffre 0-9 à la position 0-3 display.setNumber(0, 1)
setChar(int, char) Définit le caractère à la position 0-3 display.setChar(0, 'H')
setColon(bool) Contrôle l'activation/désactivation du deux-points display.setColon(true)
setSegments(int, uint8_t) Définit les segments bruts à la position 0-3 display.setSegments(0, 0x76)

Dépannage des problèmes d'affichage TM1637

Problèmes courants lors de l'utilisation de l'écran 4 chiffres TM1637 avec l'ESP32 S3 et leurs solutions.

Problème Cause possible Résolution
L'écran est vide Câblage ou numéros de broches incorrects Vérifiez que les connexions CLK/DIO correspondent au code et que VCC va au 3.3V
Caractères incorrects CLK et DIO inversés Échangez les deux fils de signal
Écran trop faible Réglage de luminosité bas Appelez setBrightness(7) pour le maximum
Bibliothèque introuvable Non installée Installez DIYables_4Digit7Segment_TM1637 depuis le gestionnaire de bibliothèques
Le téléversement échoue Carte dans le mauvais mode Maintenez le bouton BOOT enfoncé tout en appuyant sur RESET, puis réessayez le téléversement
Écran qui scintille Connexions lâches Vérifiez toutes les connexions de fils et réinsérez les fils de raccordement
Caractères aléatoires Bruit électrique Ajoutez un condensateur de 100nF entre VCC et GND près du module

Applications réelles

L'ESP32 S3 combiné à l'écran TM1637 est un appariement polyvalent adapté à un large éventail de projets embarqués pratiques.

  1. Minuteur de cuisine : Construisez un compte à rebours numérique avec alerte sonore pour la cuisine ou les entraînements
  2. Moniteur de température : Affichez la température ambiante actuelle depuis un capteur en temps réel
  3. Chronomètre de tour : Créez un chronomètre de tour de précision pour les courses ou les sessions de jeu
  4. Compteur de visiteurs : Concevez un compteur de personnes pour une entrée de maison ou de bureau
  5. Moniteur d'alimentation : Affichez les lectures de tension ou de courant d'un circuit de surveillance d'alimentation
  6. Tableau de score : Construisez un tableau de score pour des jeux et compétitions avec des commandes par boutons
  7. Horloge NTP : Fabriquez une horloge temps réel qui se synchronise avec des serveurs NTP via le Wi-Fi intégré de l'ESP32 S3

Tutoriel vidéo

Regardez le tutoriel vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.

...VIDEO ...VIDEO

Défiez-vous

Ces défis de projet sont conçus pour pousser vos compétences TM1637 avec l'ESP32 S3 au-delà des bases et vers des appareils autonomes réellement utiles.

  1. Débutant : Ajoutez un bouton pour parcourir les modes d'affichage — heure, température, et un compteur
  2. Débutant : Créez un chronomètre avec un contrôle par bouton de démarrage et d'arrêt
  3. Intermédiaire : Construisez un compte à rebours qui déclenche un buzzer en atteignant zéro
  4. Intermédiaire : Affichez la force du signal Wi-Fi sous forme de valeur numérique en dBm en utilisant la pile sans fil de l'ESP32 S3
  5. Avancé : Créez un bandeau de texte défilant qui affiche des messages de plus de quatre caractères
  6. Avancé : Construisez un thermomètre utilisant un capteur DHT22 avec l'ESP32 S3 et l'écran TM1637
  7. Avancé : Fabriquez une horloge temps réel qui se synchronise automatiquement avec des serveurs NTP via Wi-Fi

Compatibilité des plateformes

La bibliothèque DIYables_4Digit7Segment_TM1637 fonctionne sur toutes les plateformes compatibles Arduino, y compris ESP32, ESP8266, Arduino Uno, Nano, Mega, et plus encore (architectures=*).

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !