Nachdem es sich während des Studiums ergeben hat, mit eine Raspberry Pi ein Projekt umzusetzen, musste natürlich gleich eines angeschafft werden.
Um ein wenig Gefühl für den Raspberry Pi zu bekommen, habe ich ein paar Test-Programme geschrieben, die z.B. LEDs oder Relais ansteuern.
Diesmal möchte ich euch den Code vorstellen, mit dem ich per Python ein RGB LED steure. Das Python Skript schaltet einfach zwischen den einzelnen LED-Farben hin und her, bis man STRG+C drückt.
[python]
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
RGB = [22,23,24]
LEDSTATUS = [[1,0,0],[1,1,0],[1,1,1],[1,0,1],[0,1,1],[0,0,1]]
for pin in RGB:
GPIO.setup(pin,GPIO.OUT)
GPIO.output(pin,0)
try:
while(True):
for status in LEDSTATUS:
for i in range(0,3):
GPIO.output(RGB[i],status[i])
time.sleep(0.4)
except KeyboardInterrupt:
GPIO.cleanup()
print „“
[/python]
Im ersten Teil
[python]
import RPi.GPIO as GPIO
import time
[/python]
werden die notwendigen Bibliotheken importiert.
Der Modus wird hierbei auf „BCM“ gesetzt. Damit refernziert man auf den jeweiligen GPIO-Pin mit Hilfe der „echten“ GPIO Nummer!
[python]
GPIO.setmode(GPIO.BCM)
[/python]
Das Array RGB wird verwendet um die GPIO Nummern zu verwalten (in diesem Fall GPIO 22, 23 und 24). Das mehrdimensionale Array LEDSTATUS gibt die on/off Stati des jeweiligen GPIOs an. Also 1 würde bedeuten ON, 0 demnach OFF. Wenn man also ein Array [1,0,0] innerhalb des Arrays LEDSTATUS angibt, bedeutet dies, dass das rote LED ein und das grüne und rote LED ausgeschaltet werden. Würde das Arry [0,1,1] angegeben werden, so wird das rote LED aus, aber das grüne und blaue LED eingeschaltet.
Im mittleren Teil wird ein endlos WHILE Schleife erzeugt, die man mit STRG+C abbrechen kann.
[python]
try:
while(True):
…
…
except KeyboardInterrupt:
[/python]
Innerhalb dieser Schleife wird durch das Array LEDSTATUS iteriert und die dementsprechendes GPIOs werden auf ON bzw. OFF gesetzt.
Das Setting mit Hilfe eines Steckbretts sieht wie folgt aus:
Die 4 PINs der LED werden wie folgt angeschlossen bzw. haben folgende Bedeutung. Beachte, dass der längste PIN der Minuspol ist.