RGB LED am Raspberry Pi unter Python anschließen und ansprechen
Der Raspberry Pi ist ein sehr vielseitiger Minicomputer, mit dem sich spannende Elektronikprojekte in Python realisieren lassen. In diesem Artikel zeige ich dir Schritt für Schritt, wie du eine RGB LED an den Raspberry Pi anschließt und mit Python programmierst, um verschiedene Farben zu erzeugen.
So kann man die drei LEDs meines beschriebenen Aufbaus im Beitrag “Ansteuerung von 3 LEDs am Raspberry Pi mit Python basierend auf Temperaturmesswerten” durch eine RGB LED ersetzen und entsprechend ansteuern.
Was ist eine RGB LED?
Eine RGB LED (Rot, Grün, Blau) ist ein spezieller LED-Typ, der durch die individuelle Steuerung der Intensität der roten, grünen und blauen Anteile eine Vielzahl von Farben erzeugen kann. Dies ermöglicht faszinierende Lichteffekte und kreative Beleuchtungslösungen.
Vorteile der RGB LED gegenüber einer herkömmlichen LED
Bevor wir mit der Installation und Programmierung beginnen, werfen wir einen Blick auf die Vor- und Nachteile der RGB LED im Vergleich zu einer herkömmlichen einfarbigen LED:
Vorteile
- Farbvielfalt: RGB LEDs bieten die Möglichkeit, nahezu jede Farbe des RGB-Farbspektrums zu erzeugen, während herkömmliche LEDs auf eine Farbe beschränkt sind.
- Dynamische Effekte: Mit RGB LEDs lassen sich fließende Farbübergänge, Blinkmuster und andere dynamische Lichteffekte erzeugen.
- Anpassbarkeit: Farbe und Helligkeit einer RGB LED können in Echtzeit an unterschiedliche Anforderungen angepasst werden.
Nachteile
- Komplexität: Die Verwendung von RGB LEDs erfordert mehr Pins und eine komplexere Steuerung als bei herkömmlichen LEDs.
- Stromverbrauch: Aufgrund der zusätzlichen Funktionen kann der Stromverbrauch von RGB LEDs höher sein als der von einfachen LEDs.
- Programmieraufwand: Die Programmierung von RGB LEDs erfordert einige Programmier- und Elektronikkenntnisse.
Trotz dieser Nachteile bieten RGB LEDs aufgrund ihrer Vielseitigkeit und der Möglichkeit, beeindruckende Lichteffekte zu erzeugen, eine großartige Möglichkeit, Projekte aufzuwerten.
Voraussetzungen und Vorbereitungen
Bevor du beginnst, stelle sicher, dass du über die folgenden Materialien und Komponenten verfügst:
- einen Raspberry Pi (ich verwende den Raspberry Pi 4, aber auch andere Modelle funktionieren)
- Netzteil – bis zum Model 4 benötigt man einen Micro-USB Stecker, wie zum Beispiel an diesem Steckernetzteil Micro-USB 5V / 3A . Ein übliches Handy Ladekabel mit Micro-USB Stecker könnte für die älteren Modelle vor dem 3er allerdings auch reichen.
- Netzteil – ab dem Model 4 benötigt man einen USB-C Stecker, wie zum Beispiel an diesem offiziellen Netzteil für Raspberry Pi 4 Model B, USB-C, 5.1V, 3A.
- RGB LED (gemeinsame Anode)
- 3 x 150 Ohm Widerstände
- 3 x NPN BC547 Transistoren
- 3 x 1k-Ohm Widerstände
- ein Breadboard und entsprechende Kabel zum Testen, wenn du noch keines hast, empfiehlt sich gleich ein entsprechendes Set
- optional eine GPIO Kabel Erweiterungsplatine, da diese die Arbeit etwas erleichtert
Sorge außerdem dafür, dass dein Raspberry Pi ordnungsgemäß eingerichtet und auf dem neuesten Stand ist. Du kannst dies mit den folgenden Befehlen im Terminal überprüfen und aktualisieren:
1 |
sudo apt-get update && sudo apt-get upgrade |
Eine Übersicht über wichtige und häufig verwendete Befehle stelle ich dir auf einem kleinen Spickzettel für Raspberry Pi OS Befehle zur Verfügung.
Schaltungsaufbau
Je nachdem, ob du eine RGB LED mit gemeinsamer Kathode oder mit gemeinsamer Anode verwendest, sieht die Schaltung etwas anders aus. In meinem Beispiel verwende ich eine RGB LED mit gemeinsamer Anode.
Den langen Anschluss (Anode) der RGB-LED verbindest du mit dem 5V-Pin (Pin 2) deines Raspberry Pi. Die drei kurzen Anschlüsse (Kathoden) der RGB LED verbindest du jeweils mit einem 150 Ohm Widerstand, der mit dem Kollektor (drittes Beinchen) des BC547 Transistors verbunden ist. Den Emitter (erstes Beinchen) jedes BC547 Transistors verbindest du mit GND (Ground, Pin 6) und das mittlere Beinchen (Basis) jedes Transistors verbindest du jeweils mit einem 1k Ohm Widerstand. Und jeden dieser Widerstände verbindest du mit den GPIO-Pins deiner Wahl (z.B. GPIO 24 für Rot, GPIO 18 für Grün und GPIO 25 für Blau).
Die fritzing Projektdatei habe ich für dich zum Download bereitgestellt.
Python-Code zur Steuerung der RGB LED
Zur Ansteuerung der RGB LED verwenden wir Python und die Bibliothek RPi.GPIO. Falls du RPi.GPIO bis jetzt nicht installiert hast, kannst du es mit folgendem Befehl installieren:
1 |
sudo apt install python3-rpi.gpio |
Mit folgendem Python-Programm steuerst du die RGB LED, indem du verschiedene Farben schaltest:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
#!/usr/bin/python # coding=utf-8 # rgb_led.py #------------------------------------------------------------ import time import RPi.GPIO as GPIO # GPIO-Pin-Nummern entsprechend deiner Verkabelung festlegen rot_pin = 24 gruen_pin = 18 blau_pin = 25 # GPIO initialisieren GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) # Warnmeldungen abschalten GPIO.setup(rot_pin, GPIO.OUT) GPIO.setup(gruen_pin, GPIO.OUT) GPIO.setup(blau_pin, GPIO.OUT) # Funktion zur Änderung der RGB-Farbe def setze_farbe(rot, gruen, blau): GPIO.output(rot_pin, rot) GPIO.output(gruen_pin, gruen) GPIO.output(blau_pin, blau) # RGB LED ausschalten (alle Pins auf LOW setzen) def led_ausschalten(): setze_farbe(GPIO.LOW, GPIO.LOW, GPIO.LOW) try: while True: # Rote Farbe anzeigen setze_farbe(GPIO.HIGH, GPIO.LOW, GPIO.LOW) time.sleep(2) # Grüne Farbe anzeigen setze_farbe(GPIO.LOW, GPIO.HIGH, GPIO.LOW) time.sleep(2) # Blaue Farbe anzeigen setze_farbe(GPIO.LOW, GPIO.LOW, GPIO.HIGH) time.sleep(2) # Gelb Farbe anzeigen setze_farbe(GPIO.HIGH, GPIO.HIGH, GPIO.LOW) time.sleep(2) # Cyan Farbe anzeigen setze_farbe(GPIO.LOW, GPIO.HIGH, GPIO.HIGH) time.sleep(2) # Magenta Farbe anzeigen setze_farbe(GPIO.HIGH, GPIO.LOW, GPIO.HIGH) time.sleep(2) # Weiß Farbe anzeigen setze_farbe(GPIO.HIGH, GPIO.HIGH, GPIO.HIGH) time.sleep(2) except KeyboardInterrupt: print('Programm wurde mittels STRG+C abgebrochen') led_ausschalten() GPIO.cleanup() |
Dieses Python-Programm schaltet die RGB LED nacheinander in den Farben Rot, Grün, Blau, Gelb, Cyan, Magenta und Weiß ein und wartet jeweils zwei Sekunden, bevor zur nächsten Farbe gewechselt wird. Das Programm läuft in einer Endlosschleife und kann mit STRG+C beendet werden.
Fazit
Der Anschluss und die Steuerung einer RGB LED am Raspberry Pi mit Python ist eine großartige Möglichkeit, kreative Lichteffekte in deine eigenen Elektronikprojekte zu integrieren.
Ich hoffe, dieser Artikel hat dir geholfen, RGB LEDs besser zu verstehen und sie in deinen eigenen Raspberry Pi Projekten einzusetzen. Viel Spaß beim Experimentieren und Entwickeln!
Bereitgestellte Dateien und Links
Die Fritzing Projektdatei steht auch auf meiner Fritzing Projektseite auf diesem Blog zum Download zur Verfügung.
Wenn du dir das Abtippen oder Kopieren des Codes sparen möchtest, steht dir der Code als Textdatei zum Download bereit.
Gib im Terminal folgenden Befehl ein, dieser lädt die Textdatei herunter und speichert diese als Python-Datei ab.
1 |
wget -O rgb_led.py https://webnist.de/downloads/rgb_led.txt |
Kleiner Hinweis, alle Kommentare werden moderiert.
Dies bedeutet, der Kommentar wird vor der Veröffentlichung durchgelesen und von mir geprüft. Auch behalte ich mir vor, jeden Kommentar zu löschen, der nicht direkt auf das Thema abzielt oder nur den Zweck hat, Leser oder Autoren herabzuwürdigen.