top of page

LE MODULE ME DETECTEUR DE SONS

Le module "Me Détecteur de sons" comporte un micro électret associé à un amplificateur LM386. Une led bleue s'allume lors de la détection d'un son. Les fonctions contenues dans la bibliothèque Makeblock sont :

  • MeSoundSensor son(PORT_X) où PORT_X est le port sur lequel est branché le module. Cette fonction permet de créer l'objet.

  • son.strength() renvoie la valeur du mot binaire proportionnelle à l'amplitude du son capté.

Le tableau ci- dessous donne les ports des cartes "Me Orion" et "Me Auriga" pouvant être connectés à ce module.

Exemple :

Nous reprendrons l'exemple donné pour la carte "Me Auriga".

Programme :
/* Son_Makeblock est un programme qui capte le son grâce à un module "Me Détecteur de sons", affiche le signal dans le traceur série et illumine un ruban à led avec une couleur aléatoire à chaque augmentation brutale du son */

#include "MeOrion.h"                                                       // appel des bibliothèques
#include <SoftwareSerial.h>
#include <Wire.h>

MeRGBLed led(PORT_3,SLOT1,15);                               // création de l'objet led (module branché sur le PORT 3)                                              
MeSoundSensor son(PORT_6);                                      // création de l'objet son (module branché sur le PORT 6)

long volume;
byte rouge=128;
byte vert=75;
byte bleu=90;

void setup()
{
Serial.begin(115200);                                                     // initialisation de la liaison série
}

void loop()
{
    for(int i=0; i<32; i++)
    {
        volume = volume + son.strength();
    }
    volume >>= 5;
    Serial.println(volume);
    delay(10);
    if( (volume>300)||(volume<130) )                            // si on capte un bruit
    {
        for(int i = 0; i < 15; i++)                                         // on allume  les  led en bleu
            {
            led.setColorAt(i, rouge, vert, bleu);                                             
            }
    }
    else
    {        for(int i = 0; i < 15; i++)                                    // on éteint les  led
            {
            led.setColorAt(i, 0, 0, 0);
            }  
    }                            
led.show();                                                                     // on rafraichit les led
delay(50);
rouge=random(0, 255);
vert=random(0, 255);
bleu=random(0, 255);
}

bottom of page