In diesem Beitrag lernst du, wie man mit Hardware-Timern in MicroPython arbeitet – perfekt für wiederkehrende Aufgaben, bei denen sleep() einfach nicht mehr reicht.
Ein Timer ist wie ein eingebauter Wecker im Mikrocontroller:
Er ruft in festgelegten Abständen eine Funktion auf – ganz automatisch und unabhängig vom restlichen Code.
Super praktisch z. B. für:
Hinweis zur Spannung
Wie immer beim Pico:
Die Pins arbeiten mit 3,3 V – also bei externer LED unbedingt an den passenden Vorwiderstand denken!
from machine import Pin, Timer
led = Pin(25, Pin.OUT) # Interne LED
timer = Timer()
def blink(timer):
led.toggle() # AN/AUS wechseln
timer.init(freq=2, mode=Timer.PERIODIC, callback=blink) # 2 Hz = 2x pro Sekunde
Kopieren
Bearbeiten
from machine import Pin, Timer
led = Pin(25, Pin.OUT)
timer = Timer()
zaehler = 0
def blink(timer):
global zaehler
led.toggle()
zaehler += 1
print("Blink Nr.", zaehler)
if zaehler >= 10:
timer.deinit() # Timer stoppen
print("Timer gestoppt!")
timer.init(period=500, mode=Timer.PERIODIC, callback=blink) # 500 ms = 0,5 Sek
Modus | Bedeutung |
---|---|
PERIODIC | Wiederholt den Aufruf regelmäßig |
ONE_SHOT | Führt den Aufruf genau 1x aus |
from machine import Timer
def einmal(timer):
print("Nur ein einziges Mal!")
timer = Timer()
timer.init(mode=Timer.ONE_SHOT, period=2000, callback=einmal) # nach 2 Sek.
Ideal z. B. für verzögerten Start, Einschaltmeldungen oder einfache Zeitsteuerung.
Feature | Vorteil | Nachteil |
---|---|---|
sleep() | Super einfach für den Einstieg | Blockiert den Code komplett |
ticks_ms() | Nicht-blockierend, multitaskingfähig | Etwas mehr Code |
Timer | Sehr präzise, im Hintergrund aktiv | Nur einfache Funktionen im Callback möglich |