Raspberry Pi RGB LED ansteuern
Man kann eine RGB LED mit dem Raspberry Pi ansteuern und diese in verschiedenen Farben aufleuchten lassen. Alles was man dafür braucht ist ein Raspberry Pi (egal welcher) und am besten eine fertig zusammengelötete RGB LED mit Widerständen. Falls man hier kein fertiges Entwicklerboard kaufen möchte, kann man auch einfach eine RGB LED mit den Passenden Widerständen kaufen und diese Verkabeln.
Bei mir kommen die folgenden Komponenten zum Einsatz:
Anschluss der RGB LED am GPIO
Um die LED an den Pi anzuschließen benötigen wir lediglich 3 freie GPIO Pins und einen Ground Pin. Welche GPIO Pins ihr verwendet ist im Prinzip egal ihr müsst nur die richtigen in den Skripten übergeben. Ich habe mich für die unterstehenden entschieden, da diese in eine Reihe sind. Möchtet ihr wissen wir ihr bei eurem Pi die GPIO Belegung auslesen könnt, schaut hier:
Raspberry Pi GPIO Pin | RGB LED Pin |
---|---|
9 (Ground) | GND |
11 (GPIO 17) | B |
13 (GPIO 27) | G |
15 (GPIO 22) | R |
Ansteuern mit einem Python Script
Mit diesem Script können wir alle Farben, die ohne dimmen möglich sind, durch die Reihe für eine Sekunde anzeigen lassen. Es ist eine sehr gute Grundlage und ein guter erster Test.
GitHub Download: https://raw.githubusercontent.com/alaub81/rpi_sensor_scripts/main/rgbled.py
rgbled.py
#!/usr/bin/python3
# Import required Python libraries
import RPi.GPIO as GPIO
import time
# Set the Variables
# set red,green and blue pins
redPin = 22
greenPin = 27
bluePin = 17
# Configuration
# disable warnings (optional)
GPIO.setwarnings(False)
# Select GPIO Mode
GPIO.setmode(GPIO.BCM)
# set pins as outputs
GPIO.setup(redPin,GPIO.OUT)
GPIO.setup(greenPin,GPIO.OUT)
GPIO.setup(bluePin,GPIO.OUT)
# Functions
def turnOff():
GPIO.output(redPin,GPIO.LOW)
GPIO.output(greenPin,GPIO.LOW)
GPIO.output(bluePin,GPIO.LOW)
def white():
GPIO.output(redPin,GPIO.HIGH)
GPIO.output(greenPin,GPIO.HIGH)
GPIO.output(bluePin,GPIO.HIGH)
def red():
GPIO.output(redPin,GPIO.HIGH)
GPIO.output(greenPin,GPIO.LOW)
GPIO.output(bluePin,GPIO.LOW)
def green():
GPIO.output(redPin,GPIO.LOW)
GPIO.output(greenPin,GPIO.HIGH)
GPIO.output(bluePin,GPIO.LOW)
def blue():
GPIO.output(redPin,GPIO.LOW)
GPIO.output(greenPin,GPIO.LOW)
GPIO.output(bluePin,GPIO.HIGH)
def yellow():
GPIO.output(redPin,GPIO.HIGH)
GPIO.output(greenPin,GPIO.HIGH)
GPIO.output(bluePin,GPIO.LOW)
def purple():
GPIO.output(redPin,GPIO.HIGH)
GPIO.output(greenPin,GPIO.LOW)
GPIO.output(bluePin,GPIO.HIGH)
def lightBlue():
GPIO.output(redPin,GPIO.LOW)
GPIO.output(greenPin,GPIO.HIGH)
GPIO.output(bluePin,GPIO.HIGH)
# do the stuff
while True:
try:
print("Press CTRL+C to exit")
turnOff()
time.sleep(1)
white()
time.sleep(1)
red()
time.sleep(1)
green()
time.sleep(1)
blue()
time.sleep(1)
yellow()
time.sleep(1)
purple()
time.sleep(1)
lightBlue()
time.sleep(1)
except KeyboardInterrupt:
print("Goodbye!")
turnOff()
exit (0)
except :
print("An Error accured ... ")
time.sleep(1)
continue
Gebt dem Script nur das execute Recht und startet es. Ich lege die Scripte immer in /usr/local/sbin
ab.
cd /usr/local/sbin
wget https://raw.githubusercontent.com/alaub81/rpi_sensor_scripts/main/rgbled.py
chmod +x rgbled.py
rgbled.py
nun sollte eure angeschlossene LED für eine Sekunde immer einer Farbe anzeigen und einmal kurz ausgehen. Mit STRG+C könnt ihr das Script abbrechen.
GitHub Repository
Alle Skripte die zu den Raspberry Pi Sensoren gehören findet ihr in diesem Repository: