3.5. De LED-class

Het eenvoudigste stukje hardware op de camera zijn de ingebouwde LED’s. De meeste borden hebben een RGB-LED (rood, groen, blauw). machine.LED is de specifieke class om ze te bedienen; geen pinnummer, geen weerstand, geen schakeling – het opzoeken, de stroombegrenzing en de bedrading worden door de camera zelf afgehandeld.

import time
from machine import LED

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

Een compleet hardware-“hello world”: importeer de class, maak een instantie aan met de naam van de kleur, zet hem aan, wacht, zet hem uit. De LED brandt zichtbaar tijdens de pauze van vijf seconden.

De afsluitende red.off() is symmetrisch met de openende red.on() en maakt het opruimen expliciet. De ingebouwde LED’s worden ook automatisch gereset wanneer het script afsluit. Naarmate scripts groeien, wordt het vertrouwen op opruiming bij scriptafsluiting kwetsbaar; elke .on() koppelen aan een expliciete .off() is de gewoonte die lange scripts voorspelbaar houdt.

3.5.1. Constructor en methoden

De constructor neemt een van "LED_RED", "LED_GREEN" of "LED_BLUE". Elke instantie biedt vier methoden:

  • on() – zet hem aan.

  • off() – zet hem uit.

  • toggle() – wissel de huidige toestand.

  • value() – zonder argumenten, geeft de huidige toestand terug (0 of 1); met één argument, stelt deze in.

Een knipperaar, met het hoofdluspatroon:

import time
from machine import LED

led = LED("LED_RED")

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

Gebruik de ingebouwde LED’s voor indicator- en statusdoeleinden: een hartslag die elke seconde knippert, een rode flits bij een fout, een groene puls wanneer een sensormeting binnen bereik is.