找回密码
 立即注册

QQ登录

源自Sparkfun——SOUND DETECTOR声音检测传感器评测

来源: 奥松-jason 2014-6-4 11:03 显示全部楼层 |阅读模式
                   一、模块简介
   位于美国科罗拉多州博尔德的SparkFun电子是一家专业的开源硬件设计及制造公司,其广泛的套件产品和项目涵盖了1800多款产品,一直服务于爱好者市场。SparkFun的主要产品是嵌入式微型产品及其相关组件,同时还提供其它各种电子配件和套装。该公司的目的就是帮助人们发现他们内心中发明家的一面,并且发掘他们的潜力制造属于自己的电子产品。Sparkfun作为开源硬件的领跑者,为广大的创客朋友们提供了众多的硬件产品,以及各种其他的服务,而今Sparkfun已经登陆中国市场,哈尔滨奥松机器人科技有限公司作为Sparkfun在中国的代理,为广大的国内创客朋友们提供了更加广阔的制作空间,今天小编就和大家分享一款Sparkfun的产品——SOUND DETECTOR


图一  产品实物图

     接下来就为读者剖析一下这款产品(这块板子通体红色,还是很喜庆的),板子的规格尺寸和Arduino控制器的规格一样,焊接上附件包中的排针之后就可以直接和Arduino控制器相连接了。这款声音检测传感器由一个微型麦克风,一个四路的LMV324运算放大器和若干电阻电容所组成。其有三个输出引脚,分别是GATE、ENVELOPE、AUDIO;GATE用来检测当前环境中是否有声音的输入(开关量),ENVELOPE输出电压跟随声源振幅变化而变化(模拟量);AUDIO:音频电压的变化(模拟量)。我们通过其原理图可以看到AUDIO是前置放大器的输出,ENVELOPE隔离放大器的输出,GATE是施密特触发器的输出,如图二所示为SparkFun官网所提供的三个引脚的输出曲线对比图。


图二  引脚输出曲线

二、调试程序

Arduino可以与SOUND DETECTOR模块相连实现声音检测的一些功能,下面是三个示例程序:

程序一:当有声音输入时,可以看到接在Arduino的7号数字引脚的小灯闪烁,无声音输入时,小灯不闪烁。
/**************************************************************
奥松机器人基地:RobotBase  www.robotbase.cn
目的: Sound Dedector传感器的调试
目标系统: 基于Arduino UNO 控制器
应用软件: Arduino 1.0.5
功能描述:将GATE输出引脚与Arduino的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灯熄灭
     }  
}

程序二:将ENVELOP输出引脚接到ArduinioUNO控制器的A0口,可以通过串口看到随着声音强度的变化,串口显示当前声音振幅的变化。
/**************************************************************
奥松机器人基地:RobotBase  www.robotbase.cn
目的: Sound Dedector传感器的调试
目标系统: 基于Arduino UNO 控制器
应用软件: 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秒
}

程序三:将AUDIO输出引脚接到ArduinioUNO控制器的A0口,可以通过串口看到随着声音强度的变化,串口显示当前声音声源的变化。

/**************************************************************
奥松机器人基地:RobotBase  www.robotbase.cn
目的: Sound Dedector传感器的调试
目标系统: 基于Arduino UNO 控制器
应用软件: 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秒
}

资料链接:
1、ArduinoUNO控制器:

2、SOUND DETECTOR手册:

   https://www.sparkfun.com/products/12642] https://www.sparkfun.com/products/12642

相关视频:
1、sound detector传感器教学视频第一集:

2、sound detector传感器教学视频第二集:

3、sound detector传感器教学视频第三集:

    http://v.youku.com/v_show/id_XNzEyNjQxOTY4.html

回复

使用道具 举报

您可能感兴趣的文章

您需要登录后才可以回帖 登录 | 立即注册

关注0

粉丝3

帖子58

发布主题
社区热门 MORE+
    社区热帖 MORE+