Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Raspberry PI Tutorial #1: blinkende LEDs

Posted on 19. August 20196. März 2024 by Stefan Draeger

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
  • Aufbau und Schaltung
  • Quellcode
    • Was macht der Code?
    • Erweitern um Funktionen für eine bessere Lesbarkeit
  • Video
  • Abbrechen eines Programmes
  • Wechselblinken
    • Aufbau der Schaltung
      • Video

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 zum Beispiel ü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).

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Aufbau und Schaltung

Für die nachfolgende Schaltung verwende ich 

  • 1x Raspberry Pi, Model B (rev. 1)
  • 1x LED, blau, 5 mm
  • 2x Breadboardkabel, männlich – weiblich, 20 cm
  • 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
Dieses Video auf YouTube ansehen.

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
Dieses Video auf YouTube ansehen.

Schreibe einen Kommentar Antworten abbrechen

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

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}