分享

Stduino小白练习第七弹--楼道声控灯& 声音传感器

 Astilbe001 2020-01-10

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多