3.5. A LED osztály

A kamera legegyszerűbb hardvereleme a beépített LED-jei. A legtöbb kártyán van egy RGB LED (vörös, zöld, kék). A machine.LED a vezérlésükre szolgáló dedikált osztály; nincs lábszám, nincs ellenállás, nincs áramkör – a keresést, az áramkorlátozást és a bekötést maga a kamera kezeli.

import time
from machine import LED

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

Egy teljes hardveres „hello world”: importáld az osztályt, hozz létre egy példányt a szín nevével, kapcsold be, várj, kapcsold ki. A LED láthatóan világít az ötmásodperces várakozás alatt.

A záró red.off() szimmetrikus a nyitó red.on() hívással, és explicitté teszi a takarítást. A beépített LED-ek automatikusan is visszaállnak, amikor a szkript kilép. Ahogy a szkriptek növekednek, a szkript kilépésekor történő takarításra hagyatkozni törékennyé válik; ha minden .on() hívást egy explicit .off() párral látsz el, az a szokás teszi kiszámíthatóvá a hosszú szkripteket.

3.5.1. Konstruktor és metódusok

A konstruktor a "LED_RED", "LED_GREEN" vagy "LED_BLUE" egyikét veszi át. Minden példány négy metódust tesz elérhetővé:

  • on() – bekapcsolja.

  • off() – kikapcsolja.

  • toggle() – átváltja az aktuális állapotot.

  • value() – argumentum nélkül visszaadja az aktuális állapotot (0 vagy 1); egy argumentummal beállítja azt.

Egy villogtató, a fő ciklus mintázatát használva:

import time
from machine import LED

led = LED("LED_RED")

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

Használd a beépített LED-eket jelző és állapotjelző célokra: szívverés, amely másodpercenként villan, vörös villanás hiba esetén, zöld pulzálás, amikor egy érzékelő leolvasott értéke a tartományon belül van.