lumiere.py

micro:bit V2 (BBC micro:bit v2) · Archivo : lumiere.py · Lenguaje : MicroPython · Uso : Mesurer la luminosité ambiante avec la matrice LED

Sin sensores externos, la matriz 5×5 actúa como fotodiodo: read_light_level() devuelve 0 (noche) a 255 (sol pleno). El script clasifica el ambiente y muestra un icono, con el valor bruto en la consola serie.

Material necesario

Una BBC micro:bit V2 (nRF52833, matriz LED 5×5, botones A/B, acelerómetro + brújula, micrófono y altavoz) alimentada por USB o pila. Sin componentes: la medida usa los propios LED de la matriz.

Cableado

Sin cableado. Evita la sombra de tu mano o del cable USB durante la medida.

Funcionamiento

display.read_light_level() pulsa los LED como entradas, mide la corriente de fuga y promedia toda la matriz. El umbral decide el icono mostrado.

Ejecución

Abre python.microbit.org, pega el programa MicroPython y envíalo a la placa (la micro:bit aparece como unidad MICROBIT). Pulsa reset para relanzar.

Variantes

Controla un LED externo en pin0 por encima del umbral (luz de noche automática), o registra lux + temperatura cada minuto.

lumiere.py

# Luminosite ambiante : la matrice LED sert de capteur (photo-diode).
from microbit import *

SEUIL_NUIT = 20     # en dessous : nuit
SEUIL_JOUR = 200    # au-dessus : plein jour

while True:
    lux = display.read_light_level()   # 0..255
    if lux < SEUIL_NUIT:
        affiche = Image.NO
        etat = 'NUIT'
    elif lux > SEUIL_JOUR:
        affiche = Image.YES
        etat = 'JOUR'
    else:
        affiche = Image.HAPPY
        etat = 'INTERIEUR'
    display.show(affiche)
    print('lumiere = %d -> %s' % (lux, etat))
    sleep(500)

# Principe : chaque LED LED est une photodiode ; on mesure le
# courant de fuite apres une breve impulsion de lumiere. Plus la
# piece est claire, plus la valeur est elevee.
# Astuce : pour une mesure stable, cachez la carte 1 s puis
# comparez avec la valeur a l'air libre.

← Volver a la ficha