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
- https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/
- Gestion des capteurs avec Arduino
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie