lumiere.py

micro:bit V2 (BBC micro:bit v2) · Fichier : lumiere.py · Langage : MicroPython · Usage : Mesurer la luminosité ambiante avec la matrice LED

Sans aucun capteur externe, la matrice 5×5 sert de photodiode : read_light_level() renvoie 0 (nuit) à 255 (plein soleil). Le script classe l'ambiance et l'affiche par une icône, avec la valeur brute sur la console série.

Matériel requis

Une BBC micro:bit V2 (nRF52833, matrice 5×5 LED, boutons A/B, accéléromètre + boussole, microphone et haut-parleur) alimentée par USB ou pile. Aucun composant : la mesure utilise les LED de la matrice elles-mêmes.

Câblage

Aucun câblage. Évitez l'ombre de votre main ou du câble USB pendant la mesure.

Fonctionnement

display.read_light_level() pulse les LED en entrée, mesure le courant de fuite et moyenne sur toute la matrice. Le seuil détermine l'icône affichée.

Exécution

Ouvrez python.microbit.org, collez le programme MicroPython et envoyez-le vers la carte (la micro:bit apparaît comme lecteur MICROBIT). Appuyez sur reset pour relancer.

Variantes

Pilotez une LED externe sur pin0 au-dessus du seuil (veilleuse automatique), ou journalisez lux + température toutes les minutes.

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.

← Retour à la fiche