ESP32 S3 - TM1637 4-stellige 7-Segment-Anzeige

Die TM1637 4-stellige 7-Segment-Anzeige ist eine der einfachsten Möglichkeiten, einem ESP32-S3-Projekt eine visuelle Anzeige hinzuzufügen – mit nur zwei Datenpins und einer einfachen Bibliothek. Dieses Tutorial führt Sie durch Verdrahtung, Bibliothekseinrichtung und fünf praktische Workshops zu Zahlen, Text, Uhrzeit, Blinkeffekten und der Steuerung einzelner Stellen.

Was Sie bauen werden:

  1. Eine Zahlenanzeige, die Ganzzahlen von -999 bis 9999 darstellt
  2. Eine Text- und Temperaturanzeige mit Gradzeichen
  3. Eine Digitaluhr mit blinkendem Doppelpunkt
  4. Blink- und Helligkeitseffekte
  5. Steuerung einzelner Stellen für eigene Animationen
ESP32 S3 TM1637 4-stellige 7-Segment-Anzeige

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×TM1637 4-stellige 7-Segment-Anzeige
1×Verbindungskabel
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Überblick über the TM1637 Display Module

Der TM1637 ist ein spezieller LED-Treiberchip, der vier 7-Segment-Stellen über eine kompakte serielle 2-Draht-Schnittstelle steuert. Damit ist er eine ideale Anzeigelösung für Mikrocontroller-Projekte, bei denen GPIO-Pins knapp sind. Er übernimmt das gesamte Multiplexing und die Aktualisierung intern, sodass der ESP32 S3 nur Daten senden muss, wenn sich der angezeigte Wert ändert. Das Modul arbeitet sowohl mit 3,3-V- als auch mit 5-V-Logik und lässt sich daher ohne Pegelwandler direkt an den 3,3-V-Ausgang des ESP32 S3 anschließen.

Wichtige Spezifikationen

Das TM1637-Modul bietet vier Stellen, die jeweils aus sieben Segmenten und einem Dezimalpunkt bestehen. Ein integrierter Doppelpunkt zwischen der zweiten und dritten Stelle macht es ideal für Uhrenanzeigen. Die Helligkeit ist in der Firmware in acht Stufen (0 bis 7) einstellbar. Die 2-Draht-Schnittstelle verwendet eine CLK-Leitung zur Synchronisation und eine bidirektionale DIO-Leitung für die Daten. Die Anzeigeinhalte bleiben sichtbar, ohne dass der Mikrocontroller sie ständig aktualisieren muss.

TM1637 Pinbelegung

Das TM1637-Modul hat vier Pins für Stromversorgung und Kommunikation.

  1. CLK: Takteingang, der die Datenübertragung synchronisiert
  2. DIO: Bidirektionale Daten-Ein-/Ausgangsleitung
  3. VCC: Stromversorgung, akzeptiert 3,3 V oder 5 V
  4. GND: Massebezug

Verdrahtungsdiagramm

Verbinden Sie die TM1637 4-stellige Anzeige mit Ihrem ESP32 S3, indem Sie jeden Pin des Moduls wie in der folgenden Tabelle gezeigt mit dem entsprechenden Pin des Boards verbinden. Durch die Verwendung der 3,3-V-Schiene bleiben die Signalpegel mit den GPIOs des ESP32 S3 kompatibel, und es besteht keine Gefahr einer Überspannung auf den Datenleitungen.

Sicherheitshinweise

Versorgen Sie das TM1637 über den 3,3-V-Ausgang des ESP32 S3 statt über 5 V, damit die Signalspannungen von CLK und DIO im sicheren Eingangsbereich des bidirektionalen DIO-Pins des Moduls bleiben. Stellen Sie sicher, dass Anzeigemodul und Board eine gemeinsame Masse haben, bevor Sie die Stromversorgung einschalten.

TM1637 Pin ESP32 S3 Pin
CLK GPIO39
DIO GPIO42
VCC 3.3V
GND GND
Verdrahtungsplan ESP32 S3 TM1637 4-stellige 7-Segment-Anzeige

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Installation der TM1637-Bibliothek

Bevor Sie Code hochladen, müssen Sie die Bibliothek DIYables_4Digit7Segment_TM1637 installieren, die eine übersichtliche, komfortable API für alle Anzeigefunktionen bietet. Die Bibliothek benötigt keine weiteren Abhängigkeiten und funktioniert auf allen Arduino-kompatiblen Plattformen, sodass die Installation über den Bibliotheksverwalter der Arduino IDE unkompliziert ist.

  1. Öffnen Sie die Arduino IDE und starten Sie den Bibliotheksverwalter über die linke Seitenleiste
  2. Suchen Sie im Suchfeld nach "DIYables_4Digit7Segment_TM1637"
  3. Klicken Sie beim Eintrag von DIYables auf Install
  4. Prüfen Sie, ob die Bibliothek in der Liste Ihrer installierten Bibliotheken erscheint
Arduino-Bibliothek für TM1637 4-stellige 7-Segment-Anzeige

Grundstruktur des TM1637-Codes

Der folgende Code zeigt den minimalen Sketch, der nötig ist, um die TM1637-Anzeige zu initialisieren und eine 4-stellige Zahl auf dem ESP32 S3 anzuzeigen. Er bindet die Bibliothek ein, definiert die beiden GPIO-Pins, erstellt ein Anzeigeobjekt und ruft begin() auf, bevor er ausgibt.

#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() { }

Workshop 1: Ganzzahlen anzeigen

Der Ganzzahl-Workshop zeigt, wie Sie positive Zahlen, negative Zahlen, Null und mit Nullen aufgefüllte Werte mit dem ESP32 S3 auf dem TM1637 anzeigen. Er deckt den gesamten vom Treiber unterstützten Zahlenbereich ab und zeigt, wie die Option für führende Nullen verwendet wird.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Verdrahten Sie das TM1637-Modul gemäß dem obigen Verdrahtungsplan mit dem ESP32 S3
  3. Verbinden Sie den ESP32 S3 über ein USB-C-Kabel mit Ihrem Computer
  4. Öffnen Sie die Arduino IDE und wählen Sie das richtige Board und den richtigen Port aus
  5. Kopieren Sie den Sketch zur Ganzzahlanzeige und fügen Sie ihn in die Arduino IDE ein
  6. Klicken Sie auf Upload, um den Code auf Ihr Board zu übertragen
  7. Beobachten Sie, wie auf der 7-Segment-Anzeige verschiedene Zahlen durchlaufen
  8. Öffnen Sie den seriellen Monitor mit 115200 Baud, um Statusmeldungen zu lesen
  9. Profi-Tipp: Verwenden Sie print(number, true), um Zahlen mit führenden Nullen wie "0042" anzuzeigen

Ausgabe im seriellen Monitor

∞
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

Methoden zur Ganzzahlanzeige

Methode Aktion Syntax
print(int) Eine Ganzzahl anzeigen (-999 bis 9999) display.print(1234)
print(int, true) Mit führenden Nullen anzeigen display.print(42, true)
clear() Alle Stellen löschen display.clear()

Workshop 2: Text und Temperatur anzeigen

Dieser Workshop zeigt, wie Sie kurze Textzeichenfolgen und Temperaturwerte mit Gradzeichen auf der TM1637-Anzeige am ESP32 S3 darstellen. Die 7-Segment-Hardware kann eine nützliche Teilmenge von Buchstaben darstellen und eignet sich daher für Statusanzeigen und Sensorwerte.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Prüfen Sie, ob die Verdrahtung des TM1637 fest sitzt
  3. Laden Sie den Text- und Temperatur-Sketch auf den ESP32 S3 hoch
  4. Öffnen Sie den seriellen Monitor mit 115200 Baud
  5. Beobachten Sie, wie die Anzeige Textnachrichten und Temperaturwerte durchläuft
  6. Profi-Tipp: Der TM1637 kann Buchstaben wie H, E, L, P, C, o, n und e darstellen – experimentieren Sie mit Wörtern aus vier Zeichen, die nur diese Zeichen verwenden

Ausgabe im seriellen Monitor

∞
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

Methoden für Text und Temperatur

Methode Aktion Syntax
print(const char*) Text anzeigen (bis zu 4 Zeichen) display.print("HELP")
printTemperature(int, char) Temperatur mit Grad/Einheit anzeigen display.printTemperature(25, 'C')
DEGREE Konstante für das Gradzeichen display.DEGREE

Workshop 3: Uhrzeit mit blinkendem Doppelpunkt anzeigen

Der Uhrzeit-Workshop erstellt auf dem ESP32 S3 eine Digitaluhranzeige mit Stunden, Minuten und einem Doppelpunkt, der im Sekundentakt blinkt. Der integrierte Doppelpunkt des TM1637-Moduls macht es zur perfekten Hardware für Uhrenprojekte.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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; }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Laden Sie den Sketch zur Uhrzeitanzeige auf Ihren ESP32 S3 hoch
  3. Beobachten Sie, wie "12:30" auf der Anzeige erscheint und der Doppelpunkt alle 500 Millisekunden blinkt
  4. Ändern Sie die Stunden- und Minutenwerte im Code, um eine andere Startzeit einzustellen
  5. Profi-Tipp: Verwenden Sie millis() und Modulo-Arithmetik, um gleichmäßige Blinkintervalle von einer Sekunde zu erzeugen, ohne die Hauptschleife zu blockieren

Ausgabe im seriellen Monitor

∞
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

Methoden zur Uhrzeitanzeige

Methode Aktion Syntax
printTime(int, int) Uhrzeit HHMM mit Doppelpunkt anzeigen display.printTime(12, 30)
printTime(int, int, bool) Uhrzeit anzeigen, Doppelpunkt steuern display.printTime(12, 30, false)

Workshop 4: Die Anzeige blinken lassen

Dieser Workshop erzeugt auffällige Blinkeffekte, indem die TM1637-Anzeige am ESP32 S3 ein- und ausgeschaltet wird, während der aktuell angezeigte Inhalt erhalten bleibt. Da der TM1637 die Anzeigedaten intern speichert, müssen Sie die Werte nach dem Aufruf von off() nicht erneut senden.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Laden Sie den Blink-Demo-Sketch auf Ihr Board hoch
  3. Beobachten Sie, wie "1234" fünfmal und dann "HELP" fünfmal blinkt
  4. Passen Sie die Verzögerungswerte an, um die Blinkgeschwindigkeit zu steuern
  5. Profi-Tipp: Der Anzeigeinhalt bleibt beim Aufruf von off() im Speicher erhalten – Sie müssen beim erneuten Aufruf von on() keine Daten erneut senden

Ausgabe im seriellen Monitor

∞
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

Methoden für Blinken und Helligkeit

Methode Aktion Syntax
off() Anzeige ausschalten (Daten bleiben erhalten) display.off()
on() Anzeige wieder einschalten display.on()
setBrightness(int) Helligkeit 0-7 einstellen display.setBrightness(4)

Workshop 5: Steuerung einzelner Stellen

Die Steuerung einzelner Stellen bietet Ihnen die höchste Präzision bei der TM1637-Anzeige am ESP32 S3. Sie können jede der vier Positionen unabhängig auf eine Zahl, ein Zeichen oder ein rohes Segmentmuster setzen. Diese Fähigkeit ist die Grundlage für Lauftext, animierte Sequenzen und eigene Zeichen.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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); }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Laden Sie den Sketch zur Steuerung einzelner Stellen auf Ihr Board hoch
  3. Beobachten Sie, wie an jeder Position unterschiedliche Ziffernkombinationen erscheinen
  4. Probieren Sie setSegments() für die vollständige Kontrolle über einzelne Segmente aus
  5. Profi-Tipp: Die Stellenpositionen reichen von 0–3 von links nach rechts – verwenden Sie Schleifen, um flüssige Laufanimationen zu erstellen

Ausgabe im seriellen Monitor

∞
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

Methoden zur Steuerung einzelner Stellen

Methode Aktion Syntax
setNumber(int, int) Ziffer 0-9 an Position 0-3 setzen display.setNumber(0, 1)
setChar(int, char) Zeichen an Position 0-3 setzen display.setChar(0, 'H')
setColon(bool) Doppelpunkt ein-/ausschalten display.setColon(true)
setSegments(int, uint8_t) Rohe Segmente an Position 0-3 setzen display.setSegments(0, 0x76)

Fehlerbehebung bei der TM1637-Anzeige

Häufige Probleme bei der Verwendung der TM1637 4-stelligen Anzeige mit dem ESP32 S3 und deren Lösungen.

Problem Mögliche Ursache Lösung
Anzeige bleibt leer Falsche Verdrahtung oder Pinnummern Prüfen, ob die CLK/DIO-Verbindungen mit dem Code übereinstimmen und VCC an 3,3 V liegt
Falsche Zeichen CLK und DIO vertauscht Die beiden Signaldrähte tauschen
Anzeige zu dunkel Niedrige Helligkeitseinstellung setBrightness(7) für maximale Helligkeit aufrufen
Bibliothek nicht gefunden Nicht installiert DIYables_4Digit7Segment_TM1637 über den Bibliotheksverwalter installieren
Upload schlägt fehl Board im falschen Modus Die BOOT-Taste gedrückt halten, während RESET gedrückt wird, dann den Upload wiederholen
Flackernde Anzeige Lockere Verbindungen Alle Drahtverbindungen prüfen und Jumperkabel neu einstecken
Zufällige Zeichen Elektrische Störungen Einen 100-nF-Kondensator zwischen VCC und GND nahe am Modul einsetzen

Praxisanwendungen

Der ESP32 S3 in Kombination mit der TM1637-Anzeige ist ein vielseitiges Paar, das sich für eine Vielzahl praktischer Embedded-Projekte eignet.

  1. Küchentimer: Einen digitalen Countdown-Timer mit akustischem Alarm zum Kochen oder für das Training bauen
  2. Temperaturüberwachung: Die aktuelle Raumtemperatur eines Sensors in Echtzeit anzeigen
  3. Rundenzeitmesser: Einen präzisen Rundenzeitmesser für Rennen oder Spielsitzungen erstellen
  4. Besucherzähler: Einen Personenzähler für einen Hauseingang oder eine Bürotür entwerfen
  5. Leistungsmonitor: Spannungs- oder Stromwerte einer Leistungsmessschaltung anzeigen
  6. Punktezähler: Eine Anzeigetafel für Spiele und Wettbewerbe mit Tastersteuerung bauen
  7. NTP-Uhr: Eine Echtzeituhr bauen, die sich über das integrierte WLAN des ESP32 S3 mit NTP-Servern synchronisiert

Video-Tutorial

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32-S3-Projekt an.

...VIDEO ...VIDEO

Fordern Sie sich heraus

Diese Projektherausforderungen sollen Ihre Fähigkeiten mit dem ESP32 S3 und dem TM1637 über die Grundlagen hinaus erweitern und zu wirklich nützlichen eigenständigen Geräten führen.

  1. Anfänger: Einen Taster hinzufügen, um zwischen den Anzeigemodi Uhrzeit, Temperatur und Zähler zu wechseln
  2. Anfänger: Eine Stoppuhr mit Start- und Stopp-Taster erstellen
  3. Fortgeschritten: Einen Countdown-Timer bauen, der beim Erreichen von Null einen Summer auslöst
  4. Fortgeschritten: Die WLAN-Signalstärke als numerischen dBm-Wert mithilfe des Funk-Stacks des ESP32 S3 anzeigen
  5. Experte: Einen Lauftext erstellen, der Nachrichten mit mehr als vier Zeichen anzeigt
  6. Experte: Ein Thermometer mit einem DHT22-Sensor, dem ESP32 S3 und der TM1637-Anzeige bauen
  7. Experte: Eine Echtzeituhr bauen, die sich automatisch über WLAN mit NTP-Servern synchronisiert

Plattformkompatibilität

Die Bibliothek DIYables_4Digit7Segment_TM1637 funktioniert auf allen Arduino-kompatiblen Plattformen, einschließlich ESP32, ESP8266, Arduino Uno, Nano, Mega und weiteren (architectures=*).

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!