fbpixel
Étiquettes : ,

Il est possible de rajouter le sens de l’ouïe à votre microcontrôleur en le connectant à un microphone. Le microphone capte les vibrations de l’air et les transforme en signal électrique qu’il est possible d’analyser et de traiter à l’aide d’un algorithme. Dans ce tutoriel, nous allons voir comment détecter un niveau sonore à l’aide du microcontrôleur.

Matériel

  • Ordinateur
  • Arduino UNO
  • Câble USB A Mâle/B Mâle
  • Microphone

Principe de fonctionnement

Le capteur utilisé dans ce tutoriel est un microphone à condensateur électrique. Il est composé de deux plaques l’une fixe et l’autre mobile. Les vibrations de l’air se transforme en déplacement de la membrane mobile ce qui crée une variation de potentiel électrique détecté par le capteur et qui envoie un signal électrique au microcontrôleur. Il existe plusieurs modèles de microphone avec des sensibilités différentes pour détecter des sons plus ou moins fort. Un modèle peut être plus adapté qu’un autre selon ce que vous souhaitez faire. Vérifiez bien la documentation du module.

Ce genre de module ne permet pas d’enregistrer ou d’analyser un son complexe mais plutôt un niveau sonore.

Schéma

Le microphone nécessite une faible puissance et peut être alimenté directement sur la broche 5V de l’Arduino. Il renvoie une valeur analogique qui sera envoyé sur une entrées analogique du microcontrôleur. Selon le modèle utilisé, un potentiomètre est présent sur le module afin de régler la sensibilité du microphone.

  • AUD à la broche A0
  • Vcc à la broche 5V
  • GND à la broche GND
arduino-microphone_bb Utilisation d'un Microphone avec Arduino

Code

Pour mesurer le niveau sonore, nous employons la fonction AnalogRead() comme pour la plupart des capteurs analogiques.

//Parameters
const int micPin  = A0;

//Variables
int micVal  = 0;

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init Microphone
  pinMode(micPin, INPUT);
}

void loop() {
  readMicrophone();
}

void readMicrophone( ) { /* function readMicrophone */
  ////Test routine for Microphone
  micVal = analogRead(micPin);
  Serial.print(F("mic val ")); Serial.println(micVal);
  if (micVal > 600) {
    Serial.println("mic detected");
  }
}

Résultat

Une fois le code chargé dans le microcontrôleur vous devriez voir la valeur analogique évoluer en fonction du bruit ambiant. Essayer de taper des mains, de claquer des doigts ou de parler pour voir comment se comporte le microphone. Vous pourrez ainsi déterminer le niveau nécessaire pour déclencher une action.

arduino-monitor-microphone-results Utilisation d'un Microphone avec Arduino

Applications

  • Activer une lampe par un battement de mains
  • Créer une alarme qui s’active au bruit

Sources

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie