🛠 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

Objetivos

Utilizar el micrófono MEMS Knowles de la V2 (pines internos MIC_IN P0.05 y RUN_MIC P0.20, con LED de actividad) para leer el nivel de sonido y desencadenar reacciones al superar un umbral. Escala en MicroPython: de 0 a 255.

Material

Código completo

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 devuelve el nivel instantáneo; set_threshold + was_event evitan el sondeo continuo para los eventos de «aplauso». El LED de actividad cercano al micrófono se enciende en cuanto el micrófono está activo.

Verificación esperada

La barra LED sube progresivamente con el ruido, la placa muestra la cara de «sorpresa» con cada aplauso, y A sube el umbral por encima del nivel ambiental medido en ese instante.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales