ESP32 Tutorial 10/55 - Digitale Zählung mit Sieben-Segment-Anzeige 74HC595 - ESP32 IoT Lernkit
In diesem Tutorial werden wir einen digitalen Zähler mit einem Sieben-Segment-Display erstellen, das vom ESP32-Mikrocontroller gesteuert wird. Der Zähler wird von 0 bis 9 inkrementieren und dann wieder auf 0 dekrementieren, wodurch ein klares visuelles Erscheinungsbild des Zählvorgangs bereitgestellt wird. Außerdem werden wir untersuchen, wie man einzelne Segmente einschaltet und Buchstaben auf dem Sieben-Segment-Display anzeigt.

Dieses Projekt verwendet einen 74HC595 Schieberegister zur Steuerung des Displays, wodurch wir die Segmente effizient verwalten können, ohne zu viele GPIO-Pins am ESP32 zu verwenden. Durch das Senden von Binärwerten an das Schieberegister können wir die entsprechenden Segmente zum Darstellen von Zahlen und Buchstaben einschalten. Für ein tieferes Verständnis des Prozesses können Sie das Video (im Video bei :15) konsultieren.
Hardware erklärt
Die Hauptkomponenten dieses Projekts umfassen den ESP32-Mikrocontroller, ein 74HC595-Schieberegister und ein Sieben-Segment-Display. Der ESP32 ist ein leistungsstarker Mikrocontroller mit integriertem WLAN- und Bluetooth-Funktionen, was ihn für IoT-Projekte geeignet macht. Das 74HC595 ist ein Schieberegister, das es uns ermöglicht, mehrere Ausgänge nur mit wenigen Eingabepins zu steuern. Es funktioniert, indem es serielle Daten aufnimmt und in parallele Ausgänge umwandelt, was perfekt geeignet ist, um ein Sieben-Segment-Display anzusteuern.
Das Sieben-Segment-Display besteht aus sieben einzelnen LEDs, die in einer Acht angeordnet sind. Jedes Segment kann ein- oder ausgeschaltet werden, indem der entsprechende binäre Wert an das Schieberegister gesendet wird. Um beispielsweise die Zahl 0 anzuzeigen, müssen alle Segmente außer dem mittleren (G) leuchten.
Datenblattdetails
| Hersteller | Texas Instruments |
|---|---|
| Teilenummer | 74HC595 |
| Logik/IO-Spannung | 2 V bis 6 V |
| Versorgungsspannung | 2 V bis 6 V |
| Ausgangsstrom (pro Kanal) | 6 mA |
| Spitzenstrom (pro Kanal) | 35 mA |
| PWM-Frequenzrichtlinien | Bis zu 1 kHz |
| Eingangslogikschwellenwerte | 0,3 VCCauf 0,7 VCC |
| Spannungsabfall / RDS(on)/ Sättigung | 0,2 V max |
| Thermische Grenzen | 125 °C |
| Paket | DIP-16 |
| Hinweise / Varianten | Verfügbar in verschiedenen Verpackungen |
- Stellen Sie eine ordnungsgemäße Spannungsversorgung sicher (2 V bis 6 V).
- Begrenzen Sie den Ausgangsstrom, um Überhitzung zu vermeiden.
- Verwenden Sie separate Widerstände für jedes Segment für optimale Helligkeit.
- Seien Sie vorsichtig beim Verdrahten, um Kurzschlüsse und falsche Verbindungen zu vermeiden.
- Folgen Sie dem Pinout sorgfältig, um Fehlkonfigurationen zu vermeiden.
Verdrahtungsanleitungen

Beginnen Sie mit der Einrichtung Ihres Breadboards. Verbinden Sie die Erdungsschiene (blaue Linie) und die Stromschiene (rote Linie). Die Erdung sollte auf der einen Seite des Breadboards mit der blauen Linie verbunden werden, während die Stromversorgung auf der gegenüberliegenden Seite mit der roten Linie verbunden werden sollte. Verwenden Sie ein schwarzes Kabel, um die Erde des ESP32 mit der Erdungsschiene zu verbinden, und ein rotes Kabel, um den 3,3-V-Pin des ESP32 mit der Stromschiene zu verbinden.
Als Nächstes setzen Sie das 74HC595 Schieberegister in das Breadboard ein und achten darauf, dass die Einkerbung korrekt ausgerichtet ist. Verbinden Sie Pin 11 (DS) mit Pin 25 auf dem ESP32, Pin 12 (SH_CP) mit Pin 26 und Pin 14 (ST_CP) mit Pin 27. Verbinden Sie den Masseanschluss (Pin 8) des Schieberegisters mit dem Masseanschluss und Pin 10 (MR) mit der Versorgungsleitung zur Aktivierung.
Für das Sieben-Segment-Display verbinde die Pins, die den Segmenten (a-g) entsprechen, mit den Ausgangspins des Schieberegisters. Verwende einen Widerstand (220 Ohm) in Serie für jedes Segment, um den Strom zu begrenzen. Achte darauf, dass du die richtigen Anschlüsse für den gemeinsamen Pin hast, der je nach deinem Displaytyp entweder eine gemeinsame Anode oder Kathode sein kann.
Code-Beispiele und Anleitung
Im Setup-Funktion beginnen wir damit, die an das Schieberegister angeschlossenen Pins als Ausgänge zu definieren. Dies stellt sicher, dass unser ESP32 die Daten, die an das Display gesendet werden, steuern kann.
void setup ()
{
//set pins to output
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
Hier definieren wirSTcp,SHcp, undDSals die Pins, die mit den ST_CP-, SH_CP- und DS-Anschlüssen des Schieberegisters verbunden sind. Diese Pins als Ausgänge zu setzen, ermöglicht uns die Steuerung des Schieberegisters.
Die Hauptschleife des Programms zählt von 0 bis 9 und sendet die entsprechenden Werte an das Display.shiftOutFunktion.
for(int num = 0; num <10; num++)
{
digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
delay(1000);
}
Diese Schleife erhöht dienumVariable, die entsprechende Werte von derdatArrayzum Display jede Sekunde. DieshiftOutDie Funktion überträgt die Daten an das Schieberegister, das dann die entsprechenden Segmente beleuchtet.
Demonstration / Was zu erwarten ist
Sobald die Verdrahtung abgeschlossen und der Code hochgeladen ist, sollten Sie das Siebensegment-Display sehen, das von 0 bis 9 zählt und kurz pausiert, bevor es wieder auf 0 herunterzählt. Jedes Zahlen wird eine Sekunde lang angezeigt. Wenn Sie das Zählen beschleunigen möchten, können Sie die Verzögerung in der Schleife anpassen (im Video bei 15:30).
Beim individuellen Manipulieren der Segmente denken Sie daran, die korrekten binären Werte zu senden, um Buchstaben oder spezifische Segmente anzuzeigen. Wenn das Display schwach erscheint, ziehen Sie in Betracht, für jedes Segment einzelne Widerstände hinzuzufügen, um eine gleichmäßige Helligkeit über das Display zu gewährleisten.
Video-Zeitleisten
- 00:00 Start
- 1:53 Einführung in das sieben Segment
- 4:38 Verdrahtung erklärt
- 13:15 Arduino Code-1
- 17:01 COM-Port und ESP32-Board auswählen
- 18:43 Demonstration-1
- 20:13 Anzeige nur einer Ziffer
- 21:38 Auf und ab Zähler
- 23:07 Jedes Segment ein-/ausschalten
- 24:53 Anzeige von A, B, C, D, E und F
Common Course Links
Common Course Files
Ressourcen & Referenzen
-
DokumentationESP32 Tutorial 10/55 - SunFounder-Seite für Seven Segmentdocs.sunfounder.com
Dateien📁
Keine Dateien verfügbar.