Arduino红外传感器-数字人体红外热释电运动传感器
外观
简介
- 热释电红外传感器是一种能检测人或动物身体发射的红外线而输出电信号的传感器。早在1938年,有人提出过利用热释电效应探测红外辐射,但并未受到重视,直到六十年代,随着激光、红外技术的迅速发展,才又推动了对热释电效应的研究和对热释电晶体的应用。热释电晶体已广泛用于红外光谱仪、红外遥感以及热辐射探测器,它可以作为红外激光的一种较理想的探测器。它目标正在被广泛的应用到各种自动化控制装置中。
- 在这里我们把它作为机器人的一种传感器来应用,除了在我们熟知的搂道自动开关、防盗报警上得到应用外,在更多的领域应用前景看好。如果你有更妙的想法,比如:在房间无人时会自动停机的空调机、饮水机,电视机能判断无人观看或观众已经睡觉后自动关机的机构,开启监视器或自动门铃上的应用,结合摄影机或数码照相机自动记录动物或人的活动等等。
- 热释电效应同压电效应类似,是指由于温度的变化而引起晶体表面荷电的现象。热释电传感器是对温度敏感的传感器。它由陶瓷氧化物或压电晶体元件组成,在元件两个表面做成电极,在传感器监测范围内温度有ΔT的变化时,热释电效应会在两个电极上会产生电荷ΔQ,即在两电极之间产生一微弱的电压ΔV。由于它的输出阻抗极高,在传感器中有一个场效应管进行阻抗变换。热释电效应所产生的电荷ΔQ会被空气中的离子所结合而消失,即当环境温度稳定不变时,ΔT=0,则传感器无输出。当人体进入检测区,因人体温度与环境温度有差别,产生ΔT,则有ΔT输出;若人体进入检测区后不动,则温度没有变化,传感器也没有输出了。所以这种传感器检测人体或者动物的活动传感。
- 由实验证明,传感器不加光学透镜(也称菲涅尔透镜),其检测距离小于2米,而加上光学透镜后,其检测距离可大于7米。
注:模块已经强制设置为可重复触发工作方式。
产品参数
- 工作电压:3~5V
- 静态电流:50μA
- 工作温度:0℃~+70℃
- 电平输出:4V
- 无信号输出:0.4V
- 感应角度:110度
- 感应距离:7米
- 输出延迟时间可调
- 外形尺寸:28mm×36mm
- 模块重量:约25g
应用
- 自动门
- 红外线防盗报警器
- 高速公路车辆车流计数器
工作原理
- BISS0001是由运算放大器、电压比较器、状态控制器、延迟时间定时器以及封锁时间定时器等构成的数模混合专用集成电路。
- 以下图所示的不可重复触发工作方式下的波形,来说明其工作过程。 不可重复触发工作方式下的波形。
- 首先,根据实际需要,利用运算放大器OP1组成传感信号预处理电路,将信号放大。
- 然后耦合给运算放大器OP2,再进行第二级放大,同时将直流电位抬高为VM(≈0.5VDD)后,将输出信号V2送到由比较器COP1和COP2组成的双向鉴幅器,检出有效触发信号Vs。
- 由于VH≈0.7VDD、VL≈0.3VDD,所以,当VDD=5V时,可有效抑制±1V的噪声干扰,提高系统的可靠性。
- COP3是一个条件比较器。当输入电压Vc<VR(≈0.2VDD)时,COP3输出为低电平封住了与门U2,禁止触发信号Vs向下级传递;而当Vc>VR时,COP3输出为高电平,进入延时周期。
- 当A端接“0”电平时,在Tx时间内任何V2的变化都被忽略,直至Tx时间结束,即所谓不可重复触发工作方式。当Tx时间结束时,Vo下跳回低电平,同时启动封锁时间定时器而进入封锁周期Ti。在Ti时间内,任何V2的变化都不能使Vo跳变为有效状态(高电平),可有效抑制负载切换过程中产生的各种干扰。
- 可重复触发工作方式下的波形在Vc=“0”、A=“0”期间,信号Vs不能触发Vo为有效状态。在Vc=“1”、A=“1”时,Vs可重复触发Vo为有效状态,并可促使Vo在Tx周期内一直保持有效状态。 在Tx时间内,只要Vs发生上跳变,则Vo将从Vs上跳变时刻起继续延长一个Tx周期;若Vs保持为“1”状态,则Vo一直保持有效状态;若Vs保持为“0”状态,则在Tx周期结束后Vo恢复为无效状态,并且,同样在封锁时间Ti时间内,任何Vs的变化都不能触发Vo为有效状态。
- LH是工作方式选择开关,当LH与H端连通时,芯片处于可重复触发工作方式;当LH与L端连通时,芯片则处于不可重复触发工作方式。
- 输出延迟时间Tx由外部的R17和C7的大小调整,值为Tx≈24576xR17C7;触发封锁时间Ti由外部的R10和C6的大小调整,值为Ti≈24xR10C6。
引脚说明
电路板上有2个Φ2.5的螺丝孔,可以很方便的安装在机器人硬件上。输出接口为3线系统即GND、OUT、 VCC,按照示意图连接好CT-418。当给模块加上电后,有人或动物在模块7米范围内活动,OUT既可输出高电平触发被控单元。无信号时OUT输出低电平(0.4V左右)。
下图是模块的连接方法及注释。
连线图
样例代码
const int buttonPin = 2;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop()
{
if (digitalRead(buttonPin) == HIGH)
{
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}
结果
当传感器感应到人体接近时,连接的LED灯会被点亮。
更多
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号