Un détecteur sonore pour Arduino est un petit module électronique équipé d’un microphone et d’un amplificateur. Il capte les ondes sonores de l’environnement ambiant et les convertit en un signal électrique.
Il dispose généralement d’une sortie numérique (qui passe à 1 ou 0 lorsque le bruit dépasse un certain seuil réglable par une petite vis appelée potentiomètre) et parfois d’une sortie analogique (qui mesure l’intensité exacte du volume sonore).
Il dispose généralement d’une sortie numérique (qui passe à 1 ou 0 lorsque le bruit dépasse un certain seuil réglable par une petite vis appelée potentiomètre) et parfois d’une sortie analogique (qui mesure l’intensité exacte du volume sonore).
2. Pourquoi choisir ce capteur ?
- Facilité d’utilisation : Il possède seulement 3 ou 4 broches (Alimentation, Masse, et Signal), ce qui le rend très simple à câbler sur une carte Arduino.
- Idéal pour l’automatisation : Il permet de créer des projets interactifs déclenchés par l’environnement, comme allumer une lumière en claquant des mains ou créer une alarme anti-intrusion.
- Économique et accessible : C’est l’un des capteurs les moins chers du marché, parfait pour s’initier à la détection d’événements physiques.
-
#include <Servo.h> // Déclaration des composants et des broches Servo monServo; const int brocheCapteurSon = 2; // Sortie numérique (DO) du capteur son sur la broche D2 const int brocheServo = 9; // Fil de signal (pulse) du servo sur la broche D9 int positionActuelle = 0; // Position initiale du servomoteur bool sonDetecte = false; // État de la détection sonore void setup() { monServo.attach(brocheServo); monServo.write(positionActuelle); // Initialisation du servo à 0 degré pinMode(brocheCapteurSon, INPUT); // La broche du capteur est configurée en entrée } void loop() { // Lecture de l'état du capteur de son (REMARQUE : certains modules passent à LOW quand ils détectent un bruit) int etatCapteur = digitalRead(brocheCapteurSon); // Si un bruit est détecté (le signal passe à HIGH) if (etatCapteur == HIGH) { // Avancer le servomoteur de 15 degrés positionActuelle += 15; // Si le moteur dépasse les 90 degrés, on le réinitialise à 0 degré if (positionActuelle > 90) { positionActuelle = 0; } // Appliquer la nouvelle position au servomoteur monServo.write(positionActuelle); // Petite pause anti-rebond pour éviter de détecter le même bruit plusieurs fois d'un coup delay(500); } }







Avis
Il n’y a pas encore d’avis.