问题原因及解决办法在文末,
首先介绍一下什么是HCSR501。
一、HC-SR501 小型人体感应模块说明书(来源于HCSR501官方说明文档)
1、产品概述
HC-SR505 小型人体感应模块是基于红外线技术的自动控制产品,
灵敏度高,可靠性强,超小体积,超低电压工作模式。广泛应用于各
类自动感应电器设备,尤其是干电池供电的自动控制产品。
2、电气参数
3、功能特点
4.使用说明
5.感应范围
6.外形调节
7.应用范围及电路说明
二、HCSR501连接单片机后,程序如下:
#include <STC8.H>
#include<intrins.h>
sbit HCR501=P3^2; //HCSR501的电平输出端接入单片机P3^2口
void main(void)
{
P6=0XFF;
while(1)
{
if(HCR501 == 1) //有人时,输出高电平
P6 = 0X00; //此单片机的LED灯为共阳极,使P6口为低电平,LED灯全亮
else if(HCR501 == 0)
P6 = 0XFF; //P6口为高电平,LED灯全灭
}
}
三、出现问题
LED灯在HCSR501模块不管在有人还是没人时一直时亮时灭。
四、检查解决
问题原因: 仔细检查程序没问题,检查HCSR501接线发现HCSR501所接正极电源为3.3V,而HCSR501说明书里明确指出工作电压为4.5V-20V,于是把HCSR501的正极输入端接到单片机的5V输出端。再次测试成功。
五、效果图