Arduino 各种模块篇 声控传感器 声音检测模块 口哨模块 vocie sensor

voice sensor

信号图:

原厂数据如下图:

6.5元的模块。

一 产品特点:

1 可以检测周围环境的声音强度,使用注意此传感器只能识别声音的有无(根据震动原理)不能识别声音的大小或者特定频率的声音

2 灵敏度可调(图中蓝色数字电位器调节)

3 工作电压3.3V-5V

5 输出形式 数字开关量输出(0和1高低电平

6 设有固定螺栓孔,方便安装

7 小板PCB尺寸:3.2cm * 1.7cm

二 模块接线说明

1 VCC 外接3.3V-5V电压(可以直接与5v单片机和3.3v单片机相连)

2 GND 外接GND

3 OUT 小板开关量输出接口(0和1)

三 使用说明

1声音模块对环境声音强度最敏感,一般用来检测周围环境的声音强度

2 模块在环境声音强度达不到设定阈值时,OUT输出高电平,当外界环境声音强度超过设定阈值时,模块OUT输出低电平;

3 小板数字量输出OUT可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的声音

4 小板数字量输出OUT可以直接驱动本店继电器模块,由此可以组成一个声控开关;

调试方法跟这个视频差不多。只不过我的这个模块没有模拟信号输出口,只有数字输出口{TTL电平},不能检测声音强度,只能检测声音有无。

先提供一段调试声音灵敏度的代码,当你用螺丝刀调节变阻器的时候。

要将数据介于0,1之间。

当有声音时是0,

没有声音时是1.

要调节到刚好都输出的是1, 有一点声音的时候,立即输出0.

结合串口输出并调试代码。

int sensorVoice = 2;
void setup()
{
  pinMode(sensorVoice, INPUT);
  Serial.begin(9600);
}

void loop()
{
  int temp = digitalRead(sensorVoice);
  Serial.println(temp);
  delay(200);
  
}

图中有0输出,表示有声音。因为我在吹口哨,哈哈~

这样就能表示其比较灵敏了。TTL来说,美中不足没有analog 

下面就可以写声控程序了。

下面做个例程。做个简单的声控灯。

功能:

  有声音后,达到一定程度,激活继电器,打开电灯,亮30秒。然后熄灭。

做了一个简单的消除杂音处理,有点像消抖,其实都差不多。

就是加了个delay(若干毫秒) 函数。

//-----------voice-sensor------------

int sensorVoice = 2;
int sensorJidianqi = 13; //
void setup()
{
  pinMode(sensorJidianqi, OUTPUT);
  pinMode(sensorVoice, INPUT);
  Serial.begin(9600);
}

void loop()
{
  if (digitalRead(sensorVoice) ==0)
  {
    delay(100);
    if (digitalRead(sensorVoice) ==0)
    {
      digitalWrite(sensorJidianqi, HIGH); //LOW to power on JiDianQi
      delay(4000);
      digitalWrite(sensorJidianqi, LOW); //
    }
  }
  else
  {
    digitalWrite(sensorJidianqi, LOW);
  }
}

这个是没有用继电器的。

用继电器的时候,注意是高电平激活,还是低电平激活继电器的。这个要留意。本人买的几个都是低电平导通的,不同继电器可能不同。

用的是arduino Uno pin13上默认自己带的那个LED灯。实验就是对着模块吹一声,而后,模块上的Pin13出默认的LED灯,就亮了4秒钟。而后自动熄灭。

代码就是这么简单

切记:一定要事先调整好模块,用螺丝刀调整好,到临界状态。

如果有声音,模块输出低电平 0 v

如果没有声音,模块输出高点平 5V 

是在一个区间内的,一个高一个低。

原文地址:https://www.cnblogs.com/spaceship9/p/3001943.html