Raspberry Pi Pico als intelligenter Taster
Ein einfacher Taster kann im Prinzip nur 2 Dinge. Öffnen und schließen. Damit kann etwas beim Drücken einschalten und beim Loslassen ausschalten. Mit einer entsprechenden Logik, entweder als Schaltung oder Software, kann man das Drücken und das Loslassen separat auswerten und mit Funktionen belegen.
Zum Beispiel Einschalten beim Drücken und Ausschalten beim nochmaligen Drücken.
Interessant wird es, wenn man das Drücken eines Tasters mit einem Zeitfaktor erweitert. Das heißt zum Beispiel, einen kurzen und einen langen Druck auf den Taster zu unterscheiden. Die nächste Stufe ist, das doppelte Drücken in kurzer Zeit zu erkennen.
Der Taster kennt dann drei verschiedene Trigger, denen man jeweils einzelne Schaltvorgänge bzw. Funktionen zuordnen kann:
- einmal, kurz gedrückt
- einmal, lang gedrückt
- zweimal, kurz gedrückt
Diese Lösung eignet sich für einen intelligenten Taster, der nicht nur den gedrückten Zustand erkennt, sondern auch, ob einfach, doppelt oder lang gedrückt wurde.
MicroPython-Bibliotheken installieren
Damit der folgende Programmcode funktioniert muss eine externe Bibliothek installiert werden. Dazu sind folgende Schritte notwendig.
- Lade folgende ZIP-Datei herunter: https://github.com/peterhinch/micropython-async/archive/refs/heads/master.zip
- Entpacke die ZIP-Datei.
- Kopiere das Verzeichnis „primitives“ im Verzeichnis „v3“ auf den Raspberry Pi Pico.
Danach kann der folgende Programmcode ausgeführt werden.
Programmcode
Die folgende Lösung arbeitet mit „asyncio“. Das bedeutet, dass wenn diese Lösung ein Teil eines anderen Programmcodes werden soll, dann muss dieser auch nach den Prinzipien von „asyncio“ arbeiten.
import asyncio from machine import Pin from primitives import Pushbutton btn = Pushbutton(Pin(15, Pin.IN, Pin.PULL_UP), suppress=True) async def main(): short_press = btn.release_func(print, ("SHORT",)) double_press = btn.double_func(print, ("DOUBLE",)) long_press = btn.long_func(print, ("LONG",)) while True: await asyncio.sleep(1) asyncio.run(main())
Funktionen testen
Der Programmcode reagiert auf die Betätigung des Tasters und gibt auf der Kommandozeile aus, wie die Betätigung interpretiert wird. Es empfiehlt sich die folgenden Schritt nacheinander auszuprobieren.
- Den Taster einmal kurz drücken. Ausgabe: SHORT
- Den Taster einmal lang drücken. Ausgabe: LONG
- Den Taster zweimal kurz drücken. Ausgabe: DOUBLE
Weitere verwandte Themen:
- Raspberry Pi Pico: Taster-Zustand auswerten und mit einer LED anzeigen
- Raspberry Pi Pico: Taster-Zustand invertieren (Inverter/NICHT-Funktion)
- Raspberry Pi Pico: LED mit Taster ein- und ausschalten
- Raspberry Pi Pico: Bootsel-Button als Taster nutzen
Teilen:
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)