🛠 Mesurer le niveau sonore avec le micro MEMS

micro:bit V2 (BBC micro:bit v2) · avance · Schéma : IMG-microbit-v2-avance-1-microbit-v2-micro-niveau-sonore.svg — micro:bit V2 avec micro MEMS en gros plan sur la face avant, ondes sonores arrivant vers la carte et barre de niveau de 5 LED de la matrice

Objectifs

Utiliser le microphone MEMS Knowles de la V2 (broches internes MIC_IN P0.05 et RUN_MIC P0.20, avec LED d'activité) pour lire le niveau sonore et déclencher des réactions sur seuil. Échelle MicroPython : 0 à 255.

Matériel

Code complet

from microbit import *

# Seuil LOUD sur l'échelle 0-255
microphone.set_threshold(SoundEvent.LOUD, 150)

barre = [Image("00000:00000:00000:00000:11111"),
         Image("00000:00000:00000:11111:11111"),
         Image("00000:00000:11111:11111:11111"),
         Image("00000:11111:11111:11111:11111"),
         Image("11111:11111:11111:11111:11111")]

while True:
    niveau = microphone.current_volume   # 0..255
    idx = min(4, niveau // 52)
    display.show(barre[idx])

    if microphone.was_event(SoundEvent.LOUD):
        display.show(Image.SURPRISED)
        sleep(400)

    if button_a.was_pressed:             # calibrer le seuil
        seuil = microphone.current_volume + 30
        microphone.set_threshold(SoundEvent.LOUD, seuil)
        display.scroll(str(seuil))

    sleep(50)

current_volume donne le niveau instantané ; set_threshold + was_event évitent de poller en continu pour les événements « clap ». La LED d'activité près du micro s'allume dès que le micro est actif.

Vérification attendue

La barre LED monte progressivement avec le bruit, la carte fait « tête surprise » sur chaque applaudissement, et A remonte le seuil au-dessus du niveau ambiant mesuré à cet instant.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels