2.1.1 Taste¶
Einführung¶
In diesem Projekt lernen wir, wie man eine LED mithilfe einer Taste ein- oder ausschaltet.
Erforderliche Komponenten¶
Für dieses Projekt benötigen wir folgende Komponenten.
Schaltplan¶
Verwenden Sie eine normalerweise offene Taste als Eingang für den Raspberry Pi, die Verbindung ist im folgenden Schaltplan dargestellt. Wenn die Taste gedrückt wird, wird der GPIO18 auf ein hohes Niveau (3,3 V) geschaltet. Wir können den Zustand des GPIO18 durch Programmierung erkennen. Das bedeutet, wenn der GPIO18 auf ein hohes Niveau geschaltet wird, bedeutet dies, dass die Taste gedrückt ist. Sie können den entsprechenden Code ausführen, wenn die Taste gedrückt wird, und dann leuchtet die LED auf.
Bemerkung
Der längere Pin der LED ist die Anode und der kürzere ist die Kathode.
Versuchsdurchführung¶
Schritt 1: Bauen Sie die Schaltung.
Schritt 2: Öffnen Sie die Code-Datei.
cd ~/davinci-kit-for-raspberry-pi/python-pi5
Schritt 3: Führen Sie den Code aus.
sudo python3 2.1.1_Button_zero.py
Drücken Sie jetzt die Taste und die LED leuchtet auf; lassen Sie die Taste los und die LED erlischt.
Code
Bemerkung
Sie können den folgenden Code Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen. Bevor Sie das tun, müssen Sie jedoch zum Quellcodepfad wie davinci-kit-for-raspberry-pi/python-pi5
gehen. Nach der Änderung des Codes können Sie ihn direkt ausführen, um die Wirkung zu sehen.
#!/usr/bin/env python3
from gpiozero import LED, Button # Importieren Sie die Klassen LED und Button aus gpiozero
from signal import pause # Importieren Sie die Funktion pause aus dem Modul signal
# Initialisieren Sie ein LED-Objekt am GPIO-Pin 17
led = LED(17)
# Initialisieren Sie ein Button-Objekt am GPIO-Pin 18
button = Button(18)
# Verknüpfen Sie das "when_pressed"-Ereignis der Taste mit der Methode on() der LED
button.when_pressed = led.on
# Verknüpfen Sie das "when_released"-Ereignis der Taste mit der Methode off() der LED
button.when_released = led.off
# Führen Sie eine Ereignisschleife aus, die auf Tastenereignisse wartet und das Skript am Laufen hält
pause()
Code-Erklärung
Das Skript ist in Python3 geschrieben und importiert die Klassen
LED
undButton
aus der Bibliothekgpiozero
sowiepause
aus dem Modulsignal
.#!/usr/bin/env python3 from gpiozero import LED, Button # Importieren Sie die Klassen LED und Button aus gpiozero from signal import pause # Importieren Sie die Funktion pause aus dem Modul signal
Initialisiert ein
LED
-Objekt am GPIO-Pin 17 und einButton
-Objekt am GPIO-Pin 18.# Initialisieren Sie ein LED-Objekt am GPIO-Pin 17 led = LED(17) # Initialisieren Sie ein Button-Objekt am GPIO-Pin 18 button = Button(18)
Richtet Ereignishandler ein, damit die LED eingeschaltet wird, wenn die Taste gedrückt wird, und ausgeschaltet wird, wenn die Taste losgelassen wird.
# Verknüpfen Sie das "when_pressed"-Ereignis der Taste mit der Methode on() der LED button.when_pressed = led.on # Verknüpfen Sie das "when_released"-Ereignis der Taste mit der Methode off() der LED button.when_released = led.off
Dies hält das Skript in einer Ereignisschleife, die auf Tasten-Druck- und Loslassen-Ereignisse wartet.
# Führen Sie eine Ereignisschleife aus, die auf Tastenereignisse wartet und das Skript am Laufen hält pause()