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.

Weitere verwandte Themen:

Teilen:

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

Programmieren mit dem Raspberry Pi Pico
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.

Online-Workshop buchen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk

 

Elektronik-Set Pico Edition
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 jetzt bestellen

 

Elektronik-Set Pico WLAN Edition
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 jetzt bestellen

 

Elektronik-Set Sensor Edition
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 jetzt bestellen

 

Elektronik-Set Eingabe Ausgabe Edition
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.

Elektronik-Set jetzt bestellen