Arduino平台软硬件原理及使用——热释电传感器的使用
文章目录:
一、热释电传感器工作原理
二、热释电传感器使用测试
三、热释电传感器在Arduino中的使用
一、热释电传感器工作原理
热释电传感器又称人体红外传感器, 被广泛应用于防盗报警、 来客告知及非接触开关等红外领域。
其原理为压电陶瓷类电介质在电极化后能保持极化状态, 称为自发极化。自发极化随温度升高而减小, 在居里点温度降为零。因此,当这种材料受到红外辐射而温度升高时, 表面电荷将减少,相当于释放了一部分电荷,故称为热释电。将释放的电荷经放大器可转换为电压输出。
二、热释电传感器使用测试
按照下图将热释电传感器与Arduino板进行连接:
VCC 接 电源正极
GND 接 电源负极
OUT 接 6号数字信号端口
亦可接入模拟信号端口
热释电传感器背面的两个黄色旋钮可用来调节灵敏度
输入以下代码:
//此程序为测试热释电传感器信号输出
void setup()
{
pinMode(6,INPUT); //将OUT端口与6号数字端连接
Serial.begin(9600); //串口初始化
}
void loop()
{
Serial.println(digitalRead(6)); //使用串口输出6号端口数字信号
}
上传程序后,尝试用手在热释电传感器前方晃动,观察串口监视器数值的变化:
通过测试可以看出,当未检测到人体时,信号输出为0,检测到人体后,信号输出为1;并且可以通过调整传感器背面的两个旋钮分别来调整感应灵敏度及延时长短(具体调整位置看热释电图示)。
亦可接入模拟信号端口,则会输出0~1023模拟信号。
三、热释电传感器在Arduino中的使用
接下来连接一个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灯。
关于热释电传感器的具体实例可参考文章——Arduino项目式编程教学第六章——声控及热释电感应灯