单片机交流
登录
直播中
刘丽
7年用户
1217经验值
私信
关注
[问答]
小白求助,求51单片机使用HC-SR501写的人体红外感应器C语言程序
开启该帖子的消息推送
51单片机
小白求助,求51
单片机
使用HC-SR501写的人体红外感应器C语言程序
回帖
(1)
康沧鹤
2021-10-15 17:08:38
前言
买到该产品后问客服和面向百度编程,发现在51单片机上 使用的教程不多,且不够细致,使用存在困难,烦躁了很久,为了不让后来者跟我一样,写一篇 文章,第一次写,排版和言语照顾不周,见谅
HC-SR501介绍
HC-SR501 是一款基于热释电效应的人体热释运动传感器,能检测到人体或者动物上发出的红外线。这个传感器模块可以通过两个旋钮调节检测 3 ~ 7 米的范围,5秒至5分钟的延迟时间,还可以通过跳线来选择单次触发以及重复触发模式。
下图为大概功能描述:
图来自(
https://blog.csdn.net/weixin_41939983/article/details/106418835?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase
)该网站还有更较详细的简介
(图来自
http://www.51hei.com/bbs/dpj-106474-1.html
)
C代码
与单片机连线为左接5V,右接GND,中间接P33(透镜朝下,引脚面向自己)
效果为:检测到人以后,p3^3输出高电平,使得灯灭,否则灯亮
#include
***it dat=P3^3; // 接传感器out
void delayx(unsigned int x)
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=112;j>0;j--)
;
}
void main() {
//dat=0; //51默认高电平,先置0
P2=0xFF;
while(1){
delayx(50);//延时50ms
if(dat==1) //1高电平,人进入范围感应器输出1 -> dat
P2=0xFF; //灯全灭
else
P2=0x00; //灯全亮
}
}
爬过的坑
1、给的资料所描述默认是可重复触发不是真实的,我在两家淘宝店买到的默认都不是可重复触发状态,需要把跳线帽取下来装到H,具体看第一张图
2、该传感器必须在检测范围内活动才可以检测到,静止不行
3、检测不是很高效,所以用起来和想要的效果有点不够
前言
买到该产品后问客服和面向百度编程,发现在51单片机上 使用的教程不多,且不够细致,使用存在困难,烦躁了很久,为了不让后来者跟我一样,写一篇 文章,第一次写,排版和言语照顾不周,见谅
HC-SR501介绍
HC-SR501 是一款基于热释电效应的人体热释运动传感器,能检测到人体或者动物上发出的红外线。这个传感器模块可以通过两个旋钮调节检测 3 ~ 7 米的范围,5秒至5分钟的延迟时间,还可以通过跳线来选择单次触发以及重复触发模式。
下图为大概功能描述:
图来自(
https://blog.csdn.net/weixin_41939983/article/details/106418835?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase
)该网站还有更较详细的简介
(图来自
http://www.51hei.com/bbs/dpj-106474-1.html
)
C代码
与单片机连线为左接5V,右接GND,中间接P33(透镜朝下,引脚面向自己)
效果为:检测到人以后,p3^3输出高电平,使得灯灭,否则灯亮
#include
***it dat=P3^3; // 接传感器out
void delayx(unsigned int x)
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=112;j>0;j--)
;
}
void main() {
//dat=0; //51默认高电平,先置0
P2=0xFF;
while(1){
delayx(50);//延时50ms
if(dat==1) //1高电平,人进入范围感应器输出1 -> dat
P2=0xFF; //灯全灭
else
P2=0x00; //灯全亮
}
}
爬过的坑
1、给的资料所描述默认是可重复触发不是真实的,我在两家淘宝店买到的默认都不是可重复触发状态,需要把跳线帽取下来装到H,具体看第一张图
2、该传感器必须在检测范围内活动才可以检测到,静止不行
3、检测不是很高效,所以用起来和想要的效果有点不够
举报
更多回帖
rotate(-90deg);
回复
相关问答
51单片机
红外感应器
控制外接电路工作的问题
2013-05-31
5139
HC-SR501
人体
红外感应
模块
2014-12-04
14653
有用过
红外感应
模块的大神没
2014-03-27
3706
以热释电传感
器
,BISS0001芯片为主
的人体
红外感应
模块。可以
感应
到静止
的人
吗?
2017-04-18
8607
基于
人体
红外
的定向风扇系统设计
2013-04-23
3209
用stm32调试
hc-sr501
红外
模块,
求
大神提供代码参考!!!
2015-03-29
11094
HC-SR501
2016-11-21
4171
请问
人体
感应
开关怎么做?
2014-11-11
11917
人体
红外感应
方案
2015-02-05
3600
单片机
HC-RS501
人体
红外感应
模块
2017-03-16
7153
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分