KY-037 KY-038
Microphone sound sensor module

ultimo aggiornamento 6 aprile 2019


 

Indice

Descrizione

Il modulo KY-037 Microphone sensor module (high sensitivity) fa parte della serie "37 In 1 Sensor Module Board Set Kit For Arduino", il sensore è costituito da un microfono a elettrete il cui segnale è gestito da un circuito di cui fa parte un integrato tipo  LM393 al cui interno sono presenti due comparatori. Il modulo è simile al KY-038 Microphone sensor module la differenza è nel tipo di microfono di cui sono dotati.

homotix

PCBA

homotix

PCBA

KY-037 Microphone sensor module (high sensitivity)

KY-038 Microphone sensor module

 

Può essere utilizzato per rilevare un suono di intensità superiore alla soglia che può essere regolata tramite il potenziometro sul sensore.
Per il rilevamento del suono modulo dispone di due uscite:

 

LM393 Low-Power, Low-Offset Voltage, Dual Comparators

Piedinatura Datasheet Foto dell'integrato

Altre tipologie di sensori di suono

Caratteristiche

Alimentazione:

 3.3V o 5.5V

Sensibilità:

 regolabile

Tipo sensore:

 uscita analogica e digitale

Imballaggio:

 sacchetto sigillato antistatico

Dimensioni del modulo

 34 x 16mm

Foto del modulo

Circuito elettrico e PCB del modulo

Analizzando il circuito, vediamo che il microfono di cui è dotato il sensore converte i segnali audio in segnali elettrici, il segnale giunge all'uscita A0 del  modulo e all'ingresso analogico invertente del primo comparatore presente nell'integrato LM393 che viene utilizzato come comparatore di tensione, l'ingresso non invertente è collegato al partitore formato dalle due resistenze R2 e R6  (entrambe del valore di 10kΩ) che portano l'ingresso alla metà della tensione di alimentazione VCC.
Il funzionamento del comparatore è determinato dalle seguenti relazioni:
Se V+ > V- Vo = H
Se V+ < V- Vo = L
Si tratta quindi di un circuito che collega il mondo analogico (i due ingressi) a quello digitale (l'uscita). comportandosi come un ADC con risoluzione pari a 1 bit.
Per cui quando la tensione proveniente dal ramo formato dal microfono è regolata dal trimmer VR1 da 10kΩ, è maggiore di quella presente sul pin 3 dell'integrato IC1.1, si avrà in uscita sul pin 1 di Ic1.1 un segnale HIGH mentre quando la tensione è inferiore si avrà un livello LOW.
Il secondo comparatore  presente nell'integrato LM393 viene utilizzato per pilotare l'accensione del led L2, che segnala la rilevazione di un suono che supera la soglia impostata.
L'accensione del led L1 segnalerà la presenza della tensione di alimentazione, in quanto è collegato a VCC e GND tramite la resistenza R5 da 1kΩ.
Come abbiamo visto il modulo dispone sia di un’uscita analogica che di un’uscita digitale.
Per ottenere un segnale digitale bisogna preventivamente agire sul trimmer in modo da ottenere il segnale HIGH solo quando il rumore supera la soglia che desideriamo monitorare.
La taratura è abbastanza semplice in quanto facilitata dalla presenza del led L2: si dovrà agire in senso orario sulla vite del trimmer fino a quando il led si spegne.
Si proverà quindi ad emettere un suono e se il led si accenderà significa che il sensore è in grado di riconoscere il livello di rumore che abbiamo fatto è quindi di produrre un segnale HIGH in uscita. Se questo non accadesse si dovrà provare a regolare lentamente la vite sino a quando non si ottiene l’effetto desiderato.
Il segnale analogico in uscita invece varia al variare dell’intensità o meglio, dal volume del suono.
La soluzione circuitale dell'integrato LM393 utilizzato in questo caso come comparatore e non come amplificatore fa si che le tensioni uscita siano limitate a quelle prodotte direttamente dal microfono e quindi molto basse e con modestissime escursioni.  Si potrà comunque collegarlo ad uno degli ingressi Analogici di Arduino per verificarne l'andamento.

Schema realizzato con EasyEDA: Un servizio per il disegno di circuiti e la loro simulazione, progettazione e produzione di PCB. Provalo è gratuito!

Schema del circuito di prova

Per testare il sensore si utilizzano i seguenti componenti

Arduino UNO KY-038 Microphone sound sensor module
Cavetti per Breadboard di vari colori KY-016 3 color LED module

 

Pin Arduino Pin KY-038
Microphone sound sensor module
Pin KY-016
3 color LED module
8 D0  
9   R
10   G
11   B
A0 A0  
     
+5V +  
GND G GND

Programma applicativo

Il seguente sketch di Arduino legge il valore analogico fornito dal sensore KY-038 e in base al valore accende uno trei tre led presenti sul modulo KY-016.
I valori di soglia andranno modificati in base alla taratura del proprio sensore che deve essere fatta attraverso il trimmer presente sul modulo.
Il valore analogico può essere letto tramite il monitor seriale

 
Programma 
Schema circuito di prova

 
/*
  Test_KY-038.ino
  Il programma utilizza il sensore KY-038 per attivare
  l'accensione di tre led a legeonda del valore analogico
  letto dal sensore 

  Creato il 05/01/2017 da Adriano Gandolfo
  Sito web https://www.adrirobot.it
  Blog http://it.emcelettronica.com/author/adrirobot
  Pagina Facebook https://www.facebook.com/Adrirobot-318949048122955
  Istagram https://www.instagram.com/adrirobot/
  This example code is in the public domain.
*/
//Definizione dei pin del modulo KY-038
int pin_A0 = A5;
int pin_D0 = 8;

// Definizione dei pin del modulo KY - 016
int pin_led_B = 11;
int pin_led_G = 10;
int pin_led_R = 9;

//Definizione variabili
int valore_A0 = 0;
int valore_D0 = 0;

void setup()
{
  Serial.begin(9600);
  //Definiche i pin del modulo KY-038 come ingressi
  pinMode(pin_A0, INPUT);
  pinMode(pin_D0, INPUT);
  //Definisce i pin del modulo KY-016 come uscite
  pinMode(pin_led_B, OUTPUT);
  pinMode(pin_led_G, OUTPUT);
  pinMode(pin_led_R, OUTPUT);
}

void loop()
{
  valore_A0 = analogRead(pin_A0);
  valore_D0 = digitalRead(pin_D0);
  //Scrive valore letti su monitor seriale
  Serial.print("Valore uscita A0: ");
  Serial.print(valore_A0);
  Serial.print(" Uscita D0: ");
  Serial.println(valore_D0);

  //Intensità rumore basso
  if (valore_A0 < 520)
  {
    digitalWrite(pin_led_B, LOW);
    digitalWrite(pin_led_G, HIGH);
    digitalWrite(pin_led_R, LOW);
  }
  //Intensità rumore medio
  if (valore_A0 >= 520 && valore_A0 < 525)
  {
    digitalWrite(pin_led_B, HIGH);
    digitalWrite(pin_led_G, LOW);
    digitalWrite(pin_led_R, LOW);
  }
  //Intensità rumore alto
  if (valore_A0 > 525)
  {
    digitalWrite(pin_led_B, LOW);
    digitalWrite(pin_led_G, LOW);
    digitalWrite(pin_led_R, HIGH);
  }
  delay(100);
  //Spegne tutti i led
  digitalWrite(pin_led_B, LOW);
  digitalWrite(pin_led_G, LOW);
  digitalWrite(pin_led_R, LOW);
}

Filmato illustrativo

 

 

Elenco revisioni:

06/04/2019

Aggiornato schema

03/11/2018

Aggiornato pagina

05/03/2017

Inserito descrizione funzionamento circuito

05/02/2017

Emissione preliminare
Private Policy Cookie Policy