开源声音分贝检测仪/zh
[WIP,waiting for assembling instructions] 概述
本次教程我们将使用Microduino产品模块快速搭建一个噪声监测仪。它能够检测出持续的噪音并使用蜂鸣器和LED彩灯报警,并将噪声的分贝值显示在OLED屏幕上。 材料清单
实验原理通过声音传感器采集环境中声音的大小,当声音持续高于分贝阈值时则LED彩灯点亮同时Buzzer发出报警音。需要关闭报警时则按下滑轮开关。OLED屏幕实时显示当前环境中声音的分贝值
文档百度盘地址:http://pan.baidu.com/s/1jHlCkdS 提取码:hxa5 调试过程将Microduino-Core与Microduino-USBTTL叠加(无上下顺序),通过USB数据与电脑连接起来。 注意:最好不要将所有模块堆叠在一起之后再上传程序 打开Arduino IDE编程软件,点击 【文件】->【打开】,打开插卡音箱文件夹后选择DBDetector\ DBDetector.ino 点击"√",编译程序。 点击【工具】,选择正确的板+处理器+端口。 点击"→",进行上传。 组装注意事项操作说明程序说明蜂鸣器报警部分 void buzzer() {
if (millis() - timer > 10) {
if (!add) {
i++;
if (i >= 800)
add = true;
} else {
i--;
if (i <= 200) {
add = false;
}
}
tone(buzzer_pin, i);
timer = millis();
}
}
OLED显示部分 void OLEDShow()
{
u8g.firstPage();
do
{
u8g.drawXBMP( 64, 1, 64, 64, DB);
setFont_M;
u8g.setPrintPos(5, 50);
u8g.print(db);
//u8g.print(recodeDB);
}
while( u8g.nextPage() );
}
声音采集部分 void getDB()
{
voice_data = analogRead(mic_pin);
voice_data = map(voice_data, 0, 1023, 0, 5);
db = (20. * log(10)) * (voice_data / 1.0);
if(db > recodeDB)
{
recodeDB = db;
}
Serial.println(db);
}
视频 |