Microfono Adafruit MAX9814 con Arduino

Microfono Adafruit MAX9814 con Arduino
Microfono Adafruit MAX9814 con Arduino
5
(1)

Ben ritrovati su 9minuti.it, oggi parleremo di un modulo microfono che, a differenza degli altri venduti nei vari kit, funziona.

Questo sensore sonoro stato progettato dai mitici ragazzi di Adafruit ed è stato reso open source, quindi si trovano anche i cloni a poco prezzo.

Ogni tanto però sarebbe anche giusto supportarli, non credete?

Microfono Adafruit MAX9814 con Arduino

Microfono Adafruit MAX9814 con Arduino

Il collegamento del Microfono Adafruit MAX9814 con Arduino

Bisogna solo collegare Vdd, Gnd e la porta Out a un’entrata analogica.

DIY Pencil Case made with recycled bike tube

Se volessimo abbassare i db massimi captati dal modulo bisogna connettere Gain a Gnd o a Vdd, c’è tutto scritto sul modulo stesso ed è piuttosto intuitivo.

microfonoAdafruit

Lo sketch

Questo sketch non l’ho scritto io ma l’ho preso da sito della Adafruit ed è stato scritto appositamente per il microfono Adafruit MAX9814 con Arduino.

Vediamo il codice riga per riga per utilizzare il microfono come sensore di rumore.

/****************************************
  Example Sound Level Sketch for the
  Adafruit Microphone Amplifier
****************************************/

const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz)
unsigned int sample;

void setup()
{
  Serial.begin(9600);
}


void loop()
{
  unsigned long startMillis = millis(); // Start of sample window
  unsigned int peakToPeak = 0;   // peak-to-peak level

  unsigned int signalMax = 0;
  unsigned int signalMin = 1024;

  // collect data for 50 mS
  while (millis() - startMillis < sampleWindow)
  {
    sample = analogRead(0);
    if (sample < 1024)  // toss out spurious readings
    {
      if (sample > signalMax)
      {
        signalMax = sample;  // save just the max levels
      }
      else if (sample < signalMin)
      {
        signalMin = sample;  // save just the min levels
      }
    }
  }
  peakToPeak = signalMax - signalMin;  // max - min = peak-peak amplitude
  double volts = (peakToPeak * 5.0) / 1024;  // convert to volts

  Serial.println(volts);
}

Il commento

6 – Dichiarazione della costante intera sampleWindow che sarà il tempo espresso in millisecondi fra una lettura e l’altra
7 – Dichiarazione di un intero unsigned di nome sample
9 – Apertura del Setup
11 – Inizializziamo la porta seriale
15 – Apertura del ciclo Loop
17 – Salviamo i millis attuali nella variabile startMillis di tipo long unsigned
18 – Creazione della variabile peakToPeak usata per salvare dentro la differenza fra il segnale minimo e il massimo
20 – signalMax è il valore massimo
21 – signalMin è il valore minimo
24 – Finché il contatore di millisecondi da quando è stato acceso Arduino, a cui sottraggo i millisecondi contenuti in startMillis, sono superiori alla nostra sampleWindow, allora eseguiamo il codice all’interno del ciclio while
26 – Salviamo all’interno della variabile sample il valore letto sull’entrata analogica 0
27 – Se il valore di sample è inferiore a 1024, ovvero il valore massimo leggibile sulla porta analogica
29 – Se il valore di sample è maggiore del valore massimo riscontrato salvato dentro signalMax
31 – Aggiorna il valore massimo con quello contenuto in sample
33 – Altrimenti, se il valore di sample è inferiore a signalMin
35 – Aggiornamento del valore di signalMin con il valore contenuto in sample
39 – peakToPeak è la variabile che conterrà la differenza tra il valore massimo e il valore minimo riscontrato
40 – Il valore peakToPeak viene moltiplicato per 5 che è il voltaggio con cui funziona Arduino e poi diviso per 1024 perché la porta analogica può andare da 0 a 1024.
42 – Stampa della variabile volts che conterrà il nostro valore!

SMILEBACK project - HOW to build the backpanel

Spero via sia piaciuto e che vogliate condividere questo articolo per supportare il blog.

Per questo tutorial è tutto e spero che vi sia stato utile e se avete bisogno di aiuto rimango a disposizione.

Come sempre vi chiedo se potete gentilmente commentare o condividere questo articolo per aiutarmi nella manutenzione del sito web.

Grazie mille,
Alessandro

Votalo e aiutami a migliorare!

DIY Pencil Case made with recycled bike tube

Rating medio 5 / 5. Numero di voti 1

Nessun voto per il momento, vuoi essere il primo?

Clicca sul tuo social preferito.

Cosa ho sbagliato?

Hai qualche consiglio per migliorare la qualità?

Alessandro Oppo

Alessandro è un milanese che vorrebbe scappare da Milano, è appassionato di informatica ma vorrebbe vivere senza telefono, è un artigiano eppure vorrebbe robotizzare tutto, impara una cosa e già vorrebbe studiare dell’altro. Autodidatta da sempre, gli piace sbattere la testa finché tutto non funziona come vuole lui, spesso ci riesce anche! Il motto che si ripete dentro la testa è: “Se ci sono riusciti gli altri ci posso riuscire anche io”.

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.