0
\$\begingroup\$

BREAKOUT BOARD SCHEMATICenter image description hereCIRCUIT SCHEMATIC enter image description hereGreen probe is for dso and red probe is for dmm

Green probe is for DSO and red probe is for DMM

The whole Circuit 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 :Mems MIC Datasheet Right now I using the Adafruit SPW2430 mems mic breakout board for testing purpose product site here :https://www.adafruit.com/product/2716

100 to 10kHz frequency resp VPP= 200mV Dc bias= 700mV Zout=450 Ohm

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 ESP32 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

#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
}

I also have a voltmeter. i connected one probe to GND and OTher one to DC pin output of MEMS Mic. The voltage reading is 700mV. When I snap my finger it reaches 800mV immediately But It takes 4-5 seconds to come back to 700mV

\$\endgroup\$
  • \$\begingroup\$ Show your circuit interface. \$\endgroup\$ – Andy aka Sep 6 '18 at 11:55
  • \$\begingroup\$ @Andyaka i could not find the necessary elements for the circuit so uploaded the pics. This is fully isolated from everything. and all the readings are raw readings of the mic \$\endgroup\$ – manveen_singh Sep 6 '18 at 12:49
  • \$\begingroup\$ Pictures are not circuits unless they are pictures of circuits. \$\endgroup\$ – Andy aka Sep 6 '18 at 15:32
  • \$\begingroup\$ @Andyaka I have now added the pics of the schematic i am following . \$\endgroup\$ – manveen_singh Sep 7 '18 at 5:13
0
\$\begingroup\$

For anyone who is interested I have found the answer

anwser here

TLDR :

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

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.