Measuring dB using sound sensor

I am trying to measure the decibel of the sound using the sound sensor.

I used the basic, very basic analog sound sensor.

I connected the 3 pins to A0, 5V, and GND.
(I can post the picture if you want.)

I found out that I could measure the dB using calibration; so I applied the formula SPL(dB)=I0+log(P1/P0), when I0 was the dB of the reference sound which I measured using a soundmeter which reads the dB of the sound.

I thought if I simply put the numbers that my arduino sensor read inside the P1 and P0, I could find out the dB of the sound.

However, it did not work like that.

So, I made a reference sound with a dB of 74.5. (measured with soundmeter)

My sensor read 39.51. (average value which the sensor read for 2 seconds.)

Then, I made a experimental sound with a dB of 80. (also measured with sound meter)

My sensor read 39.6.

My first question is, why is my sensor reading such small numbers? What is the unit of the numbers?

According to the other users of this sound sensor, they read values that were bigger than at least 100. Mine fluctuates in the range of about 36 - 44.

Is there something wrong with my sensor?

And my second question is, why isn't this method working in my case?

I calculated the dB using the log formula, but it came out with a very small number, 74.52, which the actual dB was 80.

Please give me support.

Thanks a lot.

SPL(dB)=I0+log(P1/P0)

That's the correct formula for a power ratio (No, you should be multiplying), but you have a voltage/amplitude ratio.* So, 20 x log(V/Vref).

...I have to run so I can't check your numbers, but try that.

  • i.e. When you double the voltage you also double the current so double the voltage is 4 times the power, etc.

I'm back...

So yeah, 39.51 & 39.6 is virtually no difference (it's 0.02dB). Do you have a link to the sensor specs? There are 3 different kinds of sensors. Plus, different sensors will have different sensitivities (they don't always publish the sensitivity).

What are you reading with "silence"? What are your peak readings?

  • Make sure you are using log10(). In C++ log() is the natural log and you'll get the wrong result.

  • The formula will give you the dB difference. If everything is working properly with your 70dB reference, the formula should return a result of +10dB with an 80dB signal.

You might want to experiment with a spreadsheet. In Excel, LOG() is base-10 log so you can use it.

Some "handy" dB numbers to remember:
A voltage/amplitude factor of 2 is 6dB (double the voltage is +6dB, half the voltage is -6dB).
A power factor of 2 is 3dB.
A voltage/amplitude factor of 10 is 20dB.
A power factor of 10 is 10dB.

Note - Real SPL meters are [u]Weighted[/u] so it's difficult to make a good-accurate homemade SPL meter. But, as long as you calibrate with the same "kind" of noise/sound that you'll be measuring, your homemade SPL meter can still be useful. (Just don't rely on it for legal or regulatory purposes.)

jeongjun:
I am trying to measure the decibel of the sound using the sound sensor.

I used the basic, very basic analog sound sensor.

I connected the 3 pins to A0, 5V, and GND.
(I can post the picture if you want.)

Please always give full details of any hardware you mention, that means link to datasheet
or product page, not a description in words. We cannot guess what you have from that.