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:
- Eine Zahlenanzeige, die Ganzzahlen von -999 bis 9999 darstellt
- Eine Text- und Temperaturanzeige mit Gradzeichen
- Eine Digitaluhr mit blinkendem Doppelpunkt
- Blink- und Helligkeitseffekte
- Steuerung einzelner Stellen für eigene Animationen

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Ü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.
- CLK: Takteingang, der die Datenübertragung synchronisiert
- DIO: Bidirektionale Daten-Ein-/Ausgangsleitung
- VCC: Stromversorgung, akzeptiert 3,3 V oder 5 V
- 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 |

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.
- Öffnen Sie die Arduino IDE und starten Sie den Bibliotheksverwalter über die linke Seitenleiste
- Suchen Sie im Suchfeld nach "DIYables_4Digit7Segment_TM1637"
- Klicken Sie beim Eintrag von DIYables auf Install
- Prüfen Sie, ob die Bibliothek in der Liste Ihrer installierten Bibliotheken erscheint

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.
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.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Verdrahten Sie das TM1637-Modul gemäß dem obigen Verdrahtungsplan mit dem ESP32 S3
- Verbinden Sie den ESP32 S3 über ein USB-C-Kabel mit Ihrem Computer
- Öffnen Sie die Arduino IDE und wählen Sie das richtige Board und den richtigen Port aus
- Kopieren Sie den Sketch zur Ganzzahlanzeige und fügen Sie ihn in die Arduino IDE ein
- Klicken Sie auf Upload, um den Code auf Ihr Board zu übertragen
- Beobachten Sie, wie auf der 7-Segment-Anzeige verschiedene Zahlen durchlaufen
- Öffnen Sie den seriellen Monitor mit 115200 Baud, um Statusmeldungen zu lesen
- Profi-Tipp: Verwenden Sie print(number, true), um Zahlen mit führenden Nullen wie "0042" anzuzeigen
Ausgabe im seriellen Monitor
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.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Prüfen Sie, ob die Verdrahtung des TM1637 fest sitzt
- Laden Sie den Text- und Temperatur-Sketch auf den ESP32 S3 hoch
- Öffnen Sie den seriellen Monitor mit 115200 Baud
- Beobachten Sie, wie die Anzeige Textnachrichten und Temperaturwerte durchläuft
- 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
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.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Laden Sie den Sketch zur Uhrzeitanzeige auf Ihren ESP32 S3 hoch
- Beobachten Sie, wie "12:30" auf der Anzeige erscheint und der Doppelpunkt alle 500 Millisekunden blinkt
- Ändern Sie die Stunden- und Minutenwerte im Code, um eine andere Startzeit einzustellen
- 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
Methoden zur Uhrzeitanzeige
| Methode | Aktion | Syntax | |
|---|---|---|---|
| printTime(int, int) | Uhrzeit HH | MM 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.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Laden Sie den Blink-Demo-Sketch auf Ihr Board hoch
- Beobachten Sie, wie "1234" fünfmal und dann "HELP" fünfmal blinkt
- Passen Sie die Verzögerungswerte an, um die Blinkgeschwindigkeit zu steuern
- 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
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.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Laden Sie den Sketch zur Steuerung einzelner Stellen auf Ihr Board hoch
- Beobachten Sie, wie an jeder Position unterschiedliche Ziffernkombinationen erscheinen
- Probieren Sie setSegments() für die vollständige Kontrolle über einzelne Segmente aus
- 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
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.
- Küchentimer: Einen digitalen Countdown-Timer mit akustischem Alarm zum Kochen oder für das Training bauen
- Temperaturüberwachung: Die aktuelle Raumtemperatur eines Sensors in Echtzeit anzeigen
- Rundenzeitmesser: Einen präzisen Rundenzeitmesser für Rennen oder Spielsitzungen erstellen
- Besucherzähler: Einen Personenzähler für einen Hauseingang oder eine Bürotür entwerfen
- Leistungsmonitor: Spannungs- oder Stromwerte einer Leistungsmessschaltung anzeigen
- Punktezähler: Eine Anzeigetafel für Spiele und Wettbewerbe mit Tastersteuerung bauen
- 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.
- Anfänger: Einen Taster hinzufügen, um zwischen den Anzeigemodi Uhrzeit, Temperatur und Zähler zu wechseln
- Anfänger: Eine Stoppuhr mit Start- und Stopp-Taster erstellen
- Fortgeschritten: Einen Countdown-Timer bauen, der beim Erreichen von Null einen Summer auslöst
- Fortgeschritten: Die WLAN-Signalstärke als numerischen dBm-Wert mithilfe des Funk-Stacks des ESP32 S3 anzeigen
- Experte: Einen Lauftext erstellen, der Nachrichten mit mehr als vier Zeichen anzeigt
- Experte: Ein Thermometer mit einem DHT22-Sensor, dem ESP32 S3 und der TM1637-Anzeige bauen
- 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=*).