Raspberry Pi - RGB LED

Diese Anleitung zeigt Ihnen, wie Sie mit dem Raspberry Pi eine RGB LED steuern können. Im Detail lernen wir:

Benötigte Hardware

1×Raspberry Pi 5
1×RGB LED
3×220 Ohm Widerstand
1×(Alternativ) RGB LED Modul
1×Breadboard (Steckplatine)
1×Jumper Kabel
1×(Empfohlen) Schraubklemmenblock-Shield für Raspberry Pi
1×(Empfohlen) Raspberry Pi Prototyping-Grundplatte & Breadboard-Kit
1×(Empfohlen) HDMI-Touchscreen-Monitor für Raspberry Pi

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 LEDs

Die RGB LED kann jede beliebige Farbe erzeugen, indem sie die drei Grundfarben kombiniert: Rot, Grün und Blau. Sie besteht aus drei separaten LEDs (rot, grün und blau), die alle in einem einzigen Gehäuse untergebracht sind.

RGB LED Pinout

Eine RGB LED hat vier Pins:

  • Common (Kathode-) Pin, der mit GND (0V) verbunden werden muss
  • R (rot) Pin zur Steuerung von Rot
  • G (grün) Pin zur Steuerung von Grün
  • B (blau) Pin zur Steuerung von Blau
RGB LED pinout

Wenn wir eine RGB LED an einen Raspberry Pi anschließen möchten, müssen wir strombegrenzende Widerstände verwenden. Die Verkabelung kann etwas schwierig sein, aber keine Sorge. Wir können dieses RGB LED Modul verwenden, das bereits eingebaute Widerstände hat.

Das RGB LED Modul hat ebenfalls vier Pins:

  • Common (Kathode-) Pin: muss mit GND (0V) verbunden werden
  • R (rot): Pin wird zur Steuerung von Rot verwendet
  • G (grün): Pin wird zur Steuerung von Grün verwendet
  • B (blau): Pin wird zur Steuerung von Blau verwendet
RGB LED Module Pinout

※ Notiz:

Der Common-Pin-Typ für eine RGB LED kann variieren; er kann entweder eine Kathode oder Anode sein. Diese Anleitung verwendet einen Common-Kathode-Pin.

Funktionsweise

In der Physik werden drei Farbwerte - Rot (R), Grün (G) und Blau (B) - kombiniert, um eine Farbe zu bilden. Jeder dieser Werte hat einen Bereich von 0 bis 255. Die Kombination der drei Werte erzeugt insgesamt 256 x 256 x 256 Farben.

Wir können die RGB LED jede gewünschte Farbe anzeigen lassen, indem wir den Raspberry Pi programmieren, PWM-Signale (mit Tastverhältnissen von 0 bis 255) an die R-, G- und B-Pins zu senden. Das Tastverhältnis der PWM-Signale, die an die R-, G- und B-Pins gesendet werden, ist proportional zu den Rot (R)-, Grün (G)- und Blau (B)-Farbwerten.

Schaltdiagramm

  • Schaltdiagramm zwischen Raspberry Pi und RGB LED
Raspberry Pi RGB LED wiring diagram

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

  • Schaltdiagramm zwischen Raspberry Pi und RGB LED Modul
Raspberry Pi RGB LED module wiring diagram

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

Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Raspberry Pi Schraubklemmenblock-Shield

RGB LED steuern

Lernen wir Schritt für Schritt, wie wir die RGB LED auf jede beliebige Farbe steuern können, zum Beispiel #00979D:

  • Bestimmen Sie zuerst, welche Farbe Sie anzeigen möchten, und ermitteln Sie deren Farbcode. Tipps:
    • Sie können den Farbwähler verwenden, um den gewünschten Farbcode auszuwählen
    • Wenn Sie eine Farbe aus einem Bild verwenden möchten, können Sie das Online-Tool Colors From Image verwenden
  • Konvertieren Sie dann den Farbcode in R-, G-, B-Werte mit dem Tool von w3school. Notieren Sie sich diese Werte. In diesem Fall: R = 0, G = 151, B = 157
RGB LED color picker
  • Geben Sie die Raspberry Pi Pins an, die mit den R-, G- und B-Pins verbunden sind. Zum Beispiel:
LED_R_PIN = 13 LED_G_PIN = 12 LED_B_PIN = 18
  • Setzen Sie die Raspberry Pi Pins in den Ausgabemodus:
GPIO.setmode(GPIO.BCM) GPIO.setup([LED_R_PIN, LED_G_PIN, LED_B_PIN],GPIO.OUT)
  • Konfigurieren Sie die Raspberry Pi Pins für die Ausgabe von PWM-Signalen mit einer Frequenz von 1000Hz:
RED = GPIO.PWM(LED_R_PIN, 1000) GREEN = GPIO.PWM(LED_G_PIN, 1000) BLUE = GPIO.PWM(LED_B_PIN, 1000)
  • Steuern Sie die LED, um die Farbe #00979D zu leuchten, was R = 0, G = 151, B = 157 entspricht.
RED.ChangeDutyCycle(_map(0, 0, 255, 0, 100)) GREEN.ChangeDutyCycle(_map(151, 0, 255, 0, 100)) BLUE.ChangeDutyCycle(_map(157, 0, 255, 0, 100))

Raspberry Pi - RGB LED Beispielcode

Der folgende Raspberry Pi Code ändert die Farbe der LED in einer Sequenz der folgenden Farbtöne:

  • #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 Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi 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/raspberry-pi/raspberry-pi-led-rgb import RPi.GPIO as GPIO from time import sleep LED_R_PIN = 13 LED_G_PIN = 12 LED_B_PIN = 18 GPIO.setmode(GPIO.BCM) GPIO.setup([LED_R_PIN, LED_G_PIN, LED_B_PIN],GPIO.OUT) RED = GPIO.PWM(LED_R_PIN, 1000) GREEN = GPIO.PWM(LED_G_PIN, 1000) BLUE = GPIO.PWM(LED_B_PIN, 1000) def _map(x, in_min, in_max, out_min, out_max): return int((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min) RED.start(0) GREEN.start(0) BLUE.start(0) try: while True: # color code #00C9CC (R = 0, G = 201, B = 204) RED.ChangeDutyCycle(_map(0, 0, 255, 0, 100)) GREEN.ChangeDutyCycle(_map(201, 0, 255, 0, 100)) BLUE.ChangeDutyCycle(_map(204, 0, 255, 0, 100)) sleep(1) # color code #F7788A (R = 247, G = 120, B = 138) RED.ChangeDutyCycle(_map(247, 0, 255, 0, 100)) GREEN.ChangeDutyCycle(_map(120, 0, 255, 0, 100)) BLUE.ChangeDutyCycle(_map(138, 0, 255, 0, 100)) sleep(1) # color code #34A853 (R = 52, G = 168, B = 83) RED.ChangeDutyCycle(_map(52, 0, 255, 0, 100)) GREEN.ChangeDutyCycle(_map(168, 0, 255, 0, 100)) BLUE.ChangeDutyCycle(_map(83, 0, 255, 0, 100)) sleep(1) finally: RED.stop() GREEN.stop() BLUE.stop() GPIO.cleanup()

Bei der Verwendung vieler Farben können wir den Raspberry Pi Code verkürzen, indem wir eine Funktion erstellen:

# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi 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/raspberry-pi/raspberry-pi-led-rgb import RPi.GPIO as GPIO from time import sleep LED_R_PIN = 13 LED_G_PIN = 12 LED_B_PIN = 18 GPIO.setmode(GPIO.BCM) GPIO.setup([LED_R_PIN, LED_G_PIN, LED_B_PIN],GPIO.OUT) RED = GPIO.PWM(LED_R_PIN, 1000) GREEN = GPIO.PWM(LED_G_PIN, 1000) BLUE = GPIO.PWM(LED_B_PIN, 1000) def _map(x, in_min, in_max, out_min, out_max): return int((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min) def setColor(r,g,b): RED.ChangeDutyCycle(_map(r, 0, 255, 0, 100)) GREEN.ChangeDutyCycle(_map(g, 0, 255, 0, 100)) BLUE.ChangeDutyCycle(_map(b, 0, 255, 0, 100)) RED.start(0) GREEN.start(0) BLUE.start(0) try: while True: # color code #00C9CC (R = 0, G = 201, B = 204) setColor(0, 201, 204); sleep(1) # color code #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); sleep(1) # color code #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); sleep(1) finally: RED.stop() GREEN.stop() BLUE.stop() GPIO.cleanup()

Zusätzliches Wissen

Für eine RGB LED mit gemeinsamer Anode müssen Sie:

  • Den Common-Pin mit 3.3V des Raspberry Pi verbinden.
  • Die analogWrite()-Funktion verwenden und die R-, G- und B-Werte auf 255 - R, 255 - G bzw. 255 - B setzen.

Ein RGB LED Strip besteht aus einer Reihe von RGB LEDs, die miteinander verbunden sind. LED Strips können in adressierbare und nicht-adressierbare Varianten unterteilt werden. Wir werden Tutorials für jeden Typ von LED Strip erstellen.

※ Notiz:

Verwenden Sie nicht einen einzigen Widerstand am Common-Pin einer RGB LED anstelle von drei Widerständen an den anderen Pins.

Es stimmt, dass die drei LEDs in einem einzigen RGB-Gehäuse parallel geschaltet sind. Theoretisch ist es in Ordnung, einen einzigen Widerstand am Common-Pin zu verwenden. In der Realität wird dies jedoch nicht empfohlen. Dies liegt daran, dass echte LEDs nicht die gleichen Eigenschaften haben. Die drei LEDs im RGB-Gehäuse sind NICHT identisch ⇒ Die Widerstände der LEDs sind unterschiedlich ⇒ Der Strom wird nicht gleichmäßig auf jede LED verteilt ⇒ Die Helligkeit ist nicht einheitlich und dies könnte zur Zerstörung einer LED und schließlich der anderen LEDs führen.

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