4.3.2 Détecteur d’intensité lumineuse

4.3.2.1 Présentation

Img

Le détecteur d’intensité lumineuse, également appelé luxmètre ou mesureur d’éclairement, est un instrument spécialisé utilisé pour mesurer la quantité totale de lumière (c.-à-d. l’éclairement) qui frappe une surface. Il fonctionne principalement sur le principe de l’effet photoélectrique.

Dans ce projet, la luminosité détectée par le capteur de lumière sera affichée en temps réel sur l’OLED. Lorsqu’elle dépasse une certaine valeur, le haut-parleur sur la carte émettra une alarme pour servir d’avertissement et de rappel.

Les détecteurs d’intensité lumineuse sont largement utilisés dans presque toutes les situations nécessitant la quantification de la « lumière », telles que l’éclairage extérieur et routier, la conception et la réception de l’éclairage intérieur, la photographie et la production vidéo, l’architecture et la santé, etc.

Img

4.3.2.2 Connaissances sur les composants

Img

Capteur de lumière du Microbit

Img

Comme la carte micro:bit ne contient pas de photorésistance propre, la matrice LED assume ce rôle. Le signal lumineux est converti en entrée, et le temps de décroissance de la tension est échantillonné de sorte que l’intensité lumineuse détectée est une valeur relative. (Remarque : la luminosité est envoyée sur le port série, et il s’agit d’une valeur relative.)

Haut-parleur du Microbit

Img

La carte Micro: Bit est dotée d’un haut-parleur intégré, ce qui facilite la production de sons par les programmes. Il est également capable de produire des sons tels que des rires, des salutations et des bâillements ainsi que toutes sortes de tons, notes et rythmes. Par exemple, il peut jouer la chanson Ode to Joy.

Img

4.3.2.3 Composants requis

Img

Img

Img

micro:bit V2 main board ×1

micro:bit shield ×1

OLED display ×1

Img

Img

Img

micro USB cable ×1

4 pin wire ×1

battery holder ×1

Img

AA battery(self-prepared) ×6

4.3.2.4 Schéma de câblage

⚠️ Lors du câblage, veuillez prêter attention à la couleur des fils.

OLED display

wire color

micro:bit shield pin

micro:bit board pin

GND

black

G

G

VCC

red

V2

V

SDA

blue

20

P20

SCL

green

19

P19

Img

4.3.2.5 Flux du code

Img

4.3.2.6 Code de test

⚠️ Astuce 1 : Avant de télécharger le code sur la carte Microbit, veuillez importer le fichier de bibliothèque “oled_ssd1306.py” en vous référant à Import Library on MU” .

Img

⚠️ Astuce 2 : Le seuil dans la condition “if()…elif()…” peut être modifié en fonction de la situation réelle.

Code complet :

'''
Theme: Light intensity detector
Function: OLED displays the light intensity and the microbit light sensor controls the 5×5 dot matrix and speaker
Compiling IDE: MU 1.2.0
Author: https://docs.keyestudio.com
'''
# import related libraries
from microbit import *
from oled_ssd1306 import *
import music

val1 = Image("90909:""09990:""99999:""09990:""90909")  # Set pattern
val2 = Image("00000:""00900:""09990:""00900:""00000")  # Set pattern

# initialize and clear oled
initialize()  # initialize oled
clear_oled()  # clear oled

while True:
    clear_oled()  # clear OLED
    Lightintensity = display.read_light_level() # Read the light intensity detected by the microbit light sensor and assign it to the variable Lightintensity
    add_text(0, 0, 'Lightintensity:')  # Display the character string in the corresponding position of OLED
    add_text(16, 0, str(Lightintensity))  # Display Lightintensity in the corresponding position of OLED
    if Lightintensity >= 100: # when Light intensity > 100
       display.show(val1)   # LED matrix displays the set pattern1
       music.play("C5:1")   # speaker plays C5 tone
       sleep(50)
       music.play("D5:2")   # speaker plays D5 tone
       sleep(50)
       music.play("B5:4")   # speaker plays B5 tone
       sleep(50)
    elif Lightintensity > 0 and Lightintensity < 100:  # when 0 < Light intensity < 100
       display.show(val2)   # LED matrix displays the set pattern2
       music.play("C3:1")   # speaker plays C3 tone
    else: # or
       display.clear()   # Set the brightness of all LEDs to 0 (off)
       music.reset()     # no tone
    sleep(1000)

Img

Brève explication :

① Importer les bibliothèques microbit, oled_ssd1306 et music.

# import related libraries
from microbit import *
from oled_ssd1306 import *
import music

② Définir deux motifs.

val1 = Image("90909:""09990:""99999:""09990:""90909")  # Set pattern
val2 = Image("00000:""00900:""09990:""00900:""00000")  # Set pattern

③ Initialiser les pixels de l’OLED, effacer l’OLED.

initialize()  # initialize oled
clear_oled()  # clear oled

④ Lire la valeur de luminosité par le micro:bit et l’afficher sur l’OLED.

Lightintensity = display.read_light_level() # Read the light intensity detected by the microbit light sensor and assign it to the variable Lightintensity
add_text(0, 0, 'Lightintensity:')  # Display the character string in the corresponding position of OLED
add_text(16, 0, str(Lightintensity))  # Display Lightintensity in the corresponding position of OLED

⑤ Instruction conditionnelle : if()…elif()…else…

Lorsque la luminosité détectée est supérieure ou égale à 100, la matrice 5×5 LED affiche Img, et le haut-parleur émet le son d’alarme 1.

if Lightintensity >= 100: # when Light intensity > 100
   display.show(val1)   # LED matrix displays the set pattern1
   music.play("C5:1")   # speaker plays C5 tone
   sleep(50)
   music.play("D5:2")   # speaker plays D5 tone
   sleep(50)
   music.play("B5:4")   # speaker plays B5 tone
   sleep(50)

Si la luminosité détectée est comprise entre 0 et 100, la matrice 5×5 LED affiche Img, et le haut-parleur émet le son d’alarme 2.

elif Lightintensity > 0 and Lightintensity < 100:  # when 0 < Light intensity < 100
   display.show(val2)   # LED matrix displays the set pattern2
   music.play("C3:1")   # speaker plays C3 tone

Sinon, la matrice 5×5 LED n’affiche rien et le haut-parleur ne sonne pas.

else: # or
   display.clear()  # Set the brightness of all LEDs to 0 (off)
   music.reset()    # no tone

⑥ Délai de 1000 ms (1 s).

sleep(1000)

4.3.2.7 Résultat du test

Img

Après le câblage et l’alimentation via le câble micro USB, connectez une alimentation externe (6 piles AA) pour assurer une alimentation suffisante, puis cliquez sur “Flash” pour télécharger le code sur la carte micro:bit.

Img

Après avoir téléversé le code de test, appuyez sur le bouton reset à l’arrière du micro:bit.

Img

L’OLED affiche en temps réel la valeur de luminosité détectée par le capteur de lumière. Lorsque la luminosité détectée est supérieure à 100, la matrice 5×5 LED affiche Img, et le haut-parleur émet le son d’alarme 1 comme avertissement de niveau élevé. Si la luminosité détectée est comprise entre 0 et 100, la matrice 5×5 LED affiche Img, et le haut-parleur émet le son d’alarme 2 comme avertissement de niveau faible. Sinon, la matrice 5×5 LED n’affiche rien et le haut-parleur ne sonne pas.

Img

⚠️ Remarque : Les briques de construction utilisées dans l’expérience ne sont pas incluses dans ce kit.

(Astuce :) Si aucun résultat n’est observé, veuillez appuyer sur le bouton reset de la carte micro:bit.

Img