lumiere.py
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.