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:

  1. einmal, kurz gedrückt
  2. einmal, lang gedrückt
  3. 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.

  1. Lade folgende ZIP-Datei herunter: https://github.com/peterhinch/micropython-async/archive/refs/heads/master.zip
  2. Entpacke die ZIP-Datei.
  3. 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.

  1. Den Taster einmal kurz drücken. Ausgabe: SHORT
  2. Den Taster einmal lang drücken. Ausgabe: LONG
  3. Den Taster zweimal kurz drücken. Ausgabe: DOUBLE

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