Étiquettes : ,
3.3
(3)

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

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.

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

How useful was this post?

Click on a star to rate it!

Average rating 3.3 / 5. Vote count: 3

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?