模拟分贝计

简介

我们生活的环境中,存在着各种各样的声音,其中一部分是噪音。随着人类文明的发展,安静的环境越来越少,取而代之的是越来越多的噪音。人体如果长时间处于噪音中,会对听觉产生影响,不利于健康。
声级计(又称分贝计、噪音计)是最基本的噪声测量仪器,能够模拟人耳对声波反应速度的时间特性,测量周围环境声音的大小。但目前还没有一款能兼容arduino、简单易用的声级计。
为此,我们新推出了一款arduino兼容的、即插即用的声级计模块,可精确测量周围环境声音的大小。该产品采用仪器级电路方案,低噪麦克风,精度高;支持3.3~5.0V宽电压输入,0.6~2.6V模拟量输出,兼容性好;分贝值与输出电压为线性关系,转换简单,无需复杂的算法;接口即插即用,无需焊接,可方便的应用到现成的系统中。
声级计在环境噪音检测中有着广泛的应用,如公路噪音监测站、居室噪音监测等。有了我们这款声级计模块,DIY一套环境声音检测设备不再有任何难度。

  • warning_yellow.png

  • 麦克风上的黑色薄膜属于敏感元件,请勿用手指甲或其他尖锐物体触碰。

  • 请勿将板子放在导体或者半导体的表面上,否则会将麦克风管脚短接。推荐将板子放在干燥的绝缘体表面上,或者用固定柱固定好板子,使其悬空。

技术规格

  • 测量范围:30dBA~130dBA
  • 测量误差: ±1.5dB
  • 频率加权:A加权
  • 频率响应:31.5Hz~8.5KHz
  • 时间特性:125ms
  • 输入电压:3.3~5.0V
  • 输入电流:22mA@3.3V, 14mA@5.0V
  • 输出电压:0.6~2.6V
  • 板子尺寸:60mm*43mm

引脚说明

分贝计接口管脚定义

标号 名称 功能描述
1 A 模拟信号输出端(0.6~2.6V)
2 + 电源输入正极(3.3~5.0V)
3 - 电源输入负极(0V)

使用教程(Arduino UNO)

本教程将演示如何使用这个分贝计模块,测量周围环境声音的分贝值。

准备

  • 硬件
    • 1 x Arduino UNO控制板
    • 1 x 模拟分贝计模块
    • 1 x 模拟传感器连接线
  • 软件

接线图

样例代码

/***************************************************
     DFRobot Gravity: Analog Sound Level Meter
     <https://www.dfrobot.com/wiki/index.php/Gravity:_Analog_Sound_Level_Meter_SKU:SEN0232>

     ***************************************************
     This sample code is used to test the analog sound level meter.

     Created 2017-06-26
     By Jason <jason.ling@dfrobot.com@dfrobot.com>

     GNU Lesser General Public License.
     See <https://www.gnu.org/licenses/> for details.
     All above must be included in any redistribution
     ****************************************************/

/***********Notice and Trouble shooting***************
  1. This sample code is tested on Arduino Uno with Arduino IDE 1.0.5 r2.
  2. In order to protect the microphone on the board, you should not touch the black membrane on the microphone. Also you should keep it clean.
  3. Please do not place this module on the surface of  conductor or semiconductor. Otherwise, this will cause the microphone pin to be shorted.
****************************************************/

#define SoundSensorPin A1  //this pin read the analog voltage from the sound level meter
#define VREF  5.0  //voltage on AREF pin,default:operating voltage

void setup()
{
  Serial.begin(115200);
}

void loop()
{
  float voltageValue, dbValue;
  voltageValue = analogRead(SoundSensorPin) / 1024.0 * VREF;
  dbValue = voltageValue * 50.0;  //convert voltage to decibel value
  Serial.print(dbValue, 1);
  Serial.println(" dBA");
  delay(125);
}

结果

上传完样例代码,打开串口监视器即可看到分贝值,如下图所示,测试环境为办公室。

Soundlevelmeterresult.png

分贝值与电压的关系

这款分贝计模块,分贝值与输出电压为线性关系。当输出电压为0.6V时,分贝值为30dBA。当输出电压为2.6V时,分贝值为130dBA。因此,分贝值(dBA) = 输出电压(V) × 50, 如下图所示:

Voltage-db.png

SEN0232 模拟分贝计:行空板 M10 Python 图形化示例

Mind+ Python 图形化(行空板 M10)

示例功能

读取 SEN0232 模拟分贝计的信号,将模拟读数换算为分贝值,并在 Mind+ 终端约每秒输出一次带 dBA 单位的结果。
适配 M10 时,使用 3.3V工作电压 和 4096 个量化级计算,使用“合并”连接积木输出数值和单位。

硬件准备

器材 数量
行空板 M10 1
SEN0232 模拟分贝计 1
3Pin白色硅胶线 1
USB Type-C 数据线 1

硬件接线

行空板 M10 板载 P21 三针模拟输入接口,板上标识为 21~、+、-/,接入传感器,再通过 USB 数据线将 M10 连接到电脑。

SEN0232 与行空板 M10 的 P21 接线图
SEN0232 接口引脚 M10 P21 接口引脚 用途
A P21(21~) 模拟信号输入
+ 3.3V(+) 模块供电
- GND(-) 共地

图中左侧为SEN0232 模块,右侧为 M10 背面。M10 的 P21 接口位于左侧四针 IIC 接口下方、P22 接口上方。灰线表示整根三芯连接线;两端按 A/信号、+/电源、-/地对应连接,不以图中引脚的上下排列直接判断对应关系。

操作步骤

  1. 打开 Mind+,切换到 Python 图形化模式,在扩展中加载行空板。
  2. 等待 M10 开机,连接远程终端。USB 连接时选择 10.1.2.3,确认连接成功。
  3. 先按下图搭建“读数采集”程序,运行并观察安静时、说话时的模拟读数变化。采集完成后停止程序。
  4. 根据下方公式理解模拟读数、电压和分贝之间的关系,再按图搭建“分贝测量”程序。
电压值 = 模拟值 ÷ 4096 × 3.3
分贝值 = 电压值 × 50
  1. 点击运行,检查终端是否约每秒输出一次带 dBA 的数值,观察声音变化时数值的变化。

示例程序

1. 采集模拟读数

第一步:每隔 1 秒采集 P21 模拟值

在循环中打印 P21 的模拟读数,然后等待 1 秒。此时显示的是 0~4095 的 ADC 读数,不是分贝值。先观察不同声音条件下的变化,再进行换算。

2. 将模拟读数换算为分贝值

M10 本例使用 3.3V 作为换算参考,ADC 有 4096 个量化级,对应读数 0~4095。原 Wiki 给出的 SEN0232 换算关系为:分贝值(dBA)=输出电压(V)×50。因此本例分两步计算:

电压值 = 模拟值 ÷ 4096 × 3.3
分贝值 = 电压值 × 50

4096 是本例 ADC 的量化级数。dBA 表示 A 加权声级。

3. 运行完整分贝测量程序

完整程序:分贝值保留两位小数、连接单位、等待 1 秒

预期现象

终端约每秒输出一次分贝值,并带 dBA 单位。说话前后数值会随环境声音变化;数值持续有波动属于正常现象。模块标称测量范围为 30~130dBA。

常见问题

Q1. 为什么测量得到的分贝值不稳定,一直在变化,这正常吗?

  • A. 分贝计测量的是一小段时间(几百毫秒)内的声音的大小,是瞬时值,实时测量环境的声音的大小,并且不同时刻,声音的大小都在变化,因此就会出现测量得到的分贝值一直在变化,这是正常现象。

Q2. 虽然环境非常安静,但测量得到的分贝值还是不低于30dbA,这是为什么?

  • A. 人们生活的环境中,总会存在一点声音,虽然人耳很难听到30dBA以下的声音,但仪器设备仍然可以检测到,因此一般环境中的声音,很难低于30dBA。

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png DFRobot商城购买链接