ESP32 MicroPython - 4-stellige 7-Segment-Anzeige TM1637
Der ESP32 ist ein leistungsstarker Mikrocontroller mit WLAN, der in IoT- und Embedded-Projekten weit verbreitet ist. In Kombination mit MicroPython und dem DIYables TM1637 4-stelligen 7-Segment-Anzeigemodul können Sie ganz einfach Zahlen, Text, Temperatur und Uhrzeit auf einer hellen LED-Anzeige darstellen.
Dieses Tutorial führt Sie durch:
- Das Anschließen der TM1637 4-stelligen 7-Segment-Anzeige an einen ESP32 — es werden nur 2 Datenpins benötigt.
- Die Anzeige von Ganzzahlen mit optionalem Auffüllen mit Nullen.
- Die Anzeige von Text und Sonderzeichen (Gradzeichen).
- Die Anzeige der Uhrzeit im Format HH:MM mit blinkendem Doppelpunkt.
- Die Steuerung der Anzeigehelligkeit (8 Stufen).
- Das Blinken der Anzeige mit off()/on().

Benötigte Komponenten
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Das TM1637 4-stellige 7-Segment-Anzeigemodul
Der TM1637 ist ein spezieller LED-Treiber-IC, der sowohl das Multiplexing als auch die Segmentansteuerung für bis zu 6 Stellen übernimmt. Dieses Modul verwendet ihn, um eine 4-stellige 7-Segment-LED-Anzeige mit einem Doppelpunkt zwischen der zweiten und dritten Stelle anzusteuern, was es ideal für Uhren- und Timer-Anwendungen macht.
Im Gegensatz zu Anzeigen auf Schieberegister-Basis (wie 74HC595) verfügt der TM1637 über einen eingebauten Anzeigespeicher. Sobald Sie Daten auf den Chip schreiben, hält er die Anzeige automatisch beleuchtet — es ist kein Timer-Interrupt und keine Aktualisierungsschleife nötig. Der TM1637 unterstützt außerdem 8 Helligkeitsstufen (0–7) und verwendet nur 2 GPIO-Pins (CLK und DIO) für die Kommunikation.
Das Modul kommuniziert über ein 2-Draht-Seriellprotokoll, das I2C ähnelt (aber kein Standard-I2C ist). Die Bibliothek übernimmt alle Protokolldetails — Sie rufen einfach Methoden wie print() und print_time() auf.
Pinbeschreibung
| Pin | Zweck | ESP32-Anschluss |
|---|---|---|
| CLK | Serieller Takteingang | Mit GPIO21 verbinden |
| DIO | Serieller Datenein-/-ausgang | Mit GPIO22 verbinden |
| VCC | Stromversorgung 3,3V bis 5V | Mit 3.3V verbinden |
| GND | Masse | Mit GND verbinden |

Verdrahtung
Der ESP32 arbeitet mit 3,3V-Logik. Das TM1637-Modul funktioniert sowohl mit 3,3V als auch mit 5V und ist daher ohne Pegelwandler direkt mit dem ESP32 kompatibel.
| TM1637-Modul | ESP32 | Hinweise |
|---|---|---|
| CLK | GPIO21 | Taktleitung |
| DIO | GPIO22 | Daten-E/A-Leitung |
| VCC | 3.3V | Stromversorgung |
| GND | GND | Masse |

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Tipp: Sie können beliebige freie GPIO-Pins des ESP32 verwenden. Passen Sie einfach die Pinnummern im Code an.
Schnelle Schritte
Hier finden Sie eine Anleitung, wie Sie Ihren MicroPython-Code mit der Thonny IDE auf dem ESP32 einrichten und ausführen:
- Stellen Sie sicher, dass die Thonny IDE auf Ihrem Computer installiert ist.
- Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board installiert ist.
- Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Getting Started mit Schritt-für-Schritt-Anweisungen.
- Verbinden Sie das ESP32-Board gemäß dem Schaltplan mit dem TM1637-Modul.
- Verbinden Sie das ESP32-Board über ein USB-Kabel mit Ihrem Computer.
- Öffnen Sie die Thonny IDE auf Ihrem Computer.
- Gehen Sie in der Thonny IDE zu Tools Options.
- Wählen Sie im Reiter Interpreter im Dropdown-Menü MicroPython (ESP32) aus.
- Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, eventuell müssen Sie ihn aber manuell auswählen (z. B. COM3 unter Windows oder /dev/ttyUSB0 unter Linux).
- Navigieren Sie in der Thonny IDE zu Tools Manage packages.
- Suchen Sie nach "DIYables-MicroPython-4Digit7Segment-TM1637" und finden Sie dann die TM1637 4-Digit 7-Segment Display-Bibliothek von DIYables.
- Klicken Sie auf DIYables-MicroPython-4Digit7Segment-TM1637 und dann auf die Schaltfläche Install, um die Bibliothek zu installieren.

- Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
- Speichern Sie den Code auf Ihrem ESP32:
- Klicken Sie auf die Schaltfläche Save oder drücken Sie Ctrl+S.
- Wählen Sie im Speicherdialog MicroPython device.
- Nennen Sie die Datei main.py.
- Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
- Beobachten Sie das Ergebnis — die 4-stellige 7-Segment-Anzeige zeigt je nach Beispiel Zahlen, Text oder die Uhrzeit an.
Vorlage für den Startcode
ESP32-Code — Ganzzahlen anzeigen
Ausprobieren
- Verdrahten Sie das Modul und verbinden Sie den ESP32 über USB.
- Laden Sie den Code mit der Thonny IDE hoch.
- Die Anzeige durchläuft mehrere Ganzzahlen (0, 42, 1234, -5, -123, 9999) und zeigt dann die mit Nullen aufgefüllte 42 als "0042" an.
Referenz zur Ganzzahlanzeige
| Methodenaufruf | Anzeige | Hinweise |
|---|---|---|
| display.print(0) | 0 | Rechtsbündige einzelne Ziffer |
| display.print(42) | 42 | Rechtsbündig |
| display.print(1234) | 1234 | Alle 4 Stellen belegt |
| display.print(-5) | -5 | Minuszeichen + Ziffer |
| display.print(-123) | -123 | Maximal 3-stellige negative Zahl |
| display.print(9999) | 9999 | Größter darstellbarer Wert |
| display.print(10000) | Err | Überlauffehler |
| display.print(42, zero_pad=True) | 0042 | Mit Nullen auf 4 Stellen aufgefüllt |
ESP32-Code — Text, Gradzeichen und Temperatur anzeigen
Referenz zu Text und Temperatur
| Methodenaufruf | Anzeige | Hinweise |
|---|---|---|
| display.print("HELP") | HELP | Textanzeige |
| display.print("Hi") | Hi | Linksbündig, 2 Zeichen |
| display.print("COOL") | COOL | 4 Zeichen |
| display.print_temperature(25, 'C') | 25°C | Celsius mit Gradzeichen |
| display.print_temperature(72, 'F') | 72°F | Fahrenheit |
| display.print_temperature(-5, 'C') | -5°C | Negative Temperatur |
| display.print_temperature(100) | 100° | 3-stellig, kein Platz für die Einheit |
Das Gradzeichen kann über die Konstante display.DEGREE auch direkt in Zeichenketten verwendet werden.
ESP32-Code — Uhrzeit mit blinkendem Doppelpunkt anzeigen
Referenz zur Zeitanzeige
| Methodenaufruf | Anzeige | Hinweise | |
|---|---|---|---|
| display.print_time(12, 30) | 12 | 30 | Doppelpunkt AN |
| display.print_time(9, 5) | 09 | 05 | Stunden und Minuten mit Nullen aufgefüllt |
| display.print_time(12, 30, colon=False) | 12 30 | Doppelpunkt AUS (für Blinkeffekt) |
Schalten Sie den Parameter colon alle 500ms um, um einen blinkenden Doppelpunkt zu erzeugen, wie man ihn häufig bei Uhrenanzeigen sieht.
ESP32-Code — Einzelne Stellen und Doppelpunkt setzen
Referenz zu einzelnen Stellen
| Methodenaufruf | Beschreibung |
|---|---|
| display.set_number(position, number) | Eine einzelne Ziffer (0-9) an Position 0-3 setzen |
| display.set_char(position, char) | Ein Zeichen an Position 0-3 setzen |
| display.set_colon(True) | Den Doppelpunkt zwischen Stelle 1 und Stelle 2 einschalten |
| display.set_colon(False) | Den Doppelpunkt ausschalten |
Sie können set_number(), set_char() und set_colon() kombinieren, um eigene Anzeigen Stelle für Stelle aufzubauen.
ESP32-Code — Anzeige blinken lassen
Referenz zum Blinken
Verwenden Sie display.off(), um die Anzeige auszuschalten, und display.on(), um sie wieder einzuschalten. Die Anzeigedaten bleiben erhalten — on() stellt den vorherigen Inhalt wieder her, ohne dass print() erneut aufgerufen werden muss.
Bibliotheksreferenz
Siehe DIYables_MicroPython_4Digit7Segment_TM1637 Library Reference für die vollständige API-Dokumentation einschließlich aller Konstruktoren, Methoden und Konstanten.
Nächste Schritte
- Kombinieren Sie es mit einem DS3231 RTC-Modul, um eine Echtzeituhr zu bauen.
- Fügen Sie einen DHT11/DHT22-Sensor hinzu, um Live-Temperaturwerte anzuzeigen.
- Verwenden Sie Taster, um zwischen Uhrmodus und Temperaturmodus umzuschalten.