Arduino - RGB-LED

In diesem Tutorial werden wir lernen:

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×RGB LED
1×(Alternativ) RGB-LED-Modul
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino 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 durch Mischen der drei Grundfarben Rot, Grün und Blau alle Farben erzeugen. Tatsächlich besteht sie aus drei separaten LEDs – Rot, Grün und Blau – die in einem einzigen Gehäuse zusammengefasst sind.

Pinbelegung

RGB-LED verfügt über vier Pins:

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

Um eine RGB-LED mit Arduino zu verbinden, müssen wir Widerstände zur Strombegrenzung verwenden. Das kann die Verkabelung komplex machen. Glücklicherweise können wir das RGB-LED-Modul verwenden, das bereits integrierte Widerstände zur Strombegrenzung besitzt.

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

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

※ Notiz:

Der gemeinsame Pin kann Kathode oder Anode sein, je nach Typ der RGB-LED. Dieses Tutorial verwendet eine gemeinsame Kathode.

Wie es funktioniert

In der Physik besteht eine Farbe aus drei Farbwerten: Rot (R), Grün (G) und Blau (B). Jeder Farbwert reicht von 0 bis 255.

Die Mischung aus drei Werten erzeugt insgesamt 256 × 256 × 256 Farben.

Wenn wir PWM-Signale (mit einem Tastverhältnis von 0 bis 255) an die R-, G- und B-Pins liefern, können wir RGB-LED-Anzeigen jede Farbe erzeugen, die wir wünschen.

Das Tastverhältnis der PWM-Signale an den Pins R, G und B entspricht den Farbwerten von Rot (R), Grün (G) und Blau (B).

Verdrahtungsdiagramm

  • Schaltplan zwischen Arduino und RGB-LED
Arduino RGB-LED-Schaltplan

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

  • Schaltplan zwischen Arduino und RGB-LED-Modul
Arduino RGB-LED-Modul-Schaltplan

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

So steuern Sie eine RGB-LED

Lass uns Schritt-für-Schritt lernen, wie man die GRB-LED auf jede Farbe einstellt, zum Beispiel #00979D:

  • Bestimme, welche Farbe du anzeigen möchtest, und hole dir ihren Farbcode. Tipps:
    • Du kannst den gewünschten Farbcode aus dem Farb-Picker holen
    • Wenn du Farbe in einem Bild verwenden möchtest, benutze online das Farben aus dem Bild Tool
  • Wandle den Farbcode in RGB-Werte mithilfe des Tools von W3Schools. Notiere diese Werte. In diesem Fall: R = 0, G = 151, B = 157
RGB-LED-Farbwähler
  • Definiere Arduino-Pins, 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 = 9;
  • Konfigurieren Sie diese Arduino-Pins als Ausgänge.
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);

Arduino - RGB-LED-Beispielcode

Der unten stehende Code ändert die Farbe der LED der Reihe nach in den folgenden Farben:

  • #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 Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino/arduino-rgb-led */ const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 9; 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 Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino/arduino-rgb-led */ const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 9; 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 RGB-LED mit gemeinsamer Anode müssen Sie:
    • Verbinden Sie den gemeinsamen Pin mit 3,3 V des Arduino-Boards.
    • Ändern Sie die R-, G- und B-Werte in der analogWrite()-Funktion jeweils auf 255 - R, 255 - G und 255 - B.
  • Eine Sequenz von RCB-LEDs, die miteinander verbunden sind, bildet den RGB-LED-Streifen. LED-Streifen können in zwei Kategorien unterteilt werden: adressierbare LED-Streifen und nicht adressierbare LED-Streifen. Wir werden Tutorials für jeden Typ von LED-Streifen erstellen.

※ Notiz:

Vermeiden Sie die Verwendung eines einzigen Widerstands am gemeinsamen Pin einer RGB-LED, anstelle von drei Widerständen an den anderen Pins. Wie wir wissen, sind drei LEDs in einem einzigen RGB-Gehäuse parallel geschaltet. Unter idealen Bedingungen ist es in Ordnung, einen einzelnen Widerstand am gemeinsamen Pin zu verwenden. In der Praxis sollte man ihn jedoch nicht verwenden. Der Grund dafür ist, dass reale LEDs nicht dieselben Eigenschaften aufweisen. Drei LEDs im RGB-Gehäuse sind nicht identisch. Die Widerstände der LEDs sind unterschiedlich. Der Strom wird ungleichmäßig auf die einzelnen LEDs verteilt. Die Helligkeit ist nicht dieselbe, und das kann eine LED zerstören und anschließend auch die anderen LEDs beschädigen.

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