Raspberry Pi Pico: LED mit Taster einschalten und ausschalten

Damit eine Leuchtdiode (LED) beim Drücken eines Tasters an- und ausgeht braucht man eigentlich keine Softwaresteuerung. Diese Funktion kann man natürlich auch ohne Software realisieren. Einfach nur dadurch, dass der Taster mit der Leuchtdiode und einem Vorwiderstand in Reihe geschaltet wird.

Allerdings kann der Taster dann auch nur diese eine festgelegte Funktion. Wenn die Funktion fest verdrahtet oder gelötet ist, dann ist eine Änderung nicht so einfach möglich. Soll der Taster eine andere Funktion haben, dann muss man die Hardware ändern.

Es gibt also gute Gründe, warum heute alles mit Software realisiert wird und prozessorgesteuert ist. Eine Funktion lässt sich in der Software einfach leichter ändern, als in der Hardware.

Das folgende Programm hat eine Haltefunktion. Das heißt, drücken wir den Taster, dann wird die LED eingeschaltet. Drücken wir ein weiteres Mal wird die LED ausgeschaltet. Man spricht hier auch von einer manuellen Toggle-Funktion.

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

Das folgende Programm schaltet die LED immer dann ein und wieder aus, wenn der Taster gedrückt wird. Das Programm wird nicht automatisch beendet.

# Bibliotheken laden
from machine import Pin

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

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

# Taster-Funktion
def button_handler(pin):
    led_onboard.toggle()

# Taster-Auslösung
btn.irq(trigger=Pin.IRQ_RISING, handler=button_handler)

Das besondere an diesem Programm ist, dass der Taster-Druck einen Interrupt auslöst und dadurch eine bestimmte Funktion im Programm ausführt.

Beobachtungen, Erklärungen und Erkenntnisse

Na, funktioniert es? Naja, irgendwo schon. Aber irgendwie auch nicht immer. Manchmal geht die LED an und gleich wieder aus. Die Funktion ist also nicht so ganz zuverlässig.
Wie gut es tatsächlich funktioniert hängt ein wenig vom Taster ab und wie genau er gedrückt wird. Das ist ein Problem, dass man lösen muss.

Doch woran liegt das? Das Problem sind die Taster. Die neigen zum Prellen. Gemeint ist, dass ein Taster bei Betätigung nicht zwangsläufig einen dauerhaften Kontakt herstellt, sondern durch den mechanischen Aufschlag der Kontakte zurückfedern kann. Das heißt, das Drücken eines Tasters kann zu einer mehrmaligen Kontakt- und damit Funktionsauslösung führen. Das sieht dann so aus, dass die LED angeht, aber auch sofort wieder ausgeht. Der eine Druck auf den Taster hat den internen Kontakt zwei oder mehrmals betätigt und den Interrupt zwei oder mehr ausgelöst.

Um das Problem zu lösen muss der Taster entprellt werden. Das kann man mit einer kleinen Änderung im Programmcode lösen.

Alternative mit MicroPython-Bibliothek "picozero"

from picozero import Button, pico_led

pico_led.off()
button = Button(15)

button.when_pressed = pico_led.toggle

Highlights: Elektronik mit dem Raspberry Pi Pico

Weitere verwandte Themen:

Elektronik-Sets für das Hardware-nahe Programmieren

Elektronik-Sets für das Hardware-nahe Programmieren

Programmieren mit dem Raspberry Pi Pico
Online-Meeting

Programmieren mit dem Raspberry Pi Pico

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

Termine und Newsletter-Anmeldung

Frag Elektronik-Kompendium.de