使用带有树莓派的ADC模块的重力声表获得DBa值

时间:2019-05-08 03:16:02

标签: python raspberry-pi

我需要帮助才能从带有树莓派的重力式声波计中获取实际值。

我有一个python程序来获取这些详细信息

import sys
sys.path.append('../')
import time
from DFRobot_ADS1115 import ADS1115
ADS1115_REG_CONFIG_PGA_6_144V        = 0x00 # 6.144V range = Gain 2/3
ADS1115_REG_CONFIG_PGA_4_096V        = 0x02 # 4.096V range = Gain 1
ADS1115_REG_CONFIG_PGA_2_048V        = 0x04 # 2.048V range = Gain 2 (default)
ADS1115_REG_CONFIG_PGA_1_024V        = 0x06 # 1.024V range = Gain 4
ADS1115_REG_CONFIG_PGA_0_512V        = 0x08 # 0.512V range = Gain 8
ADS1115_REG_CONFIG_PGA_0_256V        = 0x0A # 0.256V range = Gain 16
ads1115 = ADS1115()

while True :
    #Set the IIC address
    ads1115.setAddr_ADS1115(0x48)
    #Sets the gain and input voltage range.
    ads1115.setGain(ADS1115_REG_CONFIG_PGA_6_144V)
    #Get the Digital Value of Analog of selected channel
    adc0 = ads1115.readVoltage(0)
    time.sleep(0.2)
    adc1 = ads1115.readVoltage(1)
    time.sleep(0.2)
    adc2 = ads1115.readVoltage(2)
    time.sleep(0.2)
    adc3 = ads1115.readVoltage(3)
    print "A0:%dmV A1:%dmV A2:%dmV A3:%dmV"%(adc0['r'],adc1['r'],adc2['r'],adc3['r'])

它显示类似

的值
A0:0mv A1:1098mV A2:3286mV A3:498mV

但是我不知道如何获得以分贝为单位的实际声音值。

1 个答案:

答案 0 :(得分:0)

您可以在这里找到文档: https://wiki.dfrobot.com/Gravity__Analog_Sound_Level_Meter_SKU_SEN0232

回答您的问题:

  

对于此产品,分贝值与输出呈线性关系   输出电压为0.6V时,分贝值为   30dBA。当输出电压为2.6V时,分贝值应为   130分贝。校准是在出厂之前完成的,因此您   不需要校准。这样我们就可以得到这种关系:分贝   值(dBA)=输出电压(V)×50 <​​/ strong>

因此,您需要检查将声级计连接到哪个连接器(A0,A1,A2或A3)。将该值(似乎以mV为单位)转换为V,然后乘以50。 或简单地将您的价值除以20。