ESP32 MicroPython - 4-stellige 7-Segment-Anzeige 74HC595
Der ESP32 ist ein leistungsstarker, WLAN-fähiger Mikrocontroller, der in IoT- und Embedded-Projekten weit verbreitet ist. In Kombination mit MicroPython und dem DIYables Modul für die 4-stellige 7-Segment-Anzeige (74HC595) können Sie ganz einfach Zahlen, Text und Sensorwerte auf einer hellen LED-Anzeige darstellen.
Dieses Tutorial führt Sie durch:
- Das Anschließen der 4-stelligen 7-Segment-Anzeige auf Basis des 74HC595 an einen ESP32 — es werden nur 3 Datenpins benötigt.
- Das Anzeigen von Ganzzahlen, Gleitkommazahlen und Textzeichenketten.
- Das Anzeigen der Temperatur mit Gradzeichen (°C / °F).
- Das Anzeigen der Uhrzeit mit einem blinkenden Punkt als Trennzeichen.
- Das Ein- und Ausschalten der Anzeige im Blinkrhythmus.
- Die Nutzung der automatischen Aktualisierung — keine manuelle Aktualisierungsschleife erforderlich.

Benötigte Bauteile
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Das Modul mit 4-stelliger 7-Segment-Anzeige 74HC595
Das Modul DIYables 4-Digit 7-Segment Display 74HC595 ist eine kompakte LED-Anzeige, die von zwei 74HC595 Schieberegistern angesteuert wird. Es zeigt 4 Ziffern und 4 Dezimalpunkte. Da die Schieberegister die gesamte Ansteuerung der Segmente und Ziffern übernehmen, benötigt der ESP32 nur 3 GPIO-Pins (Takt, Latch und Daten) statt der 12+ Pins, die eine direkt angesteuerte Anzeige erfordern würde.
Der ESP32 kommuniziert mit dem Modul, indem er Segmentdaten und Ziffernauswahldaten seriell hinausschiebt. Die Bibliothek erledigt dies automatisch mithilfe eines Hardware-Timers für das Multiplexing — jede Ziffer wird nacheinander mit hoher Geschwindigkeit aktualisiert, sodass alle 4 Ziffern gleichzeitig zu leuchten scheinen.
Hauptmerkmale des Moduls:
- Nur 3 Leitungen für Daten (SCLK, RCLK, DIO) plus Stromversorgung.
- 4 Dezimalpunkte — einzeln steuerbar.
- Varianten mit gemeinsamer Anode oder gemeinsamer Kathode erhältlich.
- Kompatibel mit 5V oder 3,3V.
Pinbeschreibung
| Pin | Zweck | ESP32-Verbindung |
|---|---|---|
| SCLK (SH_CP) | Serieller Takteingang | Mit GPIO18 verbinden |
| RCLK (ST_CP) | Registertakt / Latch | Mit GPIO17 verbinden |
| DIO (DS) | Serieller Dateneingang | Mit GPIO16 verbinden |
| VCC | Stromversorgungseingang 3.3V bis 5V | Mit 3.3V verbinden |
| GND | Masse | Mit GND verbinden |

Verdrahtung
Der ESP32 arbeitet mit 3,3V-Logik. Das 74HC595 Modul funktioniert sowohl mit 3,3V als auch mit 5V, sodass Sie es direkt verdrahten können — keine Pegelwandlung nötig.
| 74HC595 Modul | ESP32 | Hinweise |
|---|---|---|
| SCLK (SH_CP) | GPIO18 | Serieller Takt |
| RCLK (ST_CP) | GPIO17 | Latch / Registertakt |
| DIO (DS) | GPIO16 | Serielle Daten |
| 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 verfügbare GPIO-Pins am ESP32 verwenden. Passen Sie einfach die Pin-Nummern im Code an.
Schnelle Schritte
Hier ist 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 Ihr ESP32 Board geladen ist.
- Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte für eine Schritt-für-Schritt-Anleitung.
- Verbinden Sie das ESP32 Board gemäß dem bereitgestellten Schaltplan mit dem Modul der 4-stelligen 7-Segment-Anzeige.
- 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, aber eventuell müssen Sie ihn 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-74HC595" und finden Sie dann die Bibliothek für die 4-stellige 7-Segment-Anzeige von DIYables.
- Klicken Sie auf DIYables-MicroPython-4Digit7Segment-74HC595 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, indem Sie:
- Auf die Schaltfläche Save klicken oder Ctrl+S drücken.
- Im Speicherdialog MicroPython device auswählen.
- Die Datei main.py nennen.
- Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
- Beobachten Sie die Anzeige — Sie sollten Zahlen, Text oder andere Inhalte auf der 7-Segment-Anzeige sehen.
Code-Vorlage für den Einstieg
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 zeigt nacheinander mehrere Ganzzahlen (0, 42, 1234, -5, -123, 9999) und eine Zahl mit führenden Nullen (0042).
Ganzzahlanzeige
Die Methode print() erkennt Ganzzahlen automatisch und formatiert sie rechtsbündig auf der Anzeige.
| Methodenaufruf | Anzeige zeigt | Hinweise |
|---|---|---|
| display.print(0) | " 0" | Einzelne Ziffer, rechtsbündig |
| display.print(42) | " 42" | Zwei Ziffern |
| display.print(1234) | "1234" | Alle vier Ziffern |
| display.print(-5) | " -5" | Negativ mit Minuszeichen |
| display.print(-123) | "-123" | Negativ, volle Breite |
| display.print(9999) | "9999" | Maximaler positiver Wert |
| display.print(42, zero_pad=True) | "0042" | Führende Nullen |
Ganzzahlbereich: -999 bis 9999. Werte außerhalb dieses Bereichs zeigen "Err" an.
ESP32 Code — Gleitkommazahlen anzeigen
Gleitkommaanzeige
Der Dezimalpunkt wird automatisch an der richtigen Stelle gesetzt. Sie können die Bibliothek die Anzahl der Nachkommastellen wählen lassen oder sie manuell festlegen.
| Methodenaufruf | Anzeige zeigt | Hinweise |
|---|---|---|
| display.print(1.5) | " 1.5" | Automatische Nachkommastellen |
| display.print(12.34) | "12.34" | Automatisch — 2 Nachkommastellen |
| display.print(3.141) | "3.141" | Automatisch — 3 Nachkommastellen |
| display.print(23.5, decimal_places=1) | "23.5" | Erzwungen 1 Nachkommastelle |
| display.print(1.5, decimal_places=2) | " 1.50" | Erzwungen 2 Nachkommastellen mit nachgestellter Null |
| display.print(1.5, decimal_places=2, zero_pad=True) | "01.50" | Mit führenden Nullen und 2 Nachkommastellen |
ESP32 Code — Text, Gradzeichen und Temperatur anzeigen
Unterstützte Zeichen
Die Anzeige kann eine Teilmenge von Buchstaben darstellen, die auf einer 7-Segment-Anzeige lesbar sind:
- Ziffern: 0-9
- Buchstaben: A, b, C, c, d, E, F, G, H, h, I, i, J, L, n, O, o, P, r, S, t, U, u, Y
- Sonderzeichen: ° (Grad), - (Bindestrich), _ (Unterstrich), (Leerzeichen)
Temperaturanzeige
| Methodenaufruf | Anzeige zeigt | Hinweise |
|---|---|---|
| display.print_temperature(25, 'C') | "25°C" | Celsius |
| display.print_temperature(72, 'F') | "72°F" | Fahrenheit |
| display.print_temperature(-5, 'C') | "-5°C" | Negative Temperatur |
| display.print_temperature(100, 'C') | "100°" | Kein Platz für die Einheit |
Sie können Temperaturzeichenketten auch manuell mit der Konstante DEGREE erstellen:
Behandlung von Punkten in Zeichenketten
Ein . Zeichen in einer Zeichenkette aktiviert den Dezimalpunkt der vorangehenden Ziffer, statt eine eigene Position zu belegen:
ESP32 Code — Uhrzeit anzeigen
Zeitanzeige
Dieses Modul hat nur Punkte (keinen Doppelpunkt). Die Methode print_time() verwendet den Punkt an Ziffer 1 (zweite von links) als Zeittrennzeichen.
| Methodenaufruf | Anzeige zeigt | Hinweise |
|---|---|---|
| display.print_time(12, 30) | "12.30" | Punkt-Trennzeichen an |
| display.print_time(9, 5) | "09.05" | Automatische führende Nullen |
| display.print_time(12, 30, colon=False) | "12 30" | Punkt-Trennzeichen aus |
Blinkeffekt: Schalten Sie den Parameter colon in Ihrer Hauptschleife alle 500ms um, um ein blinkendes Zeittrennzeichen zu erzeugen.
ESP32 Code — Anzeige blinken lassen
Anzeige ein-/ausschalten
Die Methode off() stoppt den Timer für die automatische Aktualisierung und schaltet alle Segmente aus. Die Methode on() startet den Timer neu — die Anzeige zeigt wieder den zuletzt ausgegebenen Inhalt.
| Methode | Aktion | Hinweise |
|---|---|---|
| display.off() | Anzeige stoppen und alle Segmente ausschalten | Timer wird gestoppt |
| display.on() | Anzeige mit aktuellem Inhalt neu starten | Timer läuft weiter |
| display.clear() | Anzeigepuffer löschen | Anzeige ist leer |
Verwenden Sie off() und on() in einer Schleife, um einen Blinkeffekt zu erzeugen. Der Anzeigeinhalt (gesetzt durch print()) bleibt während off() erhalten.
API-Übersicht
Die vollständige API-Referenz mit detaillierten Parametern und Beispielen finden Sie in der Library Reference.
| Methode | Beschreibung |
|---|---|
| print(value, decimal_places, zero_pad) | Zeigt int, float oder string an (erkennt den Typ automatisch) |
| print_temperature(temperature, unit) | Zeigt die Temperatur mit dem Symbol ° an |
| print_time(hours, minutes, colon) | Zeigt die Uhrzeit HH.MM mit Punkt-Trennzeichen an |
| clear() | Löscht den Anzeigepuffer |
| off() | Stoppt die automatische Aktualisierung und schaltet die Anzeige dunkel |
| on() | Startet die automatische Aktualisierung neu |
| set_char(position, char) | Setzt ein Zeichen an Position (0-3) |
| set_number(position, number) | Setzt die Ziffer 0-9 an Position (0-3) |
| set_dot(position, state) | Setzt den Dezimalpunkt an Position (0-3) |
| set_segments(position, segments) | Setzt rohe Segmentbits an Position (0-3) |
Nächste Schritte
- Erkunden Sie die Library Reference für die vollständige API einschließlich der Low-Level-Segmentsteuerung.
- Kombinieren Sie die Anzeige mit Sensoren (z. B. DHT11, DS18B20), um einen Temperaturmonitor zu bauen.
- Verwenden Sie print_time() mit der RTC oder NTP des ESP32, um eine einfache Uhr zu bauen.
- Fügen Sie Taster hinzu, um einen Countdown-Timer oder eine Stoppuhr zu erstellen.