Raspberry Pi RGB LED ansteuern

Aus Laub-Home Wiki

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

Raspberry Pi GPIO Belegung

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:

Anschluss RGB LED
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:

Quellen