Raspberry Pi - Taste
Diese Anleitung zeigt Ihnen, wie Sie Raspberry Pi mit einer Taste verwenden. Im Detail werden wir lernen:
- Wie Sie die Taste an Raspberry Pi anschließen
- Wie Sie Raspberry Pi programmieren, um den Zustand der Taste zu lesen
- Wie Sie Raspberry Pi programmieren, um die Drück- und Loslassereignisse der Taste zu erkennen.
- Wie Sie das Problem des schwebenden Eingangs vermeiden, wenn Sie die Taste mit Raspberry Pi verwenden.
- Wie Sie das Prellproblem vermeiden, wenn Sie die Taste mit Raspberry Pi verwenden.
Die Taste wird auch als Drucktaste, taktile Taste oder Momentschalter bezeichnet. Sie ist eine grundlegende Komponente und wird in vielen Raspberry Pi Projekten verwendet. Sie ist einfach zu verwenden. Allerdings kann sie für Anfänger aufgrund mechanischer, physischer Aspekte und ihrer Verwendung verwirrend sein. Diese Anleitung vereinfacht es für Anfänger.
Hardware Benötigt
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über die Taste
Bei der Verwendung einer Taste stoßen Anfänger häufig auf zwei häufige Schwierigkeiten:
1. Problem des schwebenden Eingangs:.
- Symptom: Der vom Eingangspin gelesene Wert entspricht nicht dem Zustand des Tastendrucks.
- Ursache: Ein Pull-up oder Pull-down Widerstand wird nicht am Eingangspin verwendet.
- Lösung: Verwenden Sie einen Pull-up oder Pull-down Widerstand, der in dieser Anleitung behandelt wird.
2. Prellphänomen:.
- Symptom: Der Raspberry Pi Code erkennt mehrere Tastendrücke, obwohl die Taste nur einmal gedrückt wurde.
- Ursache: Mechanische und physische Probleme verursachen, dass der Zustand der Taste (oder des Schalters) schnell mehrfach zwischen LOW und HIGH wechselt.
- Lösung: Um dieses Problem zu lösen, wird das Raspberry Pi - Button - Debounce Tutorial die Verwendung von Entprellungstechniken demonstrieren.
Für Anwendungen, die eine exakte Druckerkennung erfordern, ist dies eine Überlegung, die gemacht werden sollte.
Die Tasten-Pinbelegung
Es gibt verschiedene Arten von Drucktasten, die grob in zwei Gruppen kategorisiert werden können:
- PCB-montierte Drucktaste (geeignet für die Montage auf einem Breadboard)
- Panel-montierte Drucktaste

Eine PCB-montierte Taste hat typischerweise vier Pins.

Dennoch sind diese Pins intern paarweise miteinander verbunden. Folglich müssen wir nur zwei der vier Pins verwenden, die intern nicht verbunden sind.
Es gibt vier Methoden, sich mit der Taste zu verbinden, von denen zwei symmetrisch sind (siehe Bild).

? Warum verwenden wir nur zwei Pins einer Taste, wenn sie vier Pins hat?
⇒ Um sicherzustellen, dass sie sicher an ihrem Platz auf der PCB (gedruckte Schaltung) bleibt und jeglichem ausgeübten Druck standhalten kann.
Eine Panel-montierte Taste hat normalerweise zwei Pins.

Das Drucktasten-Modul enthält einen integrierten Pull-down Widerstand, der sicherstellt, dass der Ausgang LOW bleibt, wenn die Taste nicht gedrückt ist. Es hat drei Pins:
- GND: Verbinden Sie diesen Pin mit Masse.
- VCC: Verbinden Sie diesen Pin mit einer 3,3V Stromversorgung.
- OUT: Verbinden Sie diesen Pin mit einem digitalen Eingang Ihres Raspberry Pi.
Mit dieser Konfiguration gibt das Modul LOW aus, wenn die Taste nicht gedrückt ist, und HIGH, wenn die Taste gedrückt ist.
Wie es funktioniert
- Wenn die Taste nicht gedrückt ist, sind Pin A und Pin B nicht verbunden.
- Wenn jedoch die Taste gedrückt wird, werden Pin A und Pin B verbunden.

Raspberry Pi - Taste
Ein Pin der Taste wird entweder mit VCC oder GND verbunden. Der andere Pin derselben Taste wird mit einem Raspberry Pi Pin verbunden. Durch Überprüfung des Status eines als Eingang konfigurierten Raspberry Pi Pins können wir bestimmen, ob eine Taste gedrückt wurde oder nicht.
Tastenzustand und Druckzustand
Die Verbindung zwischen der Taste und Raspberry Pi sowie die Konfiguration des Raspberry Pi Pins bestimmen die Beziehung zwischen dem Tastenzustand und dem Druckzustand.
Es gibt zwei Möglichkeiten, eine Taste mit Raspberry Pi zu verwenden:
- Verbinden Sie einen Pin der Taste mit VCC und den anderen mit einem Raspberry Pi Pin mit einem Pull-down Widerstand
- Wenn die Taste gedrückt wird, ist der Zustand des Raspberry Pi Pins HIGH. Andernfalls ist er LOW
- Ein interner oder externer Widerstand kann verwendet werden. Der interne Widerstand ist in den Raspberry Pi eingebaut und kann über Code eingestellt werden.
- Wenn die Taste gedrückt wird, ist der Zustand des Raspberry Pi Pins LOW. Andernfalls ist er HIGH
- Ein interner oder externer Widerstand kann verwendet werden. Der interne Widerstand ist in den Raspberry Pi eingebaut und kann über Code eingestellt werden.
※ Notiz:
Wenn weder ein Pull-down noch ein Pull-up Widerstand verwendet wird, geht der Eingangspin in einen "schwebenden" Zustand über, wenn die Taste nicht gedrückt ist, was bedeutet, dass der Zustand entweder HIGH oder LOW (instabil) sein kann und zu einer falschen Erkennung führt.
- Die schlechteste Praxis: initialisiert den Raspberry Pi Pin als Eingang (durch Verwendung von GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_OFF)) und verwendet KEINEN externen Pull-down/Pull-up Widerstand.
- Die beste Praxis: initialisiert den Raspberry Pi Pin als internen Pull-up Eingang (durch Verwendung von GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)). Es ist NICHT erforderlich, einen externen Pull-down/Pull-up Widerstand zu verwenden.
Für die Bequemlichkeit von Anfängern verwendet diese Anleitung den einfachsten Ansatz: Konfiguration des Raspberry Pi Pins als interner Pull-up Eingang ohne die Notwendigkeit eines externen Widerstands. Keine Sorge darüber, wie der Pull-up/Pull-down Widerstand anzuschließen ist. Alles was erforderlich ist, ist die Verwendung des Raspberry Pi Codes.
Verdrahtungsdiagramm
- Verdrahtungsdiagramm zwischen Raspberry Pi und PCB-montierter Taste

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
- Verdrahtungsdiagramm zwischen Raspberry Pi und Panel-montierter Taste

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Wie man für eine Taste programmiert
- Verwenden Sie die GPIO.setup() Funktion, um den Raspberry Pi Pin als internen Pull-up Eingang zu initialisieren. Zum Beispiel, Pin 16:
- Verwenden Sie die GPIO.input() Funktion, um den Zustand des Raspberry Pi Pins zu bestimmen.
※ Notiz:
Zwei häufige Anwendungsfälle sind verfügbar:
- Der erste: Wenn der Eingangszustand HIGH ist, führen Sie eine Aktion aus. Wenn der Eingangszustand LOW ist, machen Sie das Gegenteil.
- Der zweite: Wenn sich der Eingangszustand von LOW zu HIGH (oder HIGH zu LOW) ändert, führen Sie eine Aktion aus.
Wir wählen eine davon je nach Anwendung. Zum Beispiel, bei der Verwendung einer Taste zur Steuerung einer LED:
- Wenn wir möchten, dass die LED AN ist, wenn die Taste gedrückt wird, und AUS, wenn die Taste NICHT gedrückt wird, SOLLTEN wir den ersten Anwendungsfall verwenden.
- Wenn wir möchten, dass die LED zwischen AN und AUS umgeschaltet wird, jedes Mal wenn wir die Taste drücken, SOLLTEN wir den zweiten Anwendungsfall verwenden.
Raspberry Pi Code - Lesen des Tastenzustands
Schnelle Schritte
- Stellen Sie sicher, dass Sie Raspbian oder ein anderes Raspberry Pi kompatibles Betriebssystem auf Ihrem Pi installiert haben.
- Stellen Sie sicher, dass Ihr Raspberry Pi mit demselben lokalen Netzwerk wie Ihr PC verbunden ist.
- Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, falls Sie einige Bibliotheken installieren müssen.
- Neu bei Raspberry Pi? Beginnen Sie mit unserem Raspberry Pi Getting Started Leitfaden, um zuerst die Grundlagen zu lernen.
- Verbinden Sie Ihren PC mit dem Raspberry Pi über SSH mit dem integrierten SSH-Client unter Linux und macOS oder PuTTY unter Windows. Siehe wie Sie Ihren PC mit Raspberry Pi über SSH verbinden.
- Stellen Sie sicher, dass Sie die RPi.GPIO Bibliothek installiert haben. Falls nicht, installieren Sie sie mit dem folgenden Befehl:
- Erstellen Sie eine Python-Skript-Datei button.py und fügen Sie den folgenden Code hinzu:
- Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie den folgenden Befehl im Terminal eingeben:
- Drücken Sie die Taste mehrmals und lassen Sie sie los.
- Überprüfen Sie die Ausgabe im Serial Monitor.
1 ist HIGH, 0 ist LOW.
Das Skript läuft in einer endlosen Schleife kontinuierlich, bis Sie Ctrl + C im Terminal drücken.
Code-Erklärung
Schauen Sie sich die zeilenweise Erklärung in den Kommentaren des Quellcodes an!
Raspberry Pi Code - Erkennung von Tastendruckereignissen
Schnelle Schritte
- Erstellen Sie eine Python-Skript-Datei button_pressed.py und fügen Sie den folgenden Code hinzu:
- Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie den folgenden Befehl im Terminal eingeben:
- Drücken Sie die Taste und halten Sie sie einen Moment gedrückt.
- Überprüfen Sie die Ausgabe im Serial Monitor.
Das Skript läuft in einer endlosen Schleife kontinuierlich, bis Sie Ctrl + C im Terminal drücken.
Code-Erklärung
Schauen Sie sich die zeilenweise Erklärung in den Kommentaren des Quellcodes an!
※ Notiz:
- Auch wenn Sie die Taste nur einmal drücken und loslassen, kann die Ausgabe im Terminal mehrere gedrückt und losgelassen Ereignisse anzeigen. Das ist das erwartete Verhalten der Taste. Dieses Phänomen wird als "Prellen" bezeichnet. Um mehr darüber zu erfahren, lesen Sie bitte das Raspberry Pi - Button Debounce Tutorial.
- Wenn Sie das Tasten-Modul verwenden, konfigurieren Sie den Pin in den Eingangsmodus mit GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_OFF). Mit dieser Einstellung gibt das Modul LOW aus, wenn die Taste nicht gedrückt ist, und HIGH, wenn die Taste gedrückt ist.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Fordern Sie sich selbst heraus
- Wenn die Taste gedrückt wird, soll die LED eingeschaltet werden.
- Wenn die Taste nicht gedrückt wird, soll die LED ausgeschaltet werden.
- Jedes Mal, wenn die Taste gedrückt wird, soll die LED zwischen AN und AUS umschalten.
Zusätzliches Wissen
Bei welchen Gelegenheiten sollte ein Pull-down/Pull-up Widerstand für einen Eingangspin verwendet werden und wann nicht?
- Wenn der Sensor entweder geschlossene oder offene Zustände hat, ist ein Pull-up oder Pull-down Widerstand erforderlich, um diese Zustände zu LOW und HIGH zu machen. Beispiele für solche Sensoren sind Drucktaste, Schalter und Magnetkontaktschalter (Türsensor).
- Andererseits, wenn der Sensor zwei definierte Spannungspegel (LOW und HIGH) hat, ist ein Pull-up oder Pull-down Widerstand NICHT notwendig. Beispiele für solche Sensoren sind Bewegungsmelder und Berührungssensor.