可以用來監測ESP32是否還在運作(閃爍)或是已程式中止。
import time
from machine import Pin, Timer
# LED 設定 (GPIO 2)
led_pin = Pin(2, Pin.OUT)
# LED 閃爍功能
def blink(timer):
led_pin.value(not led_pin.value()) # 反轉 LED 狀態
def main():
# 執行其他程序 如 connect_to_wifi()
# 啟動 LED 閃爍
timer = Timer(0)
timer.init(period=1000, mode=Timer.PERIODIC, callback=blink)
main()
Timer(0) 被設置為每 1000 毫秒(1 秒)觸發一次,並呼叫 blink 函式。這個定時器設定了每秒閃爍一次的行為,是一個週期性的動作,類似於迴圈。
在 MicroPython 中,Timer 是用來設置定時任務的。timer = Timer(0) 的意思是創建一個新的定時器,編號為 0。定時器可以用來設置某個操作在指定的時間間隔內重複執行,這樣可以實現類似於背景計時或定期觸發的功能。
語法:
python
複製程式碼
timer = Timer(timer_id)
timer_id:這是定時器的編號。在 ESP32 上,硬體定時器的數量有限,因此你需要使用一個編號來指定要使用哪一個定時器。例如,Timer(0) 表示使用定時器 0。你可以使用不同的編號來創建多個定時器,如 Timer(1)、Timer(2) 等。
python
複製程式碼
timer.init(period=1000, mode=Timer.PERIODIC, callback=blink)
這段程式碼設定了一個定時器,以下是詳細解釋:
period=1000:這指定了定時器的週期為 1000 毫秒(即 1 秒)。這表示定時器會每 1 秒觸發一次。
mode=Timer.PERIODIC:這是定時器的工作模式,PERIODIC 表示定時器會週期性地重複執行,直到手動停止或系統關閉。另一個模式是 ONE_SHOT,它只會執行一次然後停止。
callback=blink:這是指定定時器觸發時執行的回呼函式。在這個例子中,每當定時器觸發時,會執行 blink 函式(控制 LED 反轉,實現閃爍效果)。
timer = Timer(0) 是用來初始化一個定時器。接下來透過 timer.init() 設定其週期、模式以及回呼函式,使得定時器每隔 1 秒執行一次指定的函式。在這個例子中,定時器每秒觸發一次 blink 函式,讓 LED 每秒閃爍一次。