迪文科技论坛

 找回密码
 立即注册
搜索
查看: 223|回复: 4

【分享】迪文屏二次开发之人体传感器

[复制链接]

3

主题

3

回帖

44

积分

新手上路

Rank: 1

积分
44
发表于 2023-12-19 23:37:04 | 显示全部楼层 |阅读模式
本帖最后由 jingque 于 2023-12-20 14:16 编辑
人体传感器模块讲解:

VCC接5V或3.3V,GND接地,DOUT连接单片机引脚,单片机引脚负责读取电位变化,高电平为检测到人体的移动。


人体传感器采用的时热释电效应是指一些具有自发式极化的晶体,在温度发生变化的情况下,会导致某一方向上
产生表面极化电荷,也就是电位发生变化。红外线具有明显的热效应,所有物体都会向外辐射与本身温度相关的
红外线,人体也一样,而此红外线照射到热释电材料上以后,就会导致热释电材料产生微弱的电位变化,将此电
位变化的信号调理、放大后就能判断是否有人体移动。





人体传感器有两种触发方式:

a、个可重复触发方式:
即感应输出高电平后,延时时间段一结束,输出将目动从高电平变成低电平;
b、可重复触发方式:
即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其
输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模
块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次
活动的时间为延时时间的起始点)。


调节人体传感器感应距离与感应延时:
调节距离电位器顺时针旋转,感应距离增大(约7米),反之,感应距离减小(约3米)。
调节延时电位器顺时针旋转,感应延时加长(约300S),反之,感应延时减短(约0.5S)。


部分代码讲解:
  1. #define START_WIN_TEMP_VP                                0x2000  //定义的组件地址
  2. u16 val;         //用来接收读取到的值并且写入开发屏中
  3. sbit people_PIN = P2^2;


  4. P2MDOUT=0x00;  //不设置推挽输出模式


  5. sys_delay_ms(300);//每0.3s检测一次人体传感器电平

  6. val=check_people();//将读到的电平存储在val变量中

  7. sys_write_vp(START_WIN_TEMP_VP,(u8*)&val,1);  //将读取的电平写入在显示组件上
复制代码




效果演示:
检测到人体移动:

未检测到人体移动:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

1

回帖

54

积分

注册会员

Rank: 2

积分
54
发表于 2023-12-20 08:56:31 | 显示全部楼层
本帖最后由 lcs0330 于 2023-12-20 08:57 编辑

还是有些模糊,比如UI设计时,用什么控件(数据变量显示),为什么给的地址参数为2000,控件其他参数是多少,这些都要有所提及
回复

使用道具 举报

3

主题

3

回帖

44

积分

新手上路

Rank: 1

积分
44
 楼主| 发表于 2023-12-20 11:52:16 | 显示全部楼层
lcs0330 发表于 2023-12-20 08:56
还是有些模糊,比如UI设计时,用什么控件(数据变量显示),为什么给的地址参数为2000,控件其他参数是多少 ...

好,谢谢指导
回复

使用道具 举报

2

主题

4

回帖

59

积分

注册会员

Rank: 2

积分
59
发表于 2023-12-20 12:23:07 | 显示全部楼层
人体传感器的资料介绍的很详细,帖子写的不错
回复

使用道具 举报

3

主题

3

回帖

44

积分

新手上路

Rank: 1

积分
44
 楼主| 发表于 2023-12-20 14:28:35 | 显示全部楼层
yiwangersheng 发表于 2023-12-20 12:23
人体传感器的资料介绍的很详细,帖子写的不错

呼呼呼呼呼呼呼
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-23 01:44 , Processed in 0.088742 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表