MicroPython: Grundlagen zum Timer
Was ist ein Timer? Ein Timer ist eine logische Instanz für einen Zeitgeber, der einen Befehl oder eine Funktion zeitabhängig ausführen kann. Einmalig oder periodisch wiederholend mit Angabe einer Frequenz in Hertz (Anzahl in der Sekunde) oder nach vergangener Zeit in Millisekunden.
Damit Timer mit MicroPython verwendet werden können, müssen sie hardwareseitig unterstützt werden. Bei einem Mikrocontroller, wie dem Raspberry Pi Pico, ist das der Fall. Die Anzahl der Timer ist in der Regel nur durch Speicher und Rechenleistung begrenzt.
Timer initialisieren
Wenn man einen Timer benutzen, also eine Funktion zeitabhängig ausführen will, muss das Timer-Modul im MicroPython-Programmcode importiert und initialisiert werden. Bei der Initialisierung eines Timers muss man in der Regel 3 Parameter angeben.
- period: Der erste Parameter ist die Periode bzw. Zeit in Millisekunden bis der Timer auslöst. 1000 Millisekunden entsprechen einer Sekunde.
- freq: Der erste Parameter kann auch eine Frequenz (in Hertz, Hz) sein, die angibt, wie oft der Timer in der Sekunden auslösen soll.
- mode: Der zweite Parameter unterscheidet mit dem Wert „Timer.PERIODIC“ zwischen sich wiederholenden Timer-Auslösungen und mit dem Wert „Timer.ONE_SHOT“, dass der Timer nur ein einziges Mal ausgelöst werden soll.
- callback: Der dritte Parameter definiert, was ausgelöst oder aufgerufen werden soll. Das ist in der Regel eine definierte Funktion. Wenn sich der Programmcode, der ausgeführt werden soll, auf eine Zeile beschränkt, dann kann diese Zeile mit einem vorangestellten „lambda t:“ als Wert von „callback“ verwendet werden.
Hinweis: Die Parameter „period“ und „freq“ dürfen nicht zusammen, sondern entweder der eine oder der andere, verwendet werden.
Der folgende Programmcode beschreibt zwei Möglichkeiten, wie ein Timer initialisiert werden kann. Entweder man übergibt sofort alle Parameter oder man übergibt die Parameter später im Programmcode in einem separaten Kommando. Im weiteren Programmcode kann auf diese Weise die Parameter eines Timers jederzeit ändern.
from machine import Timer timer1 = Timer(period=5000, mode=Timer.ONE_SHOT, callback=lambda t:print('Ich werde nur einmal ausgeführt, nachdem 5 Sekunden vergangen sind.')) timer2 = Timer() timer2.init(period=2000, mode=Timer.PERIODIC, callback=lambda t:print('Ich werden alle 2 Sekunden ausgeführt.'))
Wenn ein Timer läuft, dann wird der Programmcode im Prinzip nie beendet. Der Timer „timer1“ wird nur ein Mal ausgeführt.
Timer deaktivieren/deinitialisieren
Wenn ein Timer läuft, also periodisch eine Funktion ausführt (mode=Timer.PERIODIC), kennt er im Prinzip kein Ende. Wenn man den Timer stoppen oder unterbrechen will, dann muss er deinitialisiert werden. Das macht man mit folgendem Kommando. Wichtig ist hierbei die Bezeichnung des Timers zu verwenden, mit der er initialisiert wurde.
timer2.deinit()
Man kann jederzeit mit einem „timer.init(...)“ den Timer neu starten.
Experimente mit Timer
Hier experimentieren wir mit der Timer-Funktion von MicroPython. Probieren verschiedene Parameter bei der Initialisierung aus und versuchen herauszufinden, wofür Timer nützlich sind.
Anwendungen mit Timer
Anwendungen mit einem Timer sind immer dort zu finden, wo etwas wiederholt werden soll. In der Regel abhängig von einer Zeit.
- Raspberry Pi Pico: Onboard-LED blinken lassen
- Raspberry Pi Pico: Digitale Uhr mit Anzeige (TM1637)
- Raspberry Pi Pico: Stoppuhr mit Anzeige (TM1637)
- Raspberry Pi Pico: Countdown mit Zeitanzeige (TM1637)
- Raspberry Pi Pico: Blink-Geschwindigkeit einer LED mit einem Rotary Encoder einstellen (KY-040)
Weitere verwandte Themen:
- Raspberry Pi Pico: Grundlagen zur Echtzeituhr (Real-time Clock, RTC)
- Raspberry Pi Pico: Experimente mit RTC
- Raspberry Pi Pico: MicroPython
- Raspberry Pi Pico: Grundlegende Befehle von MicroPython
- MicroPython: Schlafmodus
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
Hardware-nahes 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)
Elektronik-Set Pico Edition
Raspberry Pi Pico: Hardware-nahes Programmieren mit MicroPython
Leichter Einstieg mit All-in-one-Set zum sofort Loslegen, um eigene Steuerungen programmieren.
Elektronik-Set Pico WLAN Edition
Raspberry Pi Pico W: IoT und Smart Home mit WLAN und MQTT
Betreibe Deinen Raspberry Pi Pico W als drahtloser Sensor in Deinem WLAN, versende E-Mails mit Daten und kommuniziere per MQTT im Internet of Things oder Smart Home.
Elektronik-Set Sensor Edition
Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition
Elektronik-Set mit den beliebtesten Sensoren zum Messen von Temperatur, Helligkeit, Bewegung, Lautstärke und Entfernung.
Elektronik-Set Eingabe Ausgabe Edition
Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition
Damit kannst Du MP3-Dateien abspielen, eine Stoppuhr bauen, einen Servo-Motor mit Drehschalter oder Joystick steuern, Lichteffekte mit einem WS2812-LED-Lichtstreifen erzeugen, Schalten mit einem Relais und Signalisieren mit einem Vibrationsmotor.