(SKU:RB-02S084)声音检测传感器
来自ALSROBOT WiKi
目录 |
产品概述
该款声音检测传感器是一款小巧易用的声音检测模块,它有三个不同的输出量。不仅仅能够输出音频(audio引脚),也能够指示声音的存在(gate引脚),同时以模拟量的形式输出声音的振幅(envelope引脚)。这三个输出是完全独立和同步的,所以您可以按需求随意使用。Envelope引脚(包络线)的输出信号使得您只需采集模拟量电压就可以读出声音的幅值。通过焊接一个直插电阻,你可以改变增益值,进而改变引起gate引脚高低变化的临界值。三个输出信号安排在板子的一侧,为2.54mm间距的单排孔,他们均是独立工作的。
规格参数
- 工作电压:3.5V—5.5V
- 制作工艺:FR4双面喷锡
- 发货清单:Sound Detector模块*1
- 包装方式:静电袋密封
- 选配配件:Arduino328控制器,杜邦线,排针
使用方法
引脚定义
- VCC:电源正极;
- GND:电源负极;
- GATE:用来检测环境是否有声音输入(开关量);
- ENVELOPE:输出电压跟随声源振幅变化而变化(模拟量);
- AUDIO:音频电压的变化(模拟量)
配置方法
- Sound Detector模块上的R17电阻并未焊接,从原理图我们可以知道,R3和R7与前置放大器的增益有关。
- 如果想降低增益(降低灵敏度):可以进行如图一所示的配置。
- 如果想增加增益(增加灵敏度):我们可以屏蔽掉R3,假如一个R17,增益如图二所示。
应用例程
示例代码
程序1:
/************************************************************** 奥松机器人基地:RobotBase www.robotbase.cn 目的: Sound Dedector传感器的调试 目标系统: 基于CarDuino UNO R3控制器 应用软件: Arduino 1.0.5 功能描述:将GATE输出引脚与CarDuino的5号引脚相连,当有声音输入时, LED灯闪烁 发布时间: 2014-05-14 说明: 若用于商业用途,请保留此段文字或注明代码来源 哈尔滨奥松机器人科技有限公司保留所有版权 **************************************************************/ const int led=7; //定义7号引脚 const int button=4; //定义4号引脚 int buttonState = 0; /定义初始化变量 void setup() { pinMode(button,INPUT); //定义4号引脚为输入 pinMode(led,OUTPUT); //定义7号引脚为输出 } void loop() { buttonState = digitalRead(button); //读取4号引脚的电平状态 if (buttonState == HIGH) //如果4号引脚为高电平 { digitalWrite(led,HIGH); //7号引脚输出高电平 delay(1000); //延时1秒 digitalWrite(led,LOW); //7号引脚输出低电平 delay(1000); } else { digitalWrite(led, LOW); //4号引脚低电平,led灯熄灭 } }
程序二:
/************************************************************** 奥松机器人基地:RobotBase www.robotbase.cn 目的: Sound Dedector传感器的调试 目标系统: 基于CarDuino UNO R3 控制器 应用软件: Arduino 1.0.5 功能描述:将ENVELOP输出引脚接到ArduinioUNO控制器的A0口,可以通过串口看到随着声音强度的变化,串口显示当前环境的状态。 发布时间: 2014-05-14 说明: 若用于商业用途,请保留此段文字或注明代码来源 哈尔滨奥松机器人科技有限公司保留所有版权 **************************************************************/ #define PIN_ANALOG_IN A0 //定义模拟口A0 void setup() { Serial.begin(9600); //定义串口波特率 Serial.println("Initialized"); //串口打印“Initialized” } void loop() { int value; //定义一个变量 value = analogRead(PIN_ANALOG_IN);//将读取的模拟口值赋给变量 Serial.print(value); //串口打印变量值 Serial.print("Status: "); //串口打印当前环境状态“Status” if(value <= 10) /如果收到的变量值<10 { Serial.println("Quiet."); //串口打印quiet } else if( (value > 10) && ( value <= 30) )//如果收到的变量值在10-30之间 { Serial.println("Moderate."); //打印“Moderate” } else if(value > 30) //如果收到的变量值>30 { Serial.println("Loud."); //打印“Loud” } delay(1000); //延时1秒 }
程序三:
/************************************************************** 奥松机器人基地:RobotBase www.robotbase.cn 目的: Sound Dedector传感器的调试 目标系统: 基于CarDuino UNO R3控制器 应用软件: Arduino 1.0.5 功能描述:将AUDIO输出引脚接到ArduinioUNO控制器的A0口,可以通过串口看到随着声音强度的变化,串口显示当前声音声源的变化。 发布时间: 2014-05-14 说明: 若用于商业用途,请保留此段文字或注明代码来源 哈尔滨奥松机器人科技有限公司保留所有版权 **************************************************************/ #define PIN_ANALOG_IN A0 /定义模拟口A0 void setup() { Serial.begin(9600); //定义串口波特率 Serial.println("Initialized"); //串口打印“Initialized” } void loop() { int value; //定义一个变量 value = analogRead(PIN_ANALOG_IN); //将读取的模拟口值赋给变量 Serial.println(value); // 串口打印变量值 Serial.print("Status: "); //串口打印当前环境状态“Status” if(value <= 200) //如果收到的变量值<200 { Serial.println("Quiet."); //串口打印quiet } else if( (value > 400) && ( value <= 500) )//如果收到的变量值在400-500之间 { Serial.println("Moderate."); //打印“Moderate” } else if(value > 600) //如果收到的变量值>600 { Serial.println("Loud."); //打印“Loud” } delay(1000); //延时1秒 }
程序效果
- 程序一:将GATE输出引脚与CarDuino的5号引脚相连,当有声音输入时, LED灯闪烁
- 程序二:将ENVELOP输出引脚接到CarDuino UNO R3控制器的A0口,可以通过串口看到随着声音强度的变化,串口显示当前声音振幅的变化。
- 程序三:将AUDIO输出引脚接到CarDuino UNO R3控制器的A0口,可以通过串口看到随着声音强度的变化,串口显示当前声音声源的变化。