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は5秒間のスリープの間、目に見えて点灯します。
末尾の red.off() は冒頭の red.on() と対称的であり、クリーンアップを明示的にします。オンボードLEDは、スクリプトが終了するときにも自動的にリセットされます。スクリプトが大きくなるにつれて、スクリプト終了時のクリーンアップに頼ることは脆くなります。各 .on() を明示的な .off() と対にする習慣が、長いスクリプトを予測可能に保ちます。
3.5.1. コンストラクタとメソッド¶
コンストラクタは "LED_RED"、"LED_GREEN"、"LED_BLUE" のいずれかを取ります。各インスタンスは4つのメソッドを公開します:
on()-- 点灯させます。off()-- 消灯させます。toggle()-- 現在の状態を反転させます。value()-- 引数なしの場合は現在の状態(0または1)を返し、引数が1つの場合はそれを設定します。
メインループのパターンを使った点滅プログラム:
import time
from machine import LED
led = LED("LED_RED")
while True:
led.toggle()
time.sleep_ms(500)
オンボードLEDはインジケータやステータスの用途に使います。1秒ごとに点滅するハートビート、エラー時の赤い点滅、センサーの読み取り値が範囲内にあるときの緑のパルスなどです。