Raspberry Pi Pico: Taster-Zustand auswerten und mit einer LED anzeigen

Ein Taster kann zwei Zustände haben: „gedrückt“ und „nicht gedrückt“. Entsprechend für „Ein“ und „Aus“. Das entspricht der binären Logik und ist eigentlich ganz einfach. Doch zu allem Überfluss gibt es gleich 4 Möglichkeiten, wie man einen Taster mit dem Raspberry Pi Pico verbindet und wie der GPIO-Eingang initialisiert werden muss.
Zum Anzeigen des Taster-Zustands verwenden wir die Onboard-LED des Picos.

Das folgende Programmbeispiele berücksichtigt völlig wertfrei nur eine Variante. Denkbar wäre es, dass in der Praxis eine andere Variante besser wäre.

Aufbau und Bauteile

Raspberry Pi Pico: Taster gegen VCC schalten

Der Taster wird auf dem Steckbrett auf der einen Seite mit +3,3V (VCC) und auf der anderen Seite mit dem GPIO verbunden.

Schnell und einfach alle Bauteile zusammen bestellen

Programmcode für MicroPython

Die Funktion des Programms ist denkbar einfach. Ein GPIO wird als Ausgang definiert. Ein GPIO wird als Eingang definiert, an dem der Taster angeschlossen ist. Wird der Taster gedrückt, dann leuchtet die Leuchtdiode auf dem Pico. Wird der Taster losgelassen, dann wird sie wieder ausgeschaltet.

# Bibliotheken laden
from machine import Pin

# Initialisierung von GPIO25 als Ausgang
led_onboard = Pin(25, Pin.OUT)

# Initialisierung von GPIO14 als Eingang mit internem PULLDOWN-Widerstand
btn = Pin(14, Pin.IN, Pin.PULL_DOWN)

# Funktion zur Taster-Auswertung
while True:
    if btn.value() == 1:
        led_onboard.on()
    else:
        led_onboard.off()

Programmcode für CircuitPython

# Bibliotheken laden
import time
import board
import digitalio

# Initialisierung der Onboard-LED
led_onboard = digitalio.DigitalInOut(board.LED)
led_onboard.direction = digitalio.Direction.OUTPUT

# Initialisierung von GPIO 14 als Eingang
btn = digitalio.DigitalInOut(board.GP14)
btn.switch_to_input(pull=digitalio.Pull.UP)

# Wiederholung
while True:
    if btn.value:
        led_onboard.value = False
    else:
        led_onboard.value = True
    time.sleep(0.1)

Programmcode für MicroPython mit picozero

„picozero“ ist eine Einsteiger-freundliche MicroPython-Bibliothek, um elektronische Bauteile, wie LEDs, Taster und Sensoren einfacher zu programmieren und zu steuern.

from picozero import pico_led, Button
button = Button(14)
button.when_pressed = pico_led.on
button.when_released = pico_led.off

Taster entprellen

Taster weisen ein seltsames Eigenleben auf. Nur einmal gedrückt und trotzdem lösen sie eine Funktion mehrfach aus. Das liegt daran, dass sie bei Betätigung prellen. Das Prellen bezeichnet einen mechanischen Vorgang, bei dem ein metallischer Kontakt durch Zurückfedern zwei oder sogar mehrfach öffnet und wieder schließt, bis er seine Endstellung erreicht hat. Beispielsweise geschlossen oder offen. Mehrfach mechanisch Öffnen und Schließen bedeutet aber auch, elektrisch Öffnen und Schließen. Wird das ausgewertet, dann wird eine Funktion mehrfach ausgeführt, was meistens nicht Sinn der Sache ist. Eine wichtige Maßnahme ist, den Taster oder Schalter zu entprellen. Das kann man softwareseitig realisieren.

Darf es ein bisschen mehr sein?

Bisher war es so, dass ein Taster-Druck eine LED einschaltet. Das kann aber auch umgekehrt sein. Der Grundzustand ist eine leuchtende Leuchtdiode. Ein Taster-Druck schaltet sie aus.

Wie viele Eingänge brauchst Du, um 3 Taster auszuwerten? 3 Stück! Nein, es reicht ein Eingang. Wenn Du einen ADC-Eingang benutzt, dann kannst Du den Spannungsabfall an unterschiedlichen Widerständen messen und somit mehrere Taster identifizieren. Los, gleich mal ausprobieren.

Highlights: Elektronik mit dem Raspberry Pi Pico

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren