Raspberry Pi-Projekt: GPIO-Pins
In diesem Projekt verwenden wir die GPIO -Pins des Raspberry Pi . Die Pinbelegung dieser GPIO-Pins finden Sie, indem Sie „Pinbelegung“ in das Terminal eingeben. Von diesen GPIO-Pins führen wir einige Überbrückungskabel, die wir mit einem Steckbrett verbinden. Auf der Steckplatine platzieren wir zwei Taster und zwei LEDs.
Zusätzlich platzieren wir auf jeder LED einen Widerstand, der dafür sorgt, dass nicht zu viel Strom durch die LED fließt. Ziel des Projektes ist es, die LEDs über die Taster steuern zu können. Das bedeutet, dass beim Drücken des rechten Druckknopfes die rechte LED aufleuchtet. Und wenn Sie den linken Druckknopf drücken, leuchtet die linke LED auf. Wenn Sie beide Drucktasten gleichzeitig drücken, bringen wir beide LEDs zum Blinken.
Bauen & Verkabeln
Der Raspberry Pi verfügt über eine Reihe von GPIO-Pins. Mithilfe von Überbrückungskabeln verbinden wir diese Pins mit einem Steckbrett. Auf der Steckplatine platzieren wir zwei Taster, zwei LEDs und zwei Widerstände (siehe Bild). Als nächstes verbinden wir die Kathode (= das Minus bzw. das kurze Beinchen der LED) beider LEDs mit GND (Masse = 0V).
Außerdem verbinden wir jeweils eine Seite der beiden Druckknöpfe mit der Masse. Im Bild unten haben wir schwarze Überbrückungskabel für die Masse gewählt. Jetzt verbinden wir die andere Seite der Komponenten.
Die Anode (= das Plus am langen Beinchen der LED) der LEDs verbinden wir mit einem Widerstand. Die andere Seite des Widerstandes verbinden wir mit einem GPIO-Pin. In diesem Beispiel haben wir LED 1 mit GPIO-Pin 8 und LED 2 mit GPIO-Pin 7 verbunden. Siehe Abbildung unten.
Im Gegensatz zu den LEDs schließen wir die Drucktasten direkt an die GPIO-Pins an. Hierbei ist es nicht nötig, zwischen Taster und Raspberry Pi einen zusätzlichen Widerstand zu platzieren. Im Beispiel verbinden wir Druckknopf 1 mit GPIO-Pin 14 und Druckknopf 2 mit GPIO-Pin 21. Siehe Abbildung unten.

Wenn Sie alles richtig angeschlossen haben, wie im Beispiel, können Sie mit dem Code fortfahren.
Programmierung
Jetzt ist es an der Zeit, Code zur Steuerung der GPIO-Pins zu erstellen. Wir erstellen diesen Code in der Thonny Python IDE. Die RPi.GPIO-Python-Bibliothek erleichtert das Lesen und Steuern der GPIO-Pins. Diese Bibliothek ist im Raspberry Pi -Betriebssystem bereits standardmäßig installiert.
Sobald Sie Thonny Python IDE gestartet haben, können Sie den Code eingeben. Oben im Code importieren wir die RPi.GPIO-Bibliothek (die wir GPIO nennen) und die Zeitbibliothek.
import RPi.GPIO as GPIO
import timeDie GPIO-Pins können auf verschiedene Arten nummeriert werden. In der RPi.GPIO-Bibliothek können Sie PIN-Codes (BOARD) oder Broadcom GPIO-Nummern (BCM) auswählen. Sie können nicht beides gleichzeitig verwenden, also müssen wir eine Wahl treffen. In unserem Fall wählen wir die BCM-Nummerierung.
GPIO.setmode(GPIO.BCM)Jetzt müssen wir sicherstellen, dass die GPIO-Warnungen deaktiviert sind. Dies erreichen wir mit der folgenden Regel:
GPIO.setwarnings (False)Jetzt ist es an der Zeit anzugeben, mit welchem GPIO-Pin jede Komponente verbunden ist. Dazu benennen wir die Drucktasten und LEDs und geben dann an, mit welchem GPIO-Pin sie verbunden sind.
button1 = 14
button2 = 21
led1 = 8
led2 = 7Sollten Sie die Komponenten an einem anderen GPIO-Pin angeschlossen haben, können Sie dies hier ganz einfach ändern, indem Sie eine andere Nummer eingeben.
Jetzt teilen wir dem Code mit, welche Funktionen die GPIO-Pins haben. Wir teilen dem Code mit, dass Taste1 und Taste2 (Pin 14 und Pin 21) beide ein Eingang sind. Dahinter weisen wir darauf hin, dass es sich um Druckknöpfe handelt. Mit den GPIO-Pins der LEDs zeigen wir lediglich an, dass es sich um einen Ausgang handelt.
GPIO.setup(button1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(button2, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(led1, GPIO.OUT)
GPIO.setup(led2, GPIO.OUT)Jetzt erstellen wir eine Endlosschleife. Dies erreichen wir, indem wir die While-Schleife auf „True“ setzen. Anschließend fügen wir den Code ein, dass immer geprüft wird, ob eine Taste gedrückt wurde. Wenn dies der Fall ist, wird der ButtonState der jeweiligen Schaltfläche True.
while True:
buttonState1 = GPIO.input(button1)
buttonState2 = GPIO.input(button2)Nun kommen wir zum Abschnitt LED-Steuerung. Es wird immer geprüft, welche Taste gedrückt wurde. Wenn keine Tasten gedrückt werden, sind beide LEDs aus. Wenn die Taste 1 gedrückt wird, leuchtet die LED 1. Wenn der Drucktaster 2 gedrückt wird, leuchtet die LED 2. Wenn beide Drucktasten gedrückt werden, blinken beide LEDs. Dies geschieht, indem die LEDs für 0,1 Sekunden eingeschaltet und danach für 0,1 Sekunden wieder ausgeschaltet werden. Dies wird so lange fortgesetzt, bis die Drucktasten nicht mehr gedrückt werden.
if buttonState1 == True and buttonState2 == True:
GPIO.output(led1,0)
GPIO.output(led2,0)
if buttonState1 == False and buttonState2 == True:
GPIO.output(led1,1)
GPIO.output(led2,0)
if buttonState1 == True and buttonState2 == False:
GPIO.output(led1,0)
GPIO.output(led2,1)
if buttonState1 == False and buttonState2 == False:
GPIO.output(led1,1)
GPIO.output(led2,1)
time.sleep(0.1)
GPIO.output(led1,0)
GPIO.output(led2,0)
time.sleep(0.1)Nachfolgend finden Sie den gesamten Code am Stück. Sie können den Code erneut eingeben oder kopieren. Wir empfehlen Ihnen, den Code erneut einzugeben, da Sie dadurch mehr erfahren. Auch Anpassungen oder Ergänzungen des Codes können Sie sich selbst überlegen.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings (False)
button1 = 14
button2 = 21
led1 = 8
led2 = 7
GPIO.setup(button1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(button2, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(led1, GPIO.OUT)
GPIO.setup(led2, GPIO.OUT)
while True:
buttonState1 = GPIO.input(button1)
buttonState2 = GPIO.input(button2)
if buttonState1 == True and buttonState2 == True:
GPIO.output(led1,0)
GPIO.output(led2,0)
if buttonState1 == False and buttonState2 == True:
GPIO.output(led1,1)
GPIO.output(led2,0)
if buttonState1 == True and buttonState2 == False:
GPIO.output(led1,0)
GPIO.output(led2,1)
if buttonState1 == False and buttonState2 == False:
GPIO.output(led1,1)
GPIO.output(led2,1)
time.sleep(0.1)
GPIO.output(led1,0)
GPIO.output(led2,0)
time.sleep(0.1)Wenn Sie dieses Projekt erfolgreich abgeschlossen haben, wissen Sie, wie und wofür Sie die GPIO-Pins Raspberry Pi verwenden können.
Benötigte Produkte
1×Raspberry Pi 4 Modell B 4 GB RAM
1×Original Raspberry Pi 4B Netzteil Weiß
1×Transcend 32, 64, 128, 256 GB Micro SD Raspberry Pi OS Software 100 MB/s
1×Micro-HDMI-zu-HDMI-Anschluss 0,2 m
1×Raspberry Pi Maus rot/weiß
1×Raspberry Pi Tastatur rot/weiß (US)
1×Raspberry Pi Maus rot/weiß
1×Steckbrett 400 Verbindungspunkte
1×3 mm LED rot
2×220 Ohm Widerstand
2×Druckknopf gelb
1×Premium-Überbrückungsdrähte 40 Stück 10 cm F/M
1×Premium-Überbrückungsdrähte, 40 Stück, 10 cm, M/M
- 1×