文章目录
一、声音传感器的使用
二、热释电传感器的使用
三、完成声控及热释电感应灯
硬件清单
一、声音传感器的使用
如图所示声音传感器,该传感器内置一个对声音敏感的电容式驻极体话筒。声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被转化成0-5V的电压,经过A/D转换被数据采集器接收,并传送给计算机。
上述声音传感器的接线也比较简单,只有正负及信号三个引脚,按照下图线序进行连接:
声音传感器与光敏传感器的使用方法较为一致,均可通过调整模块上的螺丝来调整传感器的阈值;
VCC:接电源正极
GND:接电源负极
OUT:接4号数字端口
并完成下述代码:
//此程序为测试声音传感器在受到声音影响下的信号变化
void setup()
{
pinMode(4,INPUT); //设置4号数字端口为输入
Serial.begin(9600); //串口初始化
}
void loop()
{
Serial.println(digitalRead(4)); //使用串口输出4号数字端口接收的数字信号
}
上传上述程序后可以对着声音传感器发出声音,及观察串口数据的变化:
经过测试得到结论:在声音小于一定分贝时,接收的信号0,在超过一定分贝时,接收信号1;也可调整声音传感器的旋钮来改变其灵敏度。
接下来可以尝试连接一个LED灯模块,并完成通过声音传感器来声控灯的装置:
声音传感器接4号数字端口
LED灯模块接9号数字端口
//此程序功能为通过声音传感器来控制LED灯点亮
void setup()
{
pinMode(4,INPUT); //4号针脚连接声音传感器
pinMode(9,OUTPUT); //9号针脚连接LED灯模块
}
void loop()
{
digitalWrite(9,1); //将9号针脚置高电平,默认LED灯为熄灭状态
if(digitalRead(4) == 1)
{
digitalWrite(9,0); //点亮LED灯
delay(5000); // 持续5秒
}
}
按照图示连接好并上传以上程序,尝试实现声控灯功能,若声控较为灵敏,可调整旋钮来达到理想效果。
二、热释电传感器的使用
热释电传感器又称人体红外传感器, 被广泛应用于防盗报警、 来客告知及非接触开关等红外领域。
其原理为压电陶瓷类电介质在电极化后能保持极化状态, 称为自发极化。自发极化随温度升高而减小, 在居里点温度降为零。因此,当这种材料受到红外辐射而温度升高时, 表面电荷将减少,相当于释放了一部分电荷,故称为热释电。将释放的电荷经放大器可转换为电压输出。
按照下图将热释电传感器进行连接:
VCC:接电源正极
GND:接电源负极
OUT:接6号数字端口
完成下述程序,从而测试热释电传感器的使用方法:
//此程序为测试热释电传感器信号输出
void setup()
{
pinMode(6,INPUT); //将OUT端口与6号数字端连接
Serial.begin(9600); //串口初始化
}
void loop()
{
Serial.println(digitalRead(6)); //使用串口输出6号端口数字信号
}
上传程序后,将手或人体接近热释电传感器,观察数字信号的变化:
通过测试可以看出,当未检测到人体时,信号输出为0,检测到人体后,信号输出为1;并且可以通过调整传感器背面的两个旋钮分别来调整感应灵敏度及延时长短(具体调整位置看热释电图示)。
接下来连接一个LED灯模块,尝试使用热释电传感器来控制LED灯点亮:
完成以下代码:
//此程序为使用热释电传感器控制LED灯点亮
void setup()
{
pinMode(6,INPUT); //热释电传感器连接到6号端口
pinMode(9,OUTPUT); //LED灯连接到9号端口
}
void loop()
{
digitalWrite(9, 1); //默认熄灭LED灯
if(digitalRead(6) == 1) //如果检测到有运动物体
{
digitalWrite(9, 0); //点亮LED灯
delay(5000); //延时5秒
}
}
在上传上述程序后尝试在热释电传感器前移动手掌,观察LED灯变化。
三、完成声控及热释电感应灯
将相关元器件按照下图进行连接:
将声控灯及热释电控制灯程序进行整合:
//此程序为通过声控及热释电同时控制LED灯
void setup()
{
pinMode(4,INPUT); //声音传感器连接到4号端口
pinMode(6,INPUT); //热释电传感器连接到6号端口
pinMode(9,OUTPUT); //LED灯连接到9号端口
}
void loop()
{
digitalWrite(9, 1); //默认熄灭LED灯
if(digitalRead(4) == 1) //检测声音传感器数值变化
{
digitalWrite(9, 0); //点亮LED灯
delay(5000); //延时5秒
}
if(digitalRead(6) == 1) //检测热释电传感器数值变化
{
digitalWrite(9, 0); //点亮LED灯
delay(5000); //延时5秒
}
}
上传上述程序并分别检测声音传感器及热释电传感器对LED灯的控制。
总结
日常生活中,声音传感器对灯的控制经常出现在小区楼道中,需发出声音才能点亮灯,其工作原理及成本较低;而热释电传感器的应用较为广泛,比如一些高档场所的自动感应门等只需检查到人体就可运行的装置。本文主要对声音传感器及热释电传感器的简单原理及使用方法进行了简要说明及演示,也可尝试将上述传感器结合其他硬件进行组合从而完成其他功能的装置。