STM32与人体红外感应模块的简单使用

您所在的位置:网站首页 reno6pro有没有红外功能 STM32与人体红外感应模块的简单使用

STM32与人体红外感应模块的简单使用

2023-07-09 08:23| 来源: 网络整理| 查看: 265

工作原理

人体有恒定的温度,可以发出10UM的红外波,而人体红外感应模块就可以探测出这些红外波,从而产生电平转换。由此人们可以使用人体红外检测模块来检测是否有人。

模块工作环境 工作电压:5V至20V电平输出:高3.3V,低0V延时时间:0.3秒~18秒(可以自己进行调节)触发方式:L不可重复,H可重复,默认值为H测量距离:3米~8米 触发方式

L不可重复,H可重复。可跳线选择,默认为H。 不可重复触发方式:即感应输出高电平后,延时时间一结束,输出将自动从高电平变为低电平。 重复触发方式: 即感应输出高电平后,在延时时间段内,如果有人体在其感应范围内活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平。

调节测量距离及感应延时

1、调节距离电位器顺时针旋转,感应距离增大(约 8 米),反之,感应距离减小(约 3 米)。 2、调节延时电位器顺时针旋转,感应延时加长(约300S),反之,感应延时减短(约 0.5S)。

模块特点

功耗低,造价便宜,易受热源,光源干扰,室温接近于人体温度时,该模块会短暂失灵,不能非常精确的检测是否有人存在。

 

了解了该模块简单知识后,下来开始简单的使用一下该模块。实验现象是如果监测到有人存在时,LED0灭掉,未检测到人时,LED0亮。如下图(模块的OUT口连接PA6,接线过于简单,不展示):

检测是否有人的主要代码:

while(1) { u8 value; value=GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6); if(value == 0) { GPIO_ResetBits(GPIOA,GPIO_Pin_8); //有人灭灯 } else GPIO_SetBits(GPIOA,GPIO_Pin_8); //没有人亮灯 };

PA6初始化代码:

#ifndef __RED_H #define __RED_H #include "sys.h" #define PA6 PAout(6) void RED_Init(void); #endif #include "red.h" void RED_Init() { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //初始化设置为输入状态 GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_ResetBits(GPIOA,GPIO_Pin_6); }

记得调用正点原子自带的led.h文件里的led_Init()函数,不然LED0是不会亮的,它里面包含了PA8引脚的初始化,单片机内部默认PA8是控制LED0的。

需要解决问题的话私聊或者留言都可以。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3