2.5 - Tastenwert auslesen

Anhand der Bezeichnung GPIO (General-purpose input/output) lässt sich erkennen, dass diese Pins sowohl Eingabe- als auch Ausgabefunktionen haben. In den vorherigen Lektionen haben wir die Ausgabefunktion verwendet, in diesem Kapitel werden wir die Eingabefunktion nutzen, um den Wert der Taste auszulesen.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Bauteile.

Ein komplettes Kit zu kaufen ist definitiv praktisch, hier ist der Link:

Bezeichnung

ELEMENTE IN DIESEM KIT

KAUF-LINK

Kepler-Kit

450+

Kepler Kit

Die Teile können auch einzeln über die folgenden Links erworben werden.

SN

KOMPONENTENBESCHREIBUNG

ANZAHL

KAUF-LINK

1

Raspberry Pi Pico W

1

BUY

2

Micro-USB-Kabel

1

3

Steckbrett

1

BUY

4

Jumperkabel

Mehrere

BUY

5

Widerstand

1(10KΩ)

BUY

6

Taster

1

BUY

Schaltplan

sch_button

Ein Anschluss des Tastenpins ist mit 3,3V verbunden, und der andere Anschluss ist mit GP14 verbunden. Wenn die Taste gedrückt wird, wird GP14 auf „High“ gesetzt. Ist die Taste jedoch nicht gedrückt, befindet sich GP14 in einem schwebenden Zustand und könnte sowohl „High“ als auch „Low“ sein. Um einen stabilen „Low“-Zustand zu erhalten, wenn die Taste nicht gedrückt ist, muss GP14 über einen 10K-Pull-down-Widerstand erneut mit GND verbunden werden.

Verkabelung

wiring_button

Bemerkung

Man kann den vierbeinigen Taster als H-förmigen Taster betrachten. Seine linken (rechten) beiden Beine sind miteinander verbunden, was bedeutet, dass er nach Überqueren der mittleren Trennlinie die beiden halben Reihen derselben Reihennummer verbindet. (Beispielsweise sind in meiner Schaltung E23 und F23 verbunden, ebenso wie E25 und F25).

Bevor die Taste gedrückt wird, sind die linke und rechte Seite voneinander unabhängig, und der Strom kann nicht von einer Seite zur anderen fließen.

Code

Bemerkung

  • Sie können die Datei 2.5_reading_button_value.ino unter dem Pfad kepler-kit-main/arduino/2.5_reading_button_value öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

  • Vergessen Sie nicht, die Platine (Raspberry Pi Pico) und den richtigen Port auszuwählen, bevor Sie auf die Schaltfläche Hochladen klicken.

Nachdem der Code ausgeführt wurde, klicken Sie auf das Lupensymbol in der oberen rechten Ecke der Arduino IDE (Serial Monitor).

../_images/open_serial_monitor.png

Jetzt, wenn Sie den Knopf drücken, wird im Serial Monitor „Sie haben den Knopf gedrückt!“ angezeigt.

Wie funktioniert das?

Um den Serial Monitor zu aktivieren, müssen Sie die serielle Kommunikation in setup() starten und die Datenrate auf 9600 einstellen.

Serial.begin(115200);

Für den Knopf müssen wir ihren Modus auf INPUT setzen, um ihre Werte abrufen zu können.

pinMode(buttonPin, INPUT);

Lesen Sie den Status von buttonPin in loop() und weisen Sie ihn der Variablen buttonState zu.

buttonState = digitalRead(buttonPin);

Wenn der buttonState HIGH ist, wird die LED blinken. Im Serial Monitor wird „You pressed the button!“ angezeigt.

if (buttonState == HIGH) {
    Serial.println("You pressed the button!");
}

Pull-up Arbeitsmodus

Als nächstes folgt die Verdrahtung und der Code, wenn der Knopf im Pull-up-Arbeitsmodus ist, probieren Sie es bitte aus.

wiring_button_pullup

Der einzige Unterschied, den Sie im Vergleich zum Pull-down-Modus sehen werden, ist, dass der 10K-Widerstand mit 3,3V verbunden ist und der Knopf mit GND verbunden ist. Wenn der Knopf also gedrückt wird, erhält GP14 ein niedriges Signal, was das Gegenteil des im Pull-down-Modus erhaltenen Wertes ist. Ändern Sie diesen Code also zu if (buttonState == LOW).