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.
Im folgenden Aufbau wird der Mikrocontroller Raspberry Pi Pico verwendet. Zum Einstieg und erste Versuche empfehlen sich Erste Schritte mit dem Raspberry Pi Pico und Programmieren mit MicroPython.
Aufbau und Bauteile
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
- Raspberry Pi Pico: Onboard-LED einschalten und ausschalten
- Raspberry Pi Pico: Taster-Zustand auswerten und mit einer LED anzeigen
- Raspberry Pi Pico: Elektronischer Würfel
- Raspberry Pi Pico: Temperatur-Messung und Temperatur anzeigen
- Raspberry Pi Pico: Reaktionsspiel mit zwei Tastern und LEDs
Weitere verwandte Themen:
- Raspberry Pi Pico: Bootsel-Button als Taster nutzen
- Raspberry Pi Pico als intelligenter Taster
- Raspberry Pi Pico: Grundlagen zu Interrupts (IRQ)
- Raspberry Pi Pico: Experimente mit Interrupts (IRQ)
- Raspberry Pi Pico: GPIO-Grundlagen
- Elektronik mit dem Raspberry Pi Pico
Frag Elektronik-Kompendium.de
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
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
Online-Workshop: 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.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)