Connecter un MAX4466 Module Amplificateur Microphone à un Arduino
Description :
Ce projet simple a pour objectif de démontrer la connexion et l’utilisation du microphone MAX4466 avec une carte Arduino. Le module MAX4466, équipé d’un amplificateur à faible bruit et d’un gain réglable, permet de capter des sons du milieu ambiant et de les convertir en signal analogique. Ce signal est ensuite lu par une entrée analogique de l’Arduino afin de mesurer l’intensité sonore en temps réel.
Le programme Arduino envoie ensuite ces valeurs au moniteur série, où elles s’affichent sous forme de nombres représentant l’amplitude crête-crête du niveau du signal audio capté échantillonner toute les 50 ms . Ce projet constitue une excellente introduction à la capture et l’analyse de signaux audio avec Arduino, et peut servir de base à des applications plus avancées comme un vu-mètre à LED, un détecteur de bruit ou un système interactif réactif au son.
Prérequis :
- 1 x Carte Arduino Uno
 - 1 x MAX4466 Module Amplificateur Microphone
 - Fils de connexion
 - 1 x Breadboard
 
Version IDE :
- Arduino IDE 2.3.5
 
Vidéo de démonstration :
Schéma de câblage :


Code :
const int TimeEchantillon = 50;  // Largeur de la fenêtre d'échantillon en mS (50 mS = 20 Hz)
int const MAX4466_PIN = A5;      // Broche de sortie du MAX4466 à A5
unsigned int echantillon;
void setup() {
  Serial.begin(9600);
}
void loop() {
  unsigned long startMillis = millis();  // Début de la fenêtre d'échantillon
  unsigned int niveaucrete = 0;          // niveau crête à crête
  unsigned int echantillonMax = 0;
  unsigned int echantillonMin = 1024;
  // collecter des données pendant 50 ms, puis tracer les données
  while (millis() - startMillis < TimeEchantillon) {
    echantillon = analogRead(MAX4466_PIN);
    if (echantillon < 1024)  // rejeter les lectures erronées
    {
      if (echantillon > echantillonMax) {
        echantillonMax = echantillon;  // enregistrez uniquement les niveaux maximum
      } else if (echantillon < echantillonMin) {
        echantillonMin = echantillon;  // enregistrez uniquement les niveaux minimun
      }
    }
  }
  niveaucrete = echantillonMax - echantillonMin;  // max - min = amplitude crête-crête
  Serial.println(niveaucrete);
}
