ESP8266 - RGB-LED

Dieses Tutorial erklärt, wie man den ESP8266 verwendet, um eine RGB-LED zu steuern. Im Detail werden wir lernen:

Erforderliche Hardware

1×ESP8266 NodeMCU
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
3×220 ohm Resistor
1×(Alternativ) RGB-LED-Modul
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

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 jede Farbe erzeugen, indem sie die drei Primärfarben Rot, Grün und Blau kombiniert. Sie besteht aus drei separaten LEDs (Rot, Grün und Blau), die jedoch alle in einem einzigen Gehäuse untergebracht sind.

RGB-LED-Pinbelegung

Eine RGB-LED hat vier Pins:

  • Der gemeinsame (Kathoden-)Pin muss mit GND (0 V) verbunden werden
  • Der R (Rot) Pin wird verwendet, um Rot zu regeln
  • Der G (Grün) Pin wird verwendet, um Grün zu regeln
  • Der B (Blau) Pin wird verwendet, um Blau zu regeln
RGB-LED-Pinbelegung

Damit eine RGB-LED mit dem ESP8266 funktioniert, müssen wir Vorwiderstände hinzufügen. Das kann die Verkabelung etwas kompliziert machen. Aber hey, es gibt eine Lösung! Wir können ein RGB-LED-Modul verwenden, das bereits Widerstände enthält. Ganz einfach!

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

  • Gemeinsamer (Kathoden-) Pin: muss mit GND (0 V) verbunden 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
Pinbelegung des RGB-LED-Moduls

※ Notiz:

Der gemeinsame Pin, der entweder Kathode oder Anode sein kann, kann je nach Typ der RGB-LED variieren. Dieses Tutorial wird einen gemeinsamen Kathodenpin verwenden.

Wie es funktioniert

Im Bereich der Physik setzen sich drei Farbwerte zu einer Farbe zusammen: Rot (R), Grün (G) und Blau (B). Jeder Wert reicht von 0 bis 255. Die Kombination aus drei Werten ergibt insgesamt 256 × 256 × 256 Farben.

Wir können die RGB-LED auf jede gewünschte Farbe einstellen, indem wir den ESP8266 verwenden, um PWM-Signale (im Bereich von 0 bis 255) an die R-, G- und B-Pins zu erzeugen. Das Tastverhältnis der an die R-, G- und B-Pins gesendeten PWM-Signale steht im Verhältnis zu den Farbwerten Rot, Grün und Blau.

Verdrahtungsdiagramm

  • Schaltplan zwischen ESP8266 und RGB-LED
ESP8266 NodeMCU RGB-LED-Verdrahtungsdiagramm

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

  • Verdrahtungsdiagramm zwischen ESP8266 und RGB-LED-Modul
ESP8266 NodeMCU RGB-LED-Modul Verdrahtungsdiagramm

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

Wie man RGB-LED steuert

Lernen wir, wie man die GRB-LED in jede Farbe steuert, zum Beispiel #00979D Schritt-für-Schritt:

  • Zuerst bestimmen Sie, welche Farbe Sie anzeigen möchten, und erhalten Sie deren Farbcode. Hinweise:
    • Sie können den gewünschten Farbcode aus dem Farbwähler entnehmen
    • Wenn Sie eine Farbe in einem Bild verwenden möchten, verwenden Sie das Online-Tool Farben aus dem Bild
  • Dann konvertieren Sie den Farbcode mithilfe des Tools von W3Schools in R-, G- und B-Werte. Notieren Sie sich diese Werte. In diesem Fall: R = 0, G = 151, B = 157
RGB-LED-Farbwähler
  • Geben Sie die ESP8266-Pins an, die mit den R-, G- und B-Pins verbunden sind. Zum Beispiel:
const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 7;
  • Setzen Sie die folgenden ESP8266-Pins in den Ausgangsmodus:
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Steuere die LED so, dass sie die Farbe von #00979D ausgibt, die aus Rot = 0, Grün = 151 und Blau = 157 besteht.
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

ESP8266 - RGB-LED-Beispielcode

Der folgende ESP8266-Code ändert die Farbe der LED in einer Sequenz von:

  • #00C9CC (Rot = 0, Grün = 201, Blau = 204)
  • #F7788A (Rot = 247, Grün = 120, Blau = 138)
  • #34A853 (Rot = 52, Grün = 168, Blau = 83)
/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-led-rgb */ const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 7; 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); // die Farbe 1 Sekunde lang beibehalten // Farbcode #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // die Farbe 1 Sekunde lang beibehalten // Farbcode #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // die Farbe 1 Sekunde lang beibehalten }

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

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-led-rgb */ const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 7; 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); // Farbe 1 Sekunde lang beibehalten // Farbcode #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); delay(1000); // Farbe 1 Sekunde lang beibehalten // Farbcode #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); delay(1000); // Farbe 1 Sekunde lang beibehalten } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); analogWrite(PIN_GREEN, G); analogWrite(PIN_BLUE, B); }

Zusätzliches Wissen

Für eine RGB-LED mit einer gemeinsamen Anode müssen Sie:

  • Schließe den gemeinsamen Pin an die 3,3-V-Versorgung des ESP8266 an.
  • Invertiere die Werte R, G und B in der Funktion analogWrite(), d. h. verwende jeweils 255 - R, 255 - G und 255 - B.

Eine Folge von RGB-LEDs, die miteinander verbunden sind, bildet einen RGB-LED-Streifen. LED-Streifen können in adressierbare LED-Streifen und nicht adressierbare LED-Streifen unterteilt werden. Wir werden Tutorials für beide Typen von LED-Streifen erstellen.

※ Notiz:

Verwenden Sie keinen einzelnen Widerstand am gemeinsamen Anschluss eines RGB-LEDs, sondern drei Widerstände an den anderen Pins. Das liegt daran, dass es theoretisch zwar in Ordnung ist, einen einzelnen Widerstand am gemeinsamen Pin zu verwenden, in der Praxis jedoch nicht der Fall ist. Die LEDs in einem RGB-Gehäuse sind nicht identisch, was bedeutet, dass ihre Widerstände unterschiedlich sind. Dadurch wird der Strom ungleich auf jede LED verteilt, wodurch die Helligkeit ungleich ist, was zur Zerstörung einer oder mehrerer LEDs führen kann und schließlich auch die übrigen LEDs beschädigen kann.

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