So machen Sie blinkende LEDs mit dem Raspberry Pi 1

So machen Sie blinkende LEDs mit dem Raspberry Pi

Der Raspberry Pi ist mehr als nur ein winziger Computer. Es ist ein leistungsstarkes Board, mit dem Sie mit seinen GPIO-Pins so viele Dinge tun können. Hier zeigen wir Ihnen, wie Sie mit dem Raspberry Pi blinkende LEDs herstellen.

Was bringt die LEDs zum Blinken?

Wenn Sie sich den oberen Teil Ihres Raspberry Pi ansehen, sehen Sie etwa 40 Metallstifte, die aus der Platine herausragen. Wenn Sie einen Raspberry Zero haben, gibt es wahrscheinlich kreisförmige Löcher zum Löten von Kopfstiften. In beiden Fällen werden sie als GPIO-Pins (General Purpose Input / Output) bezeichnet.

GPIO-Pins auf dem Raspberry Pi 3 Model B+. Pin 1 beginnt mit dem oberen linken Pin.

Jeder GPIO-Pin hat zu jeder Zeit einen von zwei Modi: einen HIGH- und einen LOW-Modus. Für die Pinbelegungsspezifikationen des Raspberry Pi, zählt ein mit 3,3 V geladener Pin als HIGH oder „logisch 1“, während alles unter etwa 2,5 V als LOW oder „logisch 0“ zählt. Eine Platine, die auf 3,3 V für hohe und niedrige Ausgänge basiert, soll auf „3,3-V-Logik“ basieren.

Wenn Sie eine LED zwischen einem Pin auf HIGH und einem GND-Pin anschließen, stellen Sie im Grunde eine vollständige Schaltung her. Die LED sollte wegen des durchfließenden Stroms aufleuchten.

Lt Spice Schematische LED-Schaltung
Eine LED-Schaltung besteht aus drei Teilen: einer Spannungsquelle mit Masse, Widerstand und LED.

Manchmal werden Ihre LEDs in Rauch aufgehen, wenn zu viel Strom durch sie fließt. Um dies zu verhindern, können Sie einen Widerstand hinzufügen. Dabei spielt es keine Rolle, ob es sich um die Anoden- oder die Kathodenseite handelt – jede Seite sollte den durchfließenden Strom verringern.

GPIO und andere Pins

Lassen Sie uns hier klarstellen, dass nicht alle dieser Metallstifte als GPIO gelten. Sie sind nur dann GPIO, wenn sie auf High oder Low programmiert werden können – daher der Begriff „Input / Output“. Für den Raspberry PI gibt es auch Pins für die Stromversorgung (3,3 V, 5 V und GND) und die mit EEPROM (ID_SD und ID_SC) arbeiten.

Dieses Mal müssen Sie nicht an all die anderen Pins außer GND und einem GPIO-Pin denken.

Programmierung der GPIO-Pins

Wie teilen Sie jedem GPIO-Pin mit, was zu tun ist? Auf der einfachsten Ebene müssen Sie Befehle im Maschinencode eingeben. Das wird für Anfänger etwas zu schwierig.

Stattdessen können Sie für den Raspberry Pi Python oder C++ verwenden, die dann in Maschinencode kompiliert werden.

Für dieses spezielle Projekt verwenden wir Python, da es einfacher zu verwenden ist.

Was du brauchst

  • Jedes Raspberry Pi-Modell, das nicht der Pico ist (vorzugsweise das Raspberry Pi 3 Model B+ wie in diesem Beispiel, aber alles funktioniert), auf dem das Raspberry Pi-Betriebssystem installiert ist.
  • Ein HDMI-Monitor und Kabel
  • Maus und Tastatur
  • Ein Telefonladegerät (um den Raspberry Pi mit Strom zu versorgen)
  • Eine kleine LED
  • Ein 250Ω-Widerstand (kann ein beliebiger Wert in der Nähe davon sein)
  • Ein lötfreies Steckbrett
  • x2 Stecker-zu-Buchse-Überbrückungsdrähte (oder Stecker-zu-Stecker, wenn Sie einen Header-Hut haben)

Wie man blinkende LEDs macht

Lassen Sie uns Schritt für Schritt vorgehen und eine LED alleine blinken lassen.

  1. Öffnen Sie Ihr Terminal und geben Sie ein sudo apt-get install python3-rpi.gpio um das RPi.GPIO-Modul für Python 3 zu installieren.
Terminal Installieren Sie Python Gpio
  1. Öffnen Sie einen Texteditor und geben Sie diesen Code ein:
import RPI.GPIO as GPIO
from time import sleep
 
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT, initial=GPIO.LOW)
 
while True:
	GPIO.output(7, GPIO.HIGH)
	print("LED on")
	sleep(1)
	GPIO.output(7, GPIO.LOW)
	print("LED off")
	sleep(1)
  1. Speichern Sie es irgendwo in einem Ordner. Der Erweiterungsname sollte .py lauten. AUF meinem Raspberry Pi habe ich es „rpi-blink.py“ genannt, um es leichter zu finden.
Datei-Explorer Rpi Blink-Ordner
  1. Fahren Sie Ihren Raspberry Pi herunter und trennen Sie ihn von allen Stromquellen.
  2. Um mit dem Aufbau der Schaltung zu beginnen, verdrahten Sie Ihre LED so, dass sich entweder an der Kathode oder Anode ein Widerstand befindet, und richten Sie dann die Kathodenseite auf Pin 7 und die Anodenseite auf Pin 9 (GND).
Lt Spice Schaltplan Led X1

Trinkgeld: Um die PIN-Nummer herauszufinden, halten Sie Ihren Raspberry Pi so, dass die GPIO-Pins rechts sitzen. Der obere linke Pin ist Pin 1, der obere rechte ist Pin 2. Der unter Pin 1 ist Pin 3, dann rechts davon Pin 4 und so weiter.

  1. Schalten Sie es wieder ein, damit wir das Python-Skript ausführen können. Öffnen Sie Ihr Terminal und verwenden Sie cd , um in den Ordner der Python-Datei zu wechseln. Typ:
python3 rpi-blink.py

um die LED blinken zu lassen.

Terminal Run Rpi Blink X1

Alternative: Wenn Sie Thonny Python IDE haben, klicken Sie auf die Schaltfläche „Run current script“, damit es direkt von der IDE ausgeführt wird.

Thonny Python Ide-Ausführen-Schaltfläche
  1. Um es zu stoppen, drücken Sie Strg + C innerhalb des Terminals. Wenn Sie jedoch Thonny Python IDE verwenden, schließen Sie einfach den Editor.
Raspberry Pi Blinkende LED X1

Wie der Kodex funktioniert

Es gibt zwei Dinge, die dafür sorgen, dass es funktioniert: der Code und die Schaltung. Wir beginnen mit dem Code und schneiden ihn in drei Teile:

  1. Befehle importieren
  2. Setup-Befehle
  3. Schleifenbefehle

In der Praxis ist es gut, sich Code als kleine Funktionen vorzustellen, die zu größeren Funktionen gruppiert werden.

Befehle importieren

Python macht es normalerweise nicht so einfach, GPIO-Pins zu programmieren. Hinter den Kulissen passiert eine Menge Zeug. Die gute Nachricht ist, dass Sie den Code importieren können, der all diese lästigen Dinge handhabt.

Schauen Sie sich die Zeilen 1 und 2 an:

import RPI.GPIO as GPIO
from time import sleep

Dies sind zwei Zeilen, die Code aus einem sogenannten „Python-Modul“ importieren.

import RPI.GPIO as GPIO ermöglicht Ihnen den Import des Inhalts des RPI.GPIO-Moduls und die Verwendung des GPIO Schlüsselwort zum Aufrufen einer zugehörigen Funktion RPI.GPIO.

Auf der anderen Seite, from time import sleep können Sie die importieren sleep() Funktion aus dem eingebauten Zeitmodul von Python. Dadurch können Sie die nächste Codezeile um eine bestimmte Anzahl von Sekunden verzögern.

Setup-Befehle

Einige Codes müssen auf diese Weise „eingerichtet“ oder definiert werden, weil sie von anderem Code verwendet werden, um komplexe Logik auszuführen. Wir nennen diese Setup-Befehle.

Im Gegensatz zu Importbefehlen „importieren“ Setup-Befehle keinen Code aus externen Modulen. Sie importieren sie aus den Modulen, die Sie bereits importiert haben.

Als Beispiel, GPIO.setwarnings(False) importiert die .setwarnings() Funktion aus der RPI.GPIO Modul, das zuvor als definiert wurde GPIO. Diese Funktion stoppt eine Triggerwarnung, wenn Sie den Code ausführen. Es ist eingestellt True standardmäßig.

Um die anderen beiden zu erklären, fahren wir fort mit GPIO.setmode(GPIO.BOARD). Das sagt RPI.GPIO welche Art von Pinbelegung Sie verwenden werden. Es gibt zwei Typen: BOARD und BCM. Mit der BOARD-Pinbelegung können Sie Pins anhand ihrer Nummer auswählen. In der Zwischenzeit basiert die BCM-Pinbelegung auf ihrer Broadcomm-SOC-Kanalbezeichnung. Um es kurz zu machen, BOARD ist einfacher zu bedienen, weil es immer gleich ist, egal welches Raspberry Pi-Modell Sie verwenden. BCM hingegen ist tendenziell von Modell zu Modell unterschiedlich.

Schließlich haben wir GPIO.setup(7, GPIO.OUT, initial=GPIO.LOW)das nutzt die .setup() Funktion, die Sie nach drei Dingen fragt: der PIN-Nummer, ihrer Bezeichnung und ihrem Anfangswert. Die Pin-Nummer, die wir hier verwenden, ist Pin-Nummer 7. Wir sollen sie in einen Ausgangs-Pin setzen und sicherstellen, dass sie beginnt als LOW. Ohne dies wird der Raspberry Pi nie wissen, was er mit Pin 7 machen soll.

Schleifenbefehle

Das ist der coole Teil. Schleifenbefehle lassen Sie den Raspberry Pi anweisen, Dinge zu tun. Wir haben diese Schleife mit begonnen while True:wodurch die nächsten Codezeilen für immer wiederholt werden.

Es gab drei Funktionen in der Schleife: GPIO.output(), print()und sleep().

  • GPIO.output() Nimmt einen Ausgangspin und setzt ihn auf einen von beiden HIGH oder LOW. Wenn Sie darüber nachgedacht haben, den Pin zu ändern, der auf Ihrem Raspberry Pi verwendet werden soll, dann sollten Sie sich geändert haben 7 mit einer PIN-Nummer Ihrer Wahl.
  • print() lässt es etwas auf der Konsole ausdrucken. Es nimmt eine Zeichenfolge, Zahl oder Variable auf, die die beiden vorherigen enthält.
  • sleep() pausiert das gesamte Programm für eine bestimmte Anzahl von Sekunden. Verwenden Sie eine Zahl kleiner als 1, damit es weniger als eine Sekunde pausiert.

Die Rennbahn

Nun, da Sie wissen, wie der Code funktioniert, werfen wir einen Blick auf die Schaltung. Der Code macht eine Schaltung, indem Pin 7 mit GND verbunden wird. Wenn Pin 7 eingeschaltet ist HIGH, es emittiert 3,3 V, die durch den Widerstand und die LED fließen, und tritt dann in GND ein. Daraus wird ein geschlossener Stromkreis und deshalb leuchtet die LED.

Lt Spice Schaltplan Raspberry Pi Pin 7 Ein und Aus
Links: schematische Schaltung, wenn Pin 7 eingeschaltet ist HIGH. Rechts: schematische Schaltung, wenn Pin 7 eingeschaltet ist LOW.

Aber was passiert, wenn Pin 7 auf Low ist? Die 3,3 V sinken auf etwa 0 V. Auf diese Weise fließt kein Strom durch die LED, sodass sie nicht leuchtet. Sie können sich Pin 7 als eine Art Schalter vorstellen, da er den Stromkreis entweder ein- oder ausschaltet.

Lassen Sie uns mehr LEDs zum Blinken bringen!

Jetzt, da Sie wissen, was die Dinge zum Laufen bringt, ändern wir unseren Code ein wenig, damit er zwei LEDs ausführt.

Dazu müssen Sie nur zwei weitere LEDs beliebiger Farbe und zwei weitere 250-Ω-Widerstände hinzufügen.

  1. Öffnen Sie Ihren Code-Editor erneut und fügen Sie diesen Code ein:
import RPI.GPIO as GPIO
from time import sleep
 
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(12, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(37, GPIO.OUT, initial=GPIO.LOW)
 
while True:
	GPIO.output(7, GPIO.HIGH)
	GPIO.output(12, GPIO.LOW)
	print("LED on @ pin 7")
	print("LED off @ pin 12")
	sleep(1)
	GPIO.output(7, GPIO.LOW)
	GPIO.output(12, GPIO.HIGH)
	print("LED off @ pin 7")
	print("LED on @ pin 12")
	sleep(1)
	if x == 1:
		GPIO.output(37, GPIO.HIGH)
		print("LED on @ pin 37")
		x = 0
	elif x == 0:
		GPIO.output(37, GPIO.LOW)
		print("LED off @ pin 37")
		x = 1
	else:
		print("Logic Error")
	sleep(1)
  1. Speichern Sie und fahren Sie dann Ihren Raspberry Pi herunter.
  2. Um die Schaltung zu verdrahten, verbinden Sie jede LED, die Sie haben, mit einem Widerstand in Reihe und verbinden Sie dann die Kathodenseite mit dem Raspberry Pi. Es sollte einen für Pin 7, einen für Pin 12 und den letzten für Pin 37 geben. Die Anodenseite sollte mit GND verbunden werden. Neben jedem dieser Pins befindet sich ein GND-Pin. Das sollten die Pins 9, 20 und 39 sein.
Lt Spice Schaltplan Led X3

Trinkgeld: Wenn Ihnen der Überbrückungsdraht von Stecker zu Buchse ausgeht, können Sie einen Überbrückungsdraht von Stecker zu Stecker an einen Überbrückungsdraht von Buchse zu Buchse stecken, um einen längeren Überbrückungsdraht von Stecker zu Buchse zu bilden.

Jumper-Stifte
Oben: Überbrückungskabel von Stecker zu Stecker, unten: Überbrückungskabel von Buchse zu Buchse.
  1. Wenn Sie fertig sind, starten Sie den Raspberry Pi und wiederholen Sie Schritt 6, um das Python-Skript zu starten.
Raspberry Pi Blinkende LED X3

Häufig gestellte Fragen

Warum bleibt meine LED offen, wenn ich das Skript stoppe?

Wenn der Raspberry Pi das Python-Skript liest, liest er die Zeile, bevor er den Befehl ausführt. Sie haben es wahrscheinlich sofort gestoppt, nachdem es die Zeile gelesen hat GPIO.output(7, GPIO.HIGH), also war es nicht möglich, den Pin zuerst auf LOW zu bringen. Sie können es so belassen, da es beim nächsten Neustart auf LOW zurückkehrt. Alternativ können Sie ein weiteres Python-Skript erstellen, das den Pin auf LOW schaltet, sobald es ausgeführt wird.

Ich habe meine LED auf den rechten Pin gelegt, aber sie leuchtet überhaupt nicht. Wieso den?

Dafür gibt es zwei mögliche Gründe: Entweder ist Ihre LED defekt oder Sie haben die Kathode auf der gegenüberliegenden Seite angebracht. Versuchen Sie zuerst, die Stifte der LED umzudrehen.

Ist es sicher, die LED umgekehrt zu platzieren?

Ja. Sie können es gegenüber platzieren, und der Strom wird gerade nicht durchlaufen. Es ist eine Besonderheit unter den Dioden – sogar hell Leuchtdioden – sie lassen auf der einen Seite Strom durch und auf der anderen nicht.

Ist es sicher, die LED neu zu positionieren, während der Raspberry Pi mit Strom versorgt wird?

Wenn es nur die LED in die entgegengesetzte Richtung dreht, dann ist es in Ordnung, und es gibt keinen Schaden. Aber wenn Sie die LED überall platzieren, besteht die Möglichkeit, dass Sie den 5-V-Pin mit einem GPIO-Pin kurzschließen. Das wird Ihr Board brechen.


Terenz Jomar Dela Cruz
Terenz Jomar Dela Cruz

Terenz ist ein Hobby-Roboter, der versucht, den großartigsten Roboter zu bauen, den die Welt je gesehen hat. Das hätte er auch schon machen können, wenn er nicht als zweites Hobby so damit beschäftigt gewesen wäre, LEDs durchzubrennen.

Unterstützen Sie unsere Arbeit ❤️

Wenn Ihnen dieser Artikel gefallen hat, können Sie uns mit einem Trinkgeld unterstützen, damit wir weiterhin großartige Inhalte veröffentlichen können.

Sichere Zahlung mit PayPal
Siehe auch:  Kalshis Midterm-Hub zieht rechtliche Aufmerksamkeit wegen Wahlwetten auf sich