Grove analog sound sensor

Hi everyone. Do you know how to get decibel reading from analog reading of sound sensor by grove. how to relate the analog reading with sound level equation?

Which sound sensor?
Know that dB is logarithmic.

I Made an SPL meter (with a SparkFun microphone board). There are lots of comments in the code and other notes in the post so hopefully you can understand how it works.

There are several "complications" that make it very difficult to make a "good" SPL meter but depending on what you need it may be "usable". The main thing is calibration. The voltage you get depends on microphone sensitivity and preamp gain. In general, you need a known-good SPL meter to calibrate the one you're building.

You can get an SPL meter app for your phone but phone-microphone sensitivity varies too. If you have an iPhone I assume they are more consistent than a "random" Android but it still may not be as accurate as a real SPL meter..

grove sound sensor

Hi, @aidid

Please post a link to data/specs of the sound sensor.

Thanks.. Tom.. :smiley: :+1: :coffee: :australia:

1 Like

Google give this: grove sound sensor - Sök (bing.com)

The Grove sound sensor doesn't have a biased output so if you use my code take-out the bias subtraction. And since there you aren't subtracting there are no negative values so you can take-out the absolute value conversion. You can just directly-use the analog reading.

Also, the output is "floating" (no DC current path). So you should put a pull-down resistor between the Arduino's analog input and ground (just about any resistor 10K or higher).

Since you are loosing the negative half of the waveform, about half of the readings will be zero. That's going to give you a "lower than expected" average but you should still be able to calibrate it.

Hi, I bought the sensor from this website with some details of specification over here.

Hi tom. I get my sensor from here, there are some provided details you may check. Thank you

how you define this

int SPLref = 94;                          // An arbritary (semi-standard) reference for finding PeakRef and AvgRef. Any known SPL level will work
int PeakRef = 159;                        // Measured (or calculated) at SPLref
int AvgRef = 73;                          // Measured (or calculated) at SPLref

is this solution is accurate one?

Thanks but sales sites without datasheet is not of much help. I see other helpers replied and hopefully their replies will keep the ship afloat.

Hi, @aidid
Google;

Grove - Loudness Sensor arduino tutorial

This is the schematic;


As the amplifier is only powered Vcc to gnd, the output signal cannot go negative.
And this may help, look at the examples and the Serial Plotter trace.

Tom... :smiley: :coffee: :australia:
PS, Google is your friend, do some research.

94dB SPLref was the actual reading on my real SPL meter. Your reading will probably be different. You can generate a constant 1 or 2kHz tone with Audacity and then change SPLref to whatever you are reading on your real SPL meter.

94dB is rather LOUD and you'll probably want to use a lower reference (or use ear plugs). ...I actually have a little calibrator that puts-out a 94dB sound and it "connects" with a little tube directly to the SPL meter's microphone. So it's not that loud in the room but it's 94dB very close to the mic or (right next to your ear).

PeakRef = 159 and AvgRef = 73 are the raw readings from the Arduino from my setup (shown on the serial monitor) when the 94dB sound is hitting the sound sensor. Your raw readings will be different. These are NOT dB readings.

The important thing for calibration is that all 3 of these numbers have to be taken at the same time with the same constant test-tone.

Yes. But don't use my numbers because your sound sensor is different. If you enter your real SPL reading and your peak & average readings at that reference level, your code will calculate the correct SPL level to match your real meter.

*But, it will only be "perfectly accurate" at 1 or 2kHz and with constant tones. And very-loud sounds will overload (clip) the sound sensor, limiting the maximum reading.

And with quiet sounds you'll be reading electrical noise instead of room sound so there is a limit to how low you can get accurate measurements.

I tried at 90 dB on industrial standard meter. However I found that the code only work at 90db only. If i lower down my tone generator to be 60, the value still 90 from serial monitor. Or maybe the grove sound sensor is not accurate at all to read analog values.?

Hi, @aidid

Now is the time for you to post your code ?

Can we please have a circuit diagram?
An image of a hand drawn schematic will be fine, include ALL power supplies, component names and pin labels.

Thanks.. Tom.. :smiley: :+1: :coffee: :australia:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.