Bemerkung

Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Probleme nach dem Kauf und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Tutorials aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und Sneak Peeks.

  • Sonderrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Bereit, mit uns zu entdecken und zu gestalten? Klicken Sie auf [here] und treten Sie noch heute bei!

1.2 RGB-LED

Einführung

In diesem Projekt lernen wir, wie man eine RGB-LED steuert, um verschiedene Farben mit einem Raspberry Pi und GPIO-Programmierung darzustellen. RGB-LEDs sind vielseitige Bauteile, die ein breites Farbspektrum erzeugen können, indem rotes, grünes und blaues Licht mit unterschiedlichen Intensitäten kombiniert wird.


Benötigte Komponenten

Um dieses Projekt durchzuführen, benötigen Sie die folgenden Komponenten:

KOMPONENTE

KAUFLINK

Steckbrett

BUY

Jumper-Kabel

BUY

Widerstand

BUY

RGB LED

BUY

Fusion HAT+

-

Raspberry Pi

-


Schaltplan

Nachdem die R-, G- und B-Pins der RGB-LED mit strombegrenzenden Widerständen verbunden wurden, verbinden Sie diese Widerstände jeweils mit PWM0, PWM1 und PWM2. Der längste Pin der LED (GND) wird mit dem GND-Pin des Raspberry Pi verbunden. Unterschiedliche PWM-Werte für die drei Pins erzeugen verschiedene Farben.

../_images/1.1.2_sch.png

Verdrahtungsdiagramm

Folgen Sie den untenstehenden Schritten, um die Schaltung aufzubauen:

  1. Platzieren Sie die RGB-LED auf dem Breadboard.

  2. Verbinden Sie die roten, grünen und blauen Pins der LED über Widerstände mit P0, P1 und P2.

  3. Verbinden Sie den längsten Pin (GND) der LED mit dem GND-Pin des Raspberry Pi.

../_images/1.1.2_bb.png

Beispiel ausführen

Der gesamte Beispielcode, der in diesem Tutorial verwendet wird, befindet sich im Verzeichnis ai-lab-kit. Folgen Sie diesen Schritten, um das Beispiel auszuführen:

cd ~/ai-lab-kit/python/
sudo python3 1.2_RGBLED.py

Nach dem Start des Programms leuchtet die RGB-LED zuerst rot, dann grün, dann violett, jeweils für 1 Sekunde, und schaltet sich anschließend aus. Durch Drücken von Ctrl + C wird die LED ebenfalls ausgeschaltet.


Code

Der folgende Python-Code wechselt zwischen verschiedenen Farben der RGB-LED, indem unterschiedliche PWM-Werte für die roten, grünen und blauen Komponenten gesetzt werden:

#!/usr/bin/env python3
from fusion_hat.modules import RGB_LED
from fusion_hat.pwm import PWM
from time import sleep

# Initialize an RGB LED. Connect the red component to P0, green to P1, and blue to P2.
rgb_led = RGB_LED(PWM(0), PWM(1), PWM(2), common=RGB_LED.CATHODE)

try:
   # Set the RGB LED to red.
   rgb_led.color((255, 0, 0))
   sleep(1)

   # Set the RGB LED to green.
   rgb_led.color("#00FF22")
   sleep(1)

   # Set the RGB LED to purple.
   rgb_led.color(0xFF00FF)
   sleep(1)

   # Set the RGB LED to black.
   rgb_led.color(0x000000)

except KeyboardInterrupt:
   # Handle a KeyboardInterrupt (Ctrl+C) to exit.
   rgb_led.color(0x000000)
   pass

Dieses Skript demonstriert, wie man eine RGB-LED mithilfe der Fusion-Hat-Bibliothek steuert. Es initialisiert die RGB-LED mit bestimmten PWM-Pins und setzt nacheinander verschiedene Farben.


Den Code verstehen

Führen Sie das Skript auf einem kompatiblen Gerät mit angeschlossener RGB-LED aus. Die LED wechselt nacheinander zu Rot, Grün und Violett und wird anschließend ausgeschaltet.

  1. Importieren der Abhängigkeiten

    from fusion_hat.modules import RGB_LED
    from fusion_hat.pwm import PWM
    from time import sleep
    

    Die erforderlichen Module werden importiert. RGB_LED und PWM aus der fusion_hat-Bibliothek steuern die RGB-LED, und sleep wird für Zeitverzögerungen verwendet.

  2. Initialisieren der RGB-LED

    rgb_led = RGB_LED(PWM(0), PWM(1), PWM(2), common=RGB_LED.CATHODE)
    

    Die RGB-LED wird initialisiert, wobei die roten, grünen und blauen Komponenten mit den PWM-Pins P0, P1 und P2 verbunden sind. Die LED verwendet eine gemeinsame Kathoden-Konfiguration.

  3. Farben nacheinander setzen

    rgb_led.color((255, 0, 0))  # Rot
    sleep(1)
    
    rgb_led.color("#00FF22")  # Grün
    sleep(1)
    
    rgb_led.color(0xFF00FF)  # Violett
    sleep(1)
    

    Das Skript setzt die RGB-LED auf verschiedene Farben und verwendet dabei unterschiedliche Formate:

    • (255, 0, 0): Tupel, das Rot im RGB-Format darstellt.

    • "#00FF22": Hexadezimale Zeichenkette für eine grünliche Farbe.

    • 0xFF00FF: Hexadezimale Ganzzahl für Violett.

  4. LED ausschalten

    rgb_led.color(0x000000)
    

    Das Skript setzt die LED-Farbe auf Schwarz (0x000000) und schaltet sie damit effektiv aus.

  5. Unterbrechungen behandeln

    except KeyboardInterrupt:
       rgb_led.color(0x000000)
       pass
    

    Wenn der Benutzer das Skript mit Ctrl+C unterbricht, wird die Ausnahme abgefangen, und die LED wird ausgeschaltet, bevor das Programm beendet wird.


Fehlerbehebung

  1. LED leuchtet nicht

    • Ursache: Falsche Verdrahtung oder falsche GPIO-Pin-Zuordnung.

    • Lösung: Überprüfen Sie, ob die roten, grünen und blauen Pins der RGB-LED mit den richtigen Pins verbunden sind und ob die gemeinsame Kathode oder Anode korrekt angeschlossen ist.

  2. Flackern oder instabile Farben

    • Ursache: Instabile Stromversorgung oder falsche Widerstandswerte.

    • Lösung: Verwenden Sie geeignete Widerstände und stellen Sie eine stabile Stromversorgung sicher.

  3. Falsche GPIO-Konfiguration


Erweiterungsideen

  1. Benutzerdefinierte Farbsequenzen

    Fügen Sie der COLORS-Liste weitere Farben hinzu, einschließlich gedimmter Varianten wie (125, 50, 200) für einen weicheren Farbton.

  2. Benutzerdefinierte Farben

    Ermöglichen Sie dem Benutzer, eigene RGB-Werte einzugeben:

    while True:
        user_color = input("RGB-Werte eingeben (z. B. 125,0,0): ")
        r, g, b = map(int, user_color.split(","))
        rgb_led.color = (r, g, b)
    
  3. Zufällige Farben

    Erzeugen Sie zufällige Farben für ein dynamisches und unvorhersehbares Lichtspektakel:

    from random import randint
    while True:
       rgb_led.color = (randint(1,255) , randint(1,255) , randint(1,255) )
       sleep(1)
    

Fazit

Wenn Sie dieser Anleitung gefolgt sind, haben Sie erfolgreich gelernt, wie man eine RGB-LED mit einem Raspberry Pi und Python steuert. Dieses Projekt zeigt die Grundlagen von PWM und Farbvermischung, die sich zu komplexeren Lichteffekten erweitern lassen oder als Grundlage für interaktive Projekte dienen können.