ESP32 - 10-Segment-LED-Balkenanzeige

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow
1×(Alternativ) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) ESP32 Uno-form board
1×(Alternativ) ESP32 S3 Uno-form 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×(Optional) DC-Stromanschluss
1×10 Segment LED Bar Graph
10×220 Ω Resistor
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 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.

Dieses Tutorial zeigt Ihnen, wie Sie mit dem ESP32 eine 10-Segment-LED-Balkenanzeige steuern und eine visuelle Balkenanimation auf der Anzeige darstellen.

Über die 10-Segment-LED-Balkenanzeige

10-Segment-LED-Balkenanzeige
Die Anzahl der Segmente 10
Die LED-Farbe Hellrot
Die Durchlassspannung ~2V pro Segment
Der Durchlassstrom max. 20mA pro Segment
Der erforderliche Widerstand 220Ω pro Segment

Pinbelegung der LED-Balkenanzeige

Pinbelegung der 10-Segment-LED-Balkenanzeige
  • Anoden-Pins (A1–A10): Verbinden Sie diese Pins über 220Ω-Widerstände mit GPIO-Pins
  • Kathoden-Pins (K1–K10): Verbinden Sie diese Pins mit GND (0V)

Wir empfehlen dringend, an jeder Anode einen Strombegrenzungswiderstand anzuschließen, um die GPIO-Pins des ESP32 zu schützen.

※ Notiz:

Alle 10 Anoden-Pins sind entlang einer einzigen Seite der Stiftleiste des ESP32 Dev Boards in physischer Pin-Reihenfolge verdrahtet, damit die Verdrahtung übersichtlich bleibt. Dadurch werden GPIO5 und GPIO15 verwendet – beide geben beim Booten nur kurz einen Impuls aus und werden häufig für Onboard-LEDs genutzt, daher ist das Risiko gering. GPIO0, GPIO2 und GPIO12, die den Boot- oder Flash-Modus des Boards tatsächlich stören können, werden vollständig vermieden.

Schaltplan zwischen 10-Segment-LED-Balkenanzeige und ESP32

ESP32 LED-Balkenanzeige Schaltplan - Steckbrett

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

LED-Balkenanzeige ESP32-Pin
A1 (Anode 1) GPIO23 (über 220Ω)
A2 (Anode 2) GPIO22 (über 220Ω)
A3 (Anode 3) GPIO21 (über 220Ω)
A4 (Anode 4) GPIO19 (über 220Ω)
A5 (Anode 5) GPIO18 (über 220Ω)
A6 (Anode 6) GPIO5 (über 220Ω)
A7 (Anode 7) GPIO17 (über 220Ω)
A8 (Anode 8) GPIO16 (über 220Ω)
A9 (Anode 9) GPIO4 (über 220Ω)
A10 (Anode 10) GPIO15 (über 220Ω)
K1–K10 (Kathoden) GND

Wie man den ESP32 für die 10-Segment-LED-Balkenanzeige programmiert

  • Die Programmierung des ESP32 für die 10-Segment-LED-Balkenanzeige ist unkompliziert. Es muss keine Bibliothek installiert werden.
  • Definieren Sie ein Array mit den GPIO-Pins, die den einzelnen Segmenten zugeordnet sind: const int ledPins[10] = {23, 22, 21, 19, 18, 5, 17, 16, 4, 15};
  • Setzen Sie jeden Pin innerhalb von setup() als Ausgang: pinMode(ledPins[i], OUTPUT);
  • Schalten Sie ein Segment ein, indem Sie HIGH auf seinen Pin schreiben: digitalWrite(ledPins[i], HIGH);
  • Schalten Sie ein Segment aus, indem Sie LOW auf seinen Pin schreiben: digitalWrite(ledPins[i], LOW);

ESP32-Code - 10-Segment-LED-Balkenanzeige

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32-10-segment-led-bar-graph */ const int NUM_SEGMENTS = 10; const int ledPins[NUM_SEGMENTS] = {23, 22, 21, 19, 18, 5, 17, 16, 4, 15}; void printBar(int litCount) { Serial.print("Bar: ["); for (int i = 0; i < NUM_SEGMENTS; i++) { Serial.print(i < litCount ? "*" : " "); } Serial.println("]"); } void setup() { Serial.begin(115200); for (int i = 0; i < NUM_SEGMENTS; i++) { pinMode(ledPins[i], OUTPUT); digitalWrite(ledPins[i], LOW); } } void loop() { for (int i = 0; i < NUM_SEGMENTS; i++) { digitalWrite(ledPins[i], HIGH); printBar(i + 1); delay(100); } delay(500); for (int i = NUM_SEGMENTS - 1; i >= 0; i--) { digitalWrite(ledPins[i], LOW); printBar(i); delay(100); } delay(500); }

Schnelle Schritte

Wenn Sie den ESP32 zum ersten Mal verwenden, sehen Sie sich an, wie man die Umgebung für den ESP32 in der Arduino IDE einrichtet.

  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Wählen Sie das Board ESP-WROOM-32 Dev Module und den richtigen COM-Port aus.
  • Klicken Sie auf die Schaltfläche Hochladen, um den Code zu kompilieren und auf den ESP32 hochzuladen.
  • Öffnen Sie den Seriellen Monitor und stellen Sie die Baudrate auf 115200 ein.
  • Beobachten Sie die Balkenanimation auf der LED-Balkenanzeige und die im Seriellen Monitor ausgegebenen Daten.

Ausgabe im Seriellen Monitor

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Bar: [* ] Bar: [** ] Bar: [*** ] Bar: [**** ] Bar: [***** ] Bar: [****** ] Bar: [******* ] Bar: [******** ] Bar: [********* ] Bar: [**********] Bar: [********* ] Bar: [******** ] Bar: [******* ] Bar: [****** ] Bar: [***** ] Bar: [**** ] Bar: [*** ] Bar: [** ] Bar: [* ] Bar: [ ]
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ 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!