Ein Druckknopfschalter ist ein einfaches, aber effektives Eingabegerät, das häufig in Projekten wie Starten oder Stoppen von Prozessen, Steuerung von LEDs oder Auslösen von Ereignissen verwendet wird. In diesem Tutorial führt Sie durch das Verbinden eines Druckknopfschalters zum Raspberry Pi, durch das Einrichten der Verkabelung und das Schreiben eines Python -Skripts zum Erkennen von Tastendrücken.
Was Sie brauchen werden
- Raspberry Pi (Jedes Modell mit GPIO -Unterstützung, z. B. PI 3, PI 4)
- Druckknopfschalter
- Breadboard- und Jumper -Drähte
- Widerstand (10 kΩ für Pulldown)
- Python installiert Auf Ihrem Himbeer -Pi
- GPIO -Bibliothek zur Steuerung der GPIO -Stifte des Raspberry Pi
Schritt 1: Verkabelung des Druckknopfs mit Raspberry Pi
Ein Druckknopfschalter funktioniert, indem der GPIO -Pin entweder mit einem hohen (3,3 V) Status angeschlossen wird, wenn Sie gedrückt werden, oder wenn Sie ihn nicht an niedrig (0V) ziehen, wenn Sie nicht gedrückt werden. Wir werden einen Pulldown-Widerstand verwenden, um sicherzustellen, dass der GPIO-Pin niedrig liest, wenn die Taste nicht gedrückt wird.
Verkabelung des Druckknopfs
Druckknopfstift | Raspberry Pi Gpio Pin |
---|---|
Ein Stift | Gpio17 (Pin 11) |
Andere Stift | Masse (Pin 6) |
Ein Stift | 10 ken Widerstand gegen Masse |
Hier ist das Verdrahtungs -Setup:
- Schließen Sie einen Terminal des Druckknopfs an mit an Gpio17 (Pin 11).
- Schließen Sie das andere Terminal des Druckknopfs an mit an Boden (Pin 6).
- Schließen Sie einen 10kΩ -Widerstand zwischen anschließend an Gpio17 Und Boden als Pulldown-Widerstand fungieren.
Dies stellt sicher, dass GPIO17, wenn die Taste gedrückt wird, hoch (3,3 V) liest, und wenn sie nicht gedrückt wird, wird GPIO17 vom Widerstand auf niedrig (0V) gezogen.
Schritt 2: Aktivieren Sie GPIO -Stifte in Python
-
Aktualisieren Sie zunächst die Paketliste Ihres Raspberry Pi:
sudo apt update sudo apt upgrade -y
-
Installieren Sie die erforderliche Python -GPIO -Bibliothek (falls nicht bereits installiert):
sudo apt install python3-rpi.gpio
-
Importieren Sie die Bibliothek in Ihr Python -Skript:
import RPi.GPIO as GPIO import time
Schritt 3: Schreiben Sie den Python -Code
Schreiben wir nun ein Python -Skript, um zu erkennen, wann die Taste gedrückt wird, und ergreifen Sie entsprechend Maßnahmen.
Beispiel für Python -Code
import RPi.GPIO as GPIO
import time
# Set up the GPIO mode and pin
GPIO.setmode(GPIO.BCM) # Use BCM numbering
button_pin = 17 # GPIO pin connected to the button
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Set up pin with pull-down resistor
# Function to detect button press
def button_callback(channel):
print("Button was pressed!")
# Set up an event on the button pin
GPIO.add_event_detect(button_pin, GPIO.RISING, callback=button_callback, bouncetime=300)
try:
print("Press the button...")
while True:
# Keep the program running to wait for button press
time.sleep(0.1)
except KeyboardInterrupt:
print("Program exited")
finally:
GPIO.cleanup() # Clean up GPIO to ensure a clean exit
Code Erläuterung:
- Gpio.setMode (gpio.bcm): Legt die GPIO -PIN -Nummerierung in den BCM (Broadcom) -Modus fest.
- Gpio.setup (button_pin, gpio.in, pull_up_down = gpio.pud_down): Konfiguriert die Tastendispin als Eingang mit einem Pulldown-Widerstand, was bedeutet, dass sie bei Nicht gedrückt wird.
-
Gpio.add_event_detect (): Erkennt die steigende Kante (Taste Drücken) des GPIO -PINs und löst die Rückruffunktion aus
button_callback
Wenn die Taste gedrückt wird. - time.sleep (0.1): Halten Sie das Skript ausgeführt, sodass es auf eine Taste warten kann.
- Gpio.cleanUp (): Reinigt die GPIO -Einstellungen, wenn das Skript beendet ist.
Schritt 4: Testen der Taste
-
Führen Sie Ihr Python -Skript aus:
python3 button.py
-
Drücken Sie die Drucktaste und beobachten Sie die Meldung "Die Taste wurde gedrückt!" im Terminal.
Schritt 5: Anwendungen
Hier sind einige Ideen für die Verwendung des Druckknopfs in Ihren Projekten:
- Kontrolle einer LED: Verwenden Sie den Druckknopf, um eine LED ein- und auszuschalten.
- Ein Ereignis auslösen: Starten oder stoppen Sie einen Prozess (z. B. einen Motor starten, einen Lüfter einschalten oder ein Skript einleiten).
- Smart Türklingel: Verwenden Sie die Taste als Türklingel, um eine Benachrichtigung an Ihr Telefon zu senden.
- Benutzereingabe: Holen Sie sich einfache Benutzereingaben für Ihre Projekte (wie eine Antwort "Ja/Nein").
Fehlerbehebung
-
Taste nicht erkannt:
- Stellen Sie sicher, dass die Taste mit dem Pulldown-Widerstand korrekt verkabelt ist.
- Überprüfen Sie Ihren GPIO-PIN-Setup im Code.
-
GPIO -Fehler:
- Stellen Sie sicher, dass die GPIO -Bibliothek ordnungsgemäß installiert ist und dass die PIN -Nummern in Ihrem Skript korrekt sind.
-
Knopfsprung:
- Wenn Sie feststellen, dass mehrere Tastendrücken erkannt werden, können Sie eine Entladungszeit hinzufügen (
bouncetime=300
im Skript), um falsche Erkennungen zu vermeiden.
- Wenn Sie feststellen, dass mehrere Tastendrücken erkannt werden, können Sie eine Entladungszeit hinzufügen (
Abschluss
Die Verwendung eines Druckknopfschalters mit dem Raspberry Pi ist eine einfache Möglichkeit, Ihren Projekten Eingabefunktionen hinzuzufügen. Egal, ob es sich um LEDs handelt, Ereignisse auszulösen oder mit anderen Hardware zu interagieren, dieses einfache Setup kann die Grundlage für viele interessante Anwendungen sein. Experimentieren Sie mit verschiedenen GPIO -Stiften und entdecken Sie Einstellungen, um Ihren Anforderungen zu entsprechen!