2020/01/09 星期四 作者:Astilbe 问题:怎么制作楼道里的声控灯呢? 本小结我们将应用声音传感器。
声音传感器在日常生活中非常常见,例如楼道里的声控开关:传感器感应到脚步声,从而点亮楼道里的灯,一旦人离开后,又熄灭。
声音传感器的作用相当于一个话筒(麦克风)。它用来接收声波,显示声音的振动图象,但不能对噪声的强度进行测量。
该传感器内置一个对声音敏感的电容式驻极体话筒。声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。 这一电压随后被转化成0-5V的电压,经过A/D转换被采集器接受,并传送给计算机。
一般而言,用于声音检测,模块有2个输出: 1、AIN,模拟量输出,实时输出麦克风的电压信号 2、DIN,当声音强度到达某个阀值时,输出高低电平信号
因此,我们将AIN接模拟信号引脚A3,DIN接数字信号引脚D8,同时利用板载LED(13号脚)实现一个简单的声控灯。 简单来说,我们需要实现以下功能: 传感器接受声音信息,并把它转换为信号给单片机(在这里为了更好的看到收集到的数据,我们将信息通过串口传给PC) 当传感器接收到信号,超过阈值时会输出高电平,单片机获取后点亮13号引脚的LED灯。
实现代码如下: int num; void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(A3,INPUT_AIN);//初始化A3,接受声音的模拟信号 pinMode(8,INPUT);//初始化D8引脚,接受阈值高低电平 pinMode(13,OUTPUT);//初始化13号引脚,控制LED }
void loop() { // put your main code here, to run repeatedly: if(digitalRead(8)){//当接收到高电平时 digitalWrite(13,LOW);//LED灯亮 delay(1000); //延迟效果 }else{ digitalWrite(13,HIGH); //否则灯灭 delay(100); }; num=analogRead(A3); //接收传来的模拟信号,并传给PC Serial.println(num); } 当没有较大响动时:  
当有较大声响时:
 
本文转载自Stduino网http:///forum.php?mod=viewthread&tid=15&page=1&extra=#pid15
|