Page 1 of 1

ESP 32 with mems MIC SPW2430

Posted: Thu Sep 06, 2018 8:27 am
by Manveen
Hi all,
I am trying to create project using ESP 32 with arduino IDE which turns on when a snap is detected.
I will be using using spw2430 mems mic
datasheet here :https://www.knowles.com/docs/default-so ... hr5h-b.pdf

Right now I using the Adafruit SPW2430 mems mic breakout board for testing purpose
product site here :https://www.adafruit.com/product/2716

The problem I am facing is whenever i snap my fingers or clap my hand the output voltage goes up (as expected) BUT it takes a 4-5 seconds to come back to normal reading .
Ideally it should not take that much amount of time to come back to normal reading. It should take 10 ms to come back to normal readings.

I am polling every 500 microseconds and the attenuation of the esp has been set to 0 db so that the REf voltage scale is in 0 - 1V.
this similar problem is happening with arduino uno (with same set of test conditions) .
The input of adc is connected to the DC pin of the Breakout Board.
(Which does NOT have any capacitor in between the o/p of mic and I/p of adc.)

Here is the code I am using

Code: Select all

#include<esp32-hal-adc.h>

#define ANALOG_PIN 4

void setup()
{
  
  pinMode(ANALOG_PIN,INPUT);
  Serial.begin(115200); 
  /*
   * typedef enum 
   {
    ADC_0db,      // 0 to 1 v 
    ADC_2_5db,  // 0 to 1.27 v
    ADC_6db,     // 0 to 1.75 v
    ADC_11db     // 0 to 3.3 v
   } adc_attenuation_t; // changes Ref Voltage Scale
   */

  analogSetPinAttenuation(ANALOG_PIN,ADC_0db); // Set the attenuation for particular pin currently 0-1 v

}

void loop() 
{
  int raw_value = 0; // to store raw value of mic
 
  raw_value = analogRead(ANALOG_PIN); // Reading the op voltage of mic
  
  Serial.print("Raw value is : ");
  Serial.println(raw_value);
  
  delayMicroseconds(500); // Sampling every 500 uSec
}


Re: ESP 32 with mems MIC SPW2430

Posted: Sun Sep 09, 2018 5:43 am
by Manveen
For anyone who is interested I have found the answer
https://forums.adafruit.com/viewtopic.php?f=8&t=140676


TLDR :

It is the mic's general behavior And no one can do anything about it