ESP32 - RGB-LED

Dieses Tutorial erklärt dir, wie man eine RGB-LED mit dem ESP32 so steuert, dass sie jede Farbe ausgibt.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
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×RGB LED
1×(Alternativ) RGB-LED-Modul
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
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 (30 Sensoren/Displays)
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.

Über RGB-LED

Die RGB-LED kann alle Farben erzeugen, indem sie die drei Grundfarben Rot, Grün und Blau mischt. Eine einzelne RGB-LED besteht aus drei LEDs: Rot, Grün und Blau. Diese drei LEDs sind in einem einzigen Gehäuse untergebracht, sodass sie wie eine einzelne LED aussehen.

RGB-LED-Pinbelegung

RGB-LED verfügt über vier Pins:

  • R (Rot) Pin: dient dazu, das rote Farbelement zu steuern
  • G (Grün) Pin: dient dazu, das grüne Farbelement zu steuern
  • B (Blau) Pin: dient dazu, das blaue Farbelement zu steuern
  • Gemeinsamer (Kathoden-) Pin: Verbinde diesen Pin mit Masse (0 V)
RGB-LED-Pinbelegung

Um eine RGB-LED an den ESP32 anzuschließen, müssen wir Vorwiderstände zur Strombegrenzung hinzufügen. Das kann die Verkabelung kompliziert machen. Zum Glück können wir ein RGB-LED-Modul verwenden, das mit bereits integrierten Vorwiderständen zur Strombegrenzung kommt.

RGB-LED-Modul enthält außerdem vier Pins:

  • Gemeinsamer (Kathoden-Pin): muss an GND (0 V) angeschlossen werden
  • R (Rot): Pin wird verwendet, um Rot zu steuern
  • G (Grün): Pin wird verwendet, um Grün zu steuern
  • B (Blau): Pin wird verwendet, um Blau zu steuern
RGB-LED-Modul Pinbelegung

※ Notiz:

Nach dem gemeinsamen Pin gibt es zwei Arten von LEDs: gemeinsame Anode und gemeinsame Kathode. Dieses Tutorial verwendet eine LED mit gemeinsamer Kathode.

Wie RGB-LEDs funktionieren

In der Physik ist eine Farbe eine Kombination aus drei Farbelementen: Rot (R), Grün (G) und Blau (B). Der Wertebereich jedes Farbelements liegt zwischen 0 und 255. Die Werte der drei Farbelemente ergeben insgesamt 256 × 256 × 256 Farben.

Wenn wir PWM-Signale an die Pins R, G und B senden, zeigt die RGB-LED eine Farbe entsprechend dem PWM-Tastverhältnis an. Durch Ändern des Tastverhältnisses der PWM-Signale (von 0 bis 255) kann die RGB-LED jede Farbe darstellen. Die Farbwerte Rot (R), Grün (G) und Blau (B) entsprechen dem PWM-Tastverhältnis an den Pins R, G und B – jeweils.

Verdrahtungsdiagramm zwischen RGB-LED und ESP32

  • Schaltplan zwischen ESP32 und RGB-LED
ESP32 RGB-LED-Schaltplan

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.

  • Verdrahtungsdiagramm zwischen ESP32 und RGB-LED-Modul
ESP32 RGB-LED-Modul-Schaltplan

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

So steuern Sie RGB-LEDs

Angenommen, wir möchten die Farbe #00979D auf einer RGB-LED anzeigen, können wir die folgenden Schritte durchführen:

  • Finden Sie den Farbcode. Tipps:
    • Sie können den gewünschten Farbcode aus dem Farbwähler auswählen
    • Wenn Sie Farbe in einem Bild verwenden möchten, verwenden Sie das Online-Tool Farben aus dem Bild
  • Wandeln Sie den Farbcode in R-, G- und B-Werte um mit das Werkzeug von W3Schools. Beachten Sie diese Werte. In diesem Fall: R = 0, G = 151, B = 157
RGB-LED-Farbwähler
  • Definieren Sie ESP32-Pins, die mit R-, G- und B-Pins verbunden sind. Zum Beispiel:
#define PIN_RED 23 // Allgemeiner Ein-/Ausgang 23 #define PIN_GREEN 22 // Allgemeiner Ein-/Ausgang 22 #define PIN_BLUE 21 // Allgemeiner Ein-/Ausgang 21
  • Konfigurieren Sie diese ESP32-Pins auf den Ausgangsmodus
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Steuere die LED, damit sie diese Farbe ausgibt (#00979D → R = 0, G = 151, B = 157)
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

ESP32 - RGB-LED-Beispielcode

Der unten stehende Code ändert die Farbe der LED in der folgenden Farbreihenfolge:

  • #00C9CC (R = 0, G = 201, B = 204)
  • #F7788A (R = 247, G = 120, B = 138)
  • #34A853 (R = 52, G = 168, B = 83)
/* * 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-rgb-led */ #define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21 void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // Farbcode #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // Behalte die Farbe 1 Sekunde lang // Farbcode #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // Behalte die Farbe 1 Sekunde lang // Farbcode #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // Behalte die Farbe 1 Sekunde lang }

Wenn man viele Farben verwendet, könnten wir den Code verkürzen, indem wir eine Funktion erstellen:

/* * 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-rgb-led */ #define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21 void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // Farbcode #00C9CC (R = 0, G = 201, B = 204) setColor(0, 201, 204); delay(1000); // halte die Farbe 1 Sekunde lang // Farbcode #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); delay(1000); // halte die Farbe 1 Sekunde lang // Farbcode #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); delay(1000); // halte die Farbe 1 Sekunde lang } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); analogWrite(PIN_GREEN, G); analogWrite(PIN_BLUE, B); }

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