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:

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