欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

声音传感器

程序员文章站 2022-04-30 11:35:16
...
验采用OJ模拟声音传感器,驻极体检测声音大小,并经过放大电路输出模拟量。所以,检测声音的大小就与输出的模拟量成正比。实验中,我们采用模拟声音传感器循环检测外部音量,当超过一定值后,点亮LED,延时一段时间后,熄灭LED。这样模拟夜间楼道声控灯工作。
声音传感器
实验所需模块清单:
Zduino UNO × 1
OJ传感器扩展板× 1
USB数据线 × 1 
3p杜邦线 × 2 
声音传感器模块 × 1 
食人鱼LED模块 × 1 

主要知识点:
analogRead(PIN)  读取模拟输入值。 
  这里的PIN只能是对应A0---A5 这种带ADC功能的引脚,数字引脚0—13则不能使用该函数。
  读取到的值是则是一个0~5V的电压值,而这里的模拟输入精度为10位,也就是2的10次方为1024,将0—5V伏对应映射到0—1023,所以analogRead(PIN)的返回值为0—1023中的一个值。通过这个值也可以换算为读取到的电压值。

实验连接图
食人鱼LED对应连接13IO口。

声音传感器 

声音传感器对应连接A0口。

声音传感器
声音传感器输出的是一个模拟值,可以调节中间蓝色电位器来调节其检测灵明度。

模拟量-- 控制系统量的大小是一个在一定范围内变化的连续数值,比如温度,压力等等,这些都是模拟量;模拟量传感器发出的是连续信号,用电压,电流,电阻等表示被测参数的大小;

开关量--该物理量只有两种状态,如开关的导通和断开的状态,继电器的闭合和打开,电磁阀通和断等等;

对控制系统来说,由于CPU是二进制的,数据的每位有“0”和“1”两种状态,因此,开关量只要用CPU内部的一位即可表示,比如,用“0”表示开,用“1”表示关。而模拟量则根据精度,通常需要8位到16为才能表示一个模拟量。

声音传感器是通过麦克风接收声音信号转化为音频信号,根据音频的变化确定电压的变化,从而输出所感知的声音信号的强度(可以通过LED灯来反馈电压变化);

声音传感器一般有四个接口,AO表示模拟量输出,用来实时输出麦克风所检测声音电压信号,DO表示当声音到达某个阈值时,输出高低电平信号;

具体实现代码:

  1. int led=7;//定义LED接口,以便观察声音信号的电平
  2. int button=6;//定义传感器DO接口,接收声音信号
  3. int val;//定义数字变量,读取声音信号
  4. int wal;//输出传感器模拟值
  5. void setup() {
  6.   Serial.begin(9600);//串口输出端口
  7.   pinMode(led,OUTPUT);//led输出接口
  8.   pinMode(button,INPUT);//DO输出接口
  9. }
  10. void loop() {
  11.   val=digitalRead(button);//DO接口输出值赋给val
  12.   wal=analogRead(A0);//接收模拟信号
  13.  Serial.println(wal);//打印模拟信号电平
  14.   if(val==HIGH)//检测到声音信号
  15.   {
  16.     digitalWrite(led,HIGH);
  17.   }
  18.   else
  19.   {
  20.         digitalWrite(led,LOW);
  21.   }
  22. }



连线实物图:
声音传感器