Bemerkung
Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Vertiefen Sie sich mit anderen Enthusiasten in die Welt von Raspberry Pi, Arduino und ESP32.
Warum beitreten?
Expertenunterstützung: Lösen Sie Probleme nach dem Verkauf und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Austausch von Tipps und Anleitungen zur Verbesserung Ihrer Fähigkeiten.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Giveaways: Nehmen Sie an Giveaways und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu kreieren? Klicken Sie auf [hier] und treten Sie heute bei!
2.5 Den Tastendruck auslesen
In dieser Lektion lernen wir, wie man mit dem Raspberry Pi Pico 2 eine Taster-Eingabe liest. Bisher haben wir die GPIO-Pins hauptsächlich für Ausgaben verwendet, z. B. zum Einschalten von LEDs. Jetzt nutzen wir einen GPIO-Pin als Eingang, um zu erkennen, wann eine Taste gedrückt wird. Dies ist eine grundlegende Fähigkeit für die Entwicklung interaktiver Projekte.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Bauteile.
Ein komplettes Kit ist besonders praktisch, hier ist der Link:
Name |
ENTHALTENE TEILE IM KIT |
LINK |
|---|---|---|
Newton Lab Kit |
450+ |
Alternativ können die Komponenten auch einzeln über die untenstehenden Links erworben werden.
SN |
KOMPONENTE |
MENGE |
LINK |
|---|---|---|---|
1 |
1 |
||
2 |
Micro-USB-Kabel |
1 |
|
3 |
1 |
||
4 |
Mehrere |
||
5 |
1 (10KΩ) |
||
6 |
1 |
Schaltplan

Sobald eine Seite des Tasters mit 3.3v und die andere Seite mit GP14 verbunden ist, wird GP14 auf HIGH gesetzt, wenn der Taster gedrückt wird. Wenn der Taster jedoch nicht gedrückt ist, befindet sich GP14 in einem undefinierten Zustand und kann entweder HIGH oder LOW sein. Um sicherzustellen, dass GP14 im nicht gedrückten Zustand stabil auf LOW bleibt, wird ein 10KΩ-Pull-Down-Widerstand zwischen GP14 und GND angeschlossen.
Taster nicht gedrückt: GP14 ist über den Widerstand mit GND verbunden und liest LOW (0).
Taster gedrückt: GP14 ist mit 3,3V verbunden und liest HIGH (1).
Verdrahtungsdiagramm
Ein vierpoliger Taster hat eine H-Form. Die beiden linken sowie die beiden rechten Pins sind jeweils intern verbunden. Dies bedeutet, dass die Pins erst dann elektrisch miteinander verbunden werden, wenn der Taster gedrückt wird.
Code schreiben
Bemerkung
Sie können die Datei
2.5_reading_button_value.inoaus dem Verzeichnisnewton-lab-kit/arduino/2.5_reading_button_valueöffnen.Oder diesen Code in die Arduino IDE kopieren.
Wählen Sie das Raspberry Pi Pico 2 Board und den richtigen Port aus und klicken Sie auf „Hochladen“.
const int buttonPin = 14; // GPIO-Pin, der mit dem Taster verbunden ist
void setup() {
Serial.begin(115200); // Serielle Kommunikation mit 115200 Baud starten
pinMode(buttonPin, INPUT); // Den Button-Pin als Eingang setzen
}
void loop() {
int buttonState = digitalRead(buttonPin); // Status des Tasters auslesen
if (buttonState == HIGH) {
Serial.println("Taste gedrückt!");
}
delay(100); // Kleine Verzögerung, um mehrfaches Auslesen zu vermeiden
}
Nach dem Hochladen des Codes klicken Sie auf das Lupen-Symbol (Serieller Monitor) in der oberen rechten Ecke der Arduino IDE.
Setzen Sie die Baudrate auf 115200, um mit der Zeile
Serial.begin(115200);übereinzustimmen.Jedes Mal, wenn Sie den Taster drücken, sollte die Meldung „Taste gedrückt!“ im Seriellen Monitor erscheinen.
Verständnis des Codes
Initialisieren der seriellen Kommunikation:
Startet die serielle Kommunikation mit einer Baudrate von 115200. Damit können wir Nachrichten im Seriellen Monitor ausgeben.
Serial.begin(115200);
Festlegen des Button-Pins:
Konfiguriert GP14 als Eingang, um den Status des Tasters zu lesen.
pinMode(buttonPin, INPUT);
Tasterstatus auslesen:
Liest den aktuellen Zustand des Tasters. Er ist
HIGH, wenn er gedrückt wird, undLOW, wenn nicht.int buttonState = digitalRead(buttonPin);
Reaktion auf das Drücken des Tasters:
Falls der Taster gedrückt wird, gibt das Programm eine Meldung im Seriellen Monitor aus.
if (buttonState == HIGH) { Serial.println("You pressed the button!"); }
Alternative: Pull-Up-Widerstand verwenden
Sie können den Taster auch mit einem Pull-Up-Widerstand anschließen. In dieser Konfiguration:
Taster nicht gedrückt: GP14 ist über einen Widerstand mit 3.3V verbunden und liest HIGH (1).
Taster gedrückt: GP14 wird direkt mit GND verbunden und liest LOW (0).
Verkabelung:
Verbinden Sie einen 10KΩ-Widerstand von GP14 zu 3.3V.
Verbinden Sie eine Seite des Tasters mit GP14.
Verbinden Sie die andere Seite des Tasters mit GND.
Code-Anpassung:
Ändern Sie die Bedingung in der
if-Anweisung:if (buttonState == LOW) { Serial.println("You pressed the button!"); }
Interner Pull-Up-Widerstand des Pico verwenden
Der Raspberry Pi Pico 2 erlaubt es, einen internen Pull-Up-Widerstand zu aktivieren, sodass kein externer Widerstand benötigt wird.
Vorteile: Einfachere Verdrahtung und Platzersparnis auf dem Breadboard.
Taster nicht gedrückt: GP14 liest HIGH (1) durch den internen Pull-Up-Widerstand.
Taster gedrückt: GP14 wird mit GND verbunden und liest LOW (0).
Verkabelung:
Entfernen Sie den 10KΩ-Widerstand.
Code-Anpassung:
Setzen Sie den Button-Pin als INPUT_PULLUP.
Ändern Sie die Bedingung in der
if-Anweisung.const int buttonPin = 14; // GPIO pin connected to the button void setup() { Serial.begin(115200); // Initialize Serial Monitor at 115200 baud pinMode(buttonPin, INPUT_PULLUP); // Set the button pin as input with an internal pull-up resistor } void loop() { int buttonState = digitalRead(buttonPin); // Read the state of the button if (buttonState == LOW) { Serial.println("You pressed the button!"); } delay(100); // Small delay to avoid reading the button too frequently }
Fazit
In dieser Lektion haben Sie gelernt, wie Sie mit dem Raspberry Pi Pico eine Tastereingabe auslesen. Diese Fähigkeit ermöglicht es Ihnen, interaktive Projekte zu erstellen, bei denen das Programm auf Benutzereingaben reagiert.
Weitere Experimente
LED steuern: Ändern Sie den Code, um eine LED beim Drücken des Tasters einzuschalten.
Entprellung: Implementieren Sie eine Entprell-Routine für zuverlässigere Eingaben.
Mehrere Taster: Lesen Sie Eingaben von mehreren Tastern aus, um verschiedene Aktionen auszulösen.
