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:

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