3.5. LED 類別

相機上最簡單的硬體就是它的板載 LED。大多數電路板都有一顆 RGB LED(紅、綠、藍)。machine.LED 是用來控制它們的專用類別;不需要接腳編號、不需要電阻、不需要電路——查找、限流與接線都由相機本身處理。

import time
from machine import LED

red = LED("LED_RED")
red.on()
time.sleep(5)
red.off()

一個完整的硬體「hello world」:匯入該類別,以色彩名稱建構一個實例,將它打開,等待,再將它關閉。在五秒的休眠期間,LED 會明顯地亮著。

結尾的 red.off() 與開頭的 red.on() 對稱,並使清理動作明確化。板載 LED 在指令碼結束時也會自動重置。隨著指令碼變大,依賴指令碼結束時的清理會變得脆弱;讓每個 .on() 都搭配一個明確的 .off(),是讓長指令碼保持可預測的好習慣。

3.5.1. 建構子與方法

建構子接受 "LED_RED""LED_GREEN""LED_BLUE" 其中之一。每個實例都提供四個方法:

  • on() ——將它打開。

  • off() ——將它關閉。

  • toggle() ——翻轉目前的狀態。

  • value() ——不帶引數時,傳回目前的狀態(01);帶一個引數時,則設定它。

一個採用主迴圈模式的閃爍器:

import time
from machine import LED

led = LED("LED_RED")

while True:
    led.toggle()
    time.sleep_ms(500)

可將板載 LED 用於指示與狀態用途:每秒閃爍一次的心跳訊號、發生錯誤時的紅色閃光、感測器讀數在範圍內時的綠色脈動。