🛠 Acquitter un microphone PDM externe

Arduino Nicla Sense ME · intermediaire · Schéma : IMG-nicla-sense-me-intermediaire-1-niclasense-micro-pdm.svg — Petit microphone MEMS au format boîtier avec deux fils horloge et données rejoignant les broches numériques du Nicla Sense ME, onde sonore stylisée au-dessus du micro

Objetivos

Adquirir un flujo de audio PDM (Modulación de Densidad de Pulsos) desde un micrófono MEMS externo conectado a los pines expuestos del Nicla Sense ME, y transferir las muestras decodificadas al puerto serie. El nRF52832 incorpora un periférico PDM por hardware, y el core mbed lo expone en principio a través de la biblioteca PDM/arPDM utilizada en las placas nRF de Arduino. Este tutorial sirve también como advertencia documental: la base oficial de la ABX00050 no referencia ningún micrófono integrado, a diferencia de otras placas de la familia.

Material

Código completo

#include <PDM.h>

short buffer[256];
volatile size_t echantillonsLus = 0;

void onDonneesPDM {
  int octets = PDM.available;
  PDM.read(buffer, octets);
  echantillonsLus = octets / 2;
}

void setup {
  Serial.begin(115200);
  while (!Serial);
  PDM.onReceive(onDonneesPDM);
  PDM.setGain(30);
  if (!PDM.begin(1, 16000)) {   // 1 canal, 16 kHz
    Serial.println("Aucun micro PDM detecte");
    while (1);
  }
}

void loop {
  if (echantillonsLus) {
    for (size_t i = 0; i < echantillonsLus; i++) {
      Serial.println(buffer[i]);
    }
    echantillonsLus = 0;
  }
}

Verificación esperada

Si el periférico PDM está disponible y el micrófono está correctamente cableado, la consola serie (115200 baudios) volcará muestras PCM de 16 bits; aplaudir produce picos visibles. Sin micrófono, PDM.begin falla y se muestra el mensaje de error, lo cual ya es una verificación útil del montaje.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales