Raspberry PI Tutorial #1: blinkende LEDs

Mit dem Tutorial Raspberry PI Kit #1: Smart Plant Kit “Schlaue Pflanze” habe ich den ersten Beitrag zu meiner neuen Reihe zum Einplatinencomputer Raspberry PI veröffentlicht.

Raspberry PI - Smart Plant Kit
Raspberry PI – Smart Plant Kit

Für dieses und einige weitere Tutorials verwende ich die elektronischen Komponenten aus dem oben genannten Set.

In diesem Beitrag möchte ich zeigen wie man LEDs am Raspberry PI zum blinken bringen kann.

Bezug

Je nach verwendeter LED wird noch ein Vorwiderstand benötigt. In diesem Tutorial verwende ich die blauen LEDs aus dem Set „Smart Plant Kit “Schlaue Pflanze“ von Reichelt-Elektronik, welche mit 3,3V betrieben werden und somit bestens für den Raspberry PI geeignet sind, da dieser über eine 3,3V (und 5V) Spannungsversorgung verfügt.

Die LEDs kann man zbsp. über ebay.de für knapp 3€ erwerben. Wenn man das Glück hat und einen Conrad Shop bei sich in der nähe hat so kann man dort relativ günstig diese vor Ort erwerben (mit Versandkosten wäre dieses deutlich zu teuer).

Aufbau und Schaltung

Für die nachfolgende Schaltung verwende ich 

  • 1x Raspbeery Pi, Model B (rev. 1)
  • 1x LED, blau, 5mm
  • 2x Breadboardkabel, männlich – weiblich, 20cm
  • 1x Breadboard, 400 Pin
Raspberry Pi - Aufbau der Schaltung für eine LED
Raspberry Pi – Aufbau der Schaltung für eine LED

Die Anode (+ Pol, langes Beinchen, abgeflachte Seite am Gehäuse) der LED wird mit einem freien GPIO Pin verbunden und die Kathode (-, kurzes Beinchen) wird mit GND verbunden. Hier ist wie Eingangs erwähnt darauf zu achten das ggf. ein Vorwiderstand eingesetzt werden muss! (Bei der Verwendung einer blauen, 3,3V LED ist dieses nicht notwendig.)

Natürlich kann man dieses auch mit dem neuen Raspberry Pi 4, oder 3 machen. Jedoch habe ich dieses Modell hier ohne Benutzung und diese kleine Aufgabe löst das alte Modell genauso gut wie die neuen.

 

Quellcode

Ein Python Skript wird immer von oben nach unten abgearbeitet, d.h. wir könnten in unserem Fall kann das Programm wie folgt sein.

import RPi.GPIO as GPIO
import time

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(4,GPIO.OUT)


while True:
        GPIO.output(4,True)
        time.sleep(1)
        GPIO.output(4,False)
        time.sleep(1)

Was macht der Code?

Gehen wir nun den Quellcode Zeile für Zeile durch.

Zeile 1 – import RPi.GPIO as GPIO

Diese Zeile läd die Bibliothek RPi.GPIO als Name GPIO, statt GPIO könnten wir einen beliebigen anderen Namen wählen.

Zeile 2 – import time

Diese Zeile läd die Bibliothek time, damit wir in unserem Programm eine Pause einlegen können.

Zeile 4 –  GPIO.setwarnings(False)

Damit deaktivieren wir die Warnings welche ausgeben werden wenn wir zbsp. unser Programm wärend der Ausführung mit Strg+C abbrechen.

Zeile 5 – GPIO.setmode(GPIO.BCM)

Mit dem Wert GPIO.BCM wird definiert dass, die Pin Bezeichnungen GPIO4, GPIO14 usw. verwendet werden, als alternative kann man hier GPIO.BOARD nutzen dieses sorgt dann unter anderem dafür das die Pin Bezeichnungen P1, P4, P6 usw. genutzt werden.

Zeile 6 – GPIO.setup(4,GPIO.OUT)

Die Zeile 6 definiert den GPIO Pin 4 als Ausgang (Output), da ein GPIO Pin sowohl als Eingang und als Ausgang fungieren kann, müssen wir immer definieren als was dieser Pin genutzt werden soll.

Zeile 8 – while True:

In der Zeile 8 starten wir unsere Endlosschleife. Dieses machen wir indem wir der While Schleife einfach den Parameter True übergeben. Es ist darauf zu achten das der nachfolgende Quellcode mit einem Tab eingerückt wird!

Zeile 9 – GPIO.output(4,True)

Zum aktivieren einer LED müssen wir lediglich den GPIO Pin aktivieren, dieses erledigen wir indem wir der Funktion „output“ als Parameter den Pin unserer LED übergeben sowie den gewünschten Status. In diesem Fall ist es True damit der GPIO Pin auf HIGH gesetzt wird.

Zeile 10 – time.sleep(1)

Um nun ein Blinken zu erzeugen, müssen wir eine kleine Pause einlegen. Dazu nutzen wir die zuvor definierte time Bibliothek.
Mit der Funktion „sleep“ können wir definieren wielange das Programm pausieren soll, dabei kann eine Gleitkommazahl eingegeben werden. Die Zahl 1 steht hier für 1 Sekunde, d.h. wenn wir eine halbe Sekunde pausieren möchten, müssen wir „0.5“ eingeben.

Zeile 11 – GPIO.output(4,False)

Nachdem wir nun eine Sekunde pause gemacht haben wollen wir die LED deaktivieren, dieses machen wir indem wir der bekannten Funktion „output“ ein False für den Status übergeben.

Zeile 12 – time.sleep(1)

Da unsere Schleife sofort wieder von vorne beginnen würde und unsere LED dann wieder aktiv wäre müssen wir zum Schluss erneut eine kleine Pause einlegen.

Erweitern um Funktionen für eine bessere Lesbarkeit

Dieses würde schon so funktionieren, jedoch wollen wir das mal etwas lesbarer machen und uns zwei Funktionen erschaffen welche erkenntlich machen was für die Initialisierung von Daten zuständig ist und was die eigentliche Ablaufsteuerung ist. Wenn du bereits Erfahrung mit Arduinos gesammelt hast dann werden dir hier sicherlich zwei passende Funktionen einfallen.

import RPi.GPIO as GPIO
import time

def setup():
        GPIO.setwarnings(False)
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(4,GPIO.OUT)


def loop():
        GPIO.output(4,True)
        time.sleep(1)
        GPIO.output(4,False)
        time.sleep(1)

setup()
while True:
        loop()

Video

Raspberry Pi Tutorial #1: blinkende LED

Abbrechen eines Programmes

Um nun das Programm zu beenden muss man auf der Konsole lediglich die Tastenkombination Strg+C betätigen. In unserem Fall haben wir keine Routine implementiert welche dieses Ereignis behandelt somit wird auf der Konsole eine Fehlermeldung angezeigt.

pi@raspberrypi:~/led_wechselblinken $ sudo python3 led_wechselblinken.py
^CTraceback (most recent call last):
  File "led_wechselblinken.py", line 30, in <module>
    loop()
  File "led_wechselblinken.py", line 19, in loop
    blink(led3)
  File "led_wechselblinken.py", line 25, in blink
    time.sleep(0.25)
KeyboardInterrupt
pi@raspberrypi:~/led_wechselblinken $

Wie man diese Fehlermeldung unterdrückt oder besser noch behandelt erläutere ich in einem späteren Tutorial.

Wechselblinken

Nachdem wir nun wissen wie man eine LED am Raspberry PI betreiben und zum blinken bringen kann, möchten wir nun 3 LEDs anschließen und jeweils nacheinander zum blinken bringen.

Für diese Schaltung benötigst du:

  • 3x, LED, 5mm, blau,
  • 3x, Breadboardkabel, 20cm, männlich – weiblich,
  • 3x, Breadboardkabel, 20cm, männlich – männlich,
  • 1x Breadboard, 400 Pin,
  • 1x Raspberry PI

Alle Bauteile (außer den Raspberry PI) findest du in dem Set Smart Plant Kit „Schlaue Pflanze“ von Reichelt-Elektronik.

Aufbau der Schaltung

Die Schaltung für 3 LEDs ist quasi 3 mal die Schaltung für eine LED. 

Aufbau der Schaltung für das wechselblinken von 3 LEDs am Raspberry PI.
Aufbau der Schaltung für das wechselblinken von 3 LEDs am Raspberry PI.

Video

Raspberry PI Tutorial - Wechselblinken mit 3 LEDs

 

 

Ein Kommentar

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert