[TUTORIEL] Microphone Electret

Forum dédié aux produits Adafruit

[TUTORIEL] Microphone Electret

Message non lude Florian » Ven 1 Aoû 2014 15:50

Bonjour,

Aujourd'hui nous allons réaliser un montage qui changera l'état d'une LED avec un simple claquement de doigts. Ceci sera possible avec l'aide du Microphone Electret MAX4466 avec gain ajustable de chez Adafruit.

microphone.jpg
microphone.jpg (38.71 Kio) Vu 3669 fois

Achat et fiche produit ici.
Plus d'informations sur le microphone ici.

Datasheets:

Le montage que nous allons réaliser contiendra simplement une LED et un capteur qui est le micro. Dès que le micro captera le son d'un claquement de doigts, il changera l'état de notre LED. Si elle est éteinte, elle s'allumera et inversement.
Il s'agit donc de ce qu'on peut appeler un interrupteur "clap".


- MATÉRIEL:


- SCHÉMA DU MONTAGE:
SchemaMicro.png
SchemaMicro.png (60.29 Kio) Vu 3669 fois

Alimentation:
Le microphone fonctionne sur une plage de tension allant de 2.4V à 5V. Nous utiliserons le 3.3V de l'Arduino pour que le capteur soit le plus performant possible.
Pour la LED, on va l'alimenter via une des broches numériques de la Uno. La LED sera allumée quand la broche en question sera à l'état haut et éteinte à l'état bas.

Branchement:
    ==> Du Microphone:
      - Vcc du breakout à la pin 3.3V de l'Arduino.
      - GND du breakout à la pin GND de l'Arduino.
      - OUT du breakout à la pin Analog In A0 de l'Arduino.
    ==> De la LED:
      - La patte longue de la LED à la pin Digital 2 de l'Arduino.
      - La patte courte de la LED à la pin GND de l'Arduino.

Voilà pour la partie Hardware.

- CODE:
Code: Tout sélectionner
int NiveauSonore = 1000; // Seuil minimum.
int Valeur; // Variable stockant la valeur captée par le microphone.
boolean EtatLED = LOW; // Variable stockant l'état de la LED,
                       // initialisée à l'état bas.

void setup()
{
  pinMode(A0, INPUT); // Paramètre la broche analogique A0 en entrée.
 
  pinMode(2, OUTPUT); // Paramètre la broche digital D2 en sortie.   
  digitalWrite(2, LOW); // Paramètre la sortie D2 à l'état bas.
}

void loop()
{
  Valeur = analogRead(A0); // Stockage de la donnée,
                           // lue sur la broche A0,
                           // dans la variable Valeur.
 
  if( Valeur >= NiveauSonore) // La valeur lu
                              // doit être supérieure ou égale,
                              // au niveau sonore paramétré au début.
                              // afin de déclencher le système.
  {
    EtatLED = !EtatLED; //  Boolean. Inverse l'état de la LED,
                        // à chaque fois que la condition précédente
                        // est vérifiée.
   
    digitalWrite(2, EtatLED); // Paramètre la sortie D2 à l'état haut.
   
    delay(1000); // Attend 1s et recommence l'instruction.
  }
}


Au niveau du soft, rien de difficile à comprendre. On utilise des fonctions simples comme;
Code: Tout sélectionner
analogRead();

ou encore la boucle "if".
Code: Tout sélectionner
if(condition)
{
  Instructions si la condition est vraie;
}

La seule possible difficulté concerne le "boolean".

Définition d'un boolean:
- Boolean
C'est une donnée logique qui ne peut contenir que deux valeurs true (vrai en anglais) ou false (faux). Elle occupe un octet en mémoire.
Syntaxe:
Code: Tout sélectionner
boolean marche = false; // la variable marche est fausse.



Normalement, si tout est correctement branché et paramétré, lorsque vous claquez une fois des doigts la LED s'allume. Elle restera allumée jusqu'à ce que vous re-claquiez une nouvelle fois des doigts. A chaque claquement de doigts, le programme fait changer l'état de la LED.

Vous pouvez maintenant faire un montage grandeur nature pour allumer l'éclairage d'une pièce sur simple claquement de vos doigts.
Vous pouvez également employer le microphone que nous avons utilisé dans d'autres montages du style modification de voix. Et ainsi imiter ceci.


Voilà, voilà! C'est tout pour aujourd'hui, en espérant que ça vous ait plu.
Florian
 
Messages: 75
Inscription: Mer 24 Juil 2013 17:36

Retourner vers Adafruit

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron