【HC-SR501人体红外传感器】

HC-SR501人体红外传感器

今天分享的是HC-SR501人体红外传感器的使用,下面我会结合stm32以及正在做的合泰HT32这两个型号的芯片进行例程讲解。

HC-SR501介绍

在这里插入图片描述

在这里插入图片描述

1、HC-SR501是基于红外线HC-SR501是基于红外线技术的自动控制模块 ,采用德国原装进口LHI778 探头设计,灵敏度高,可靠性强,超低电压工作模式 ,广泛应用于各类自动感应电器设备 ,尤其是干电池供电的自动控制产品。
2、模块为全自动感应,当人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。传感器有两种触发方式(可通过跳线进行选择):第一种不可重复触发方式,即感应输出高电平后,延时一段时间结束,输出将自动从高电平变成低电平。第二种可重复触发方式,即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)
3、具有感应封锁时间(默认设置:2.5S 封锁时间):感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒—几十秒钟)。感应模块通电后有一分钟左右的初始化时间,在此期间模块会间隔地输出0-3 次,一分钟后进入待机状态。

引脚接线

HC-SR501在使用的时候我们只需要接三根线就可以了,VCC GND OUT(输出引脚)中间的那根是信号线也就是我们的OUT输出引脚。我们从该模块的背后可以看出有一端上面有H L 的跳帽,靠近这个的引脚为GND 剩下的一个就是VCC。

注意

该模块在使用的时候我们需要接5v直流进行驱动
并且我们可以通过下面这两个电位器进行延时和
距离的调节
顺时针转动延时调节的时候,感应延时加长反之减短
顺时针转动距离调节的时候,感应距离变长反之变短

在这里插入图片描述

进入正题,HC-SR501的具体使用

1.stm32驱动HC-SR501

/*==================infrared.h===============*/
#ifndef _INFRARED_H_
#define _INFRARED_H_
#include "stm32f10x.h"

/*-----大家可以根据自己进行引脚端口等的修改---------*/
#define PORT GPIOB
#define PIN GPIO_Pin_4
#define GPIOB_RCC RCC_APB2Periph_GPIOB

#define Read_STATE() GPIO_ReadInputDataBit(PORT,PIN)//读取人体红外的值

void Infrared_Init(void);
void  infrared_test(void);
#endif
/*=================infrared.c=================*/
#include "infrared.h"
#include "led.h"
#include "usart.h"



//红外引脚初始化
void Infrared_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量   
    RCC_APB2PeriphClockCmd(GPIOB_RCC,ENABLE);	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_InitStructure.GPIO_Pin  = PIN ;
	GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
	GPIO_Init(PORT ,&GPIO_InitStructure);
}


//红外人体感应功能测试
//感应到人体输出高电平,离开感应区域输出低电平
//下面的判断语句中根据自己的功能来进行修改
void  infrared_test(void)
{
	if( Read_STATE() == RESET)
	{
		printf("NO People\n");
		close_led();	
	}
	else
	{
		printf("People\n");
		open_led();
	}
}
/*===================main.c==================*/
#include "stm32f10x.h"
#include "usart.h"
#include "stdio.h"
#include "led.h"
#include "infrared.h"


void Delay(unsigned int t)
{
	unsigned int i,j;
	for(i = 0;i < t;i++)
	{
		for(j = 0;j< 12000;j++);
	}
}

int main(void)
{
	Usart_Init();
	Led_Init();
	Infrared_Init();
	USART_SendStr(USART1,"STM32 Infrared Test\n");
	while(1)
	{
		infrared_test();	
	}

2.合泰HT32驱动HC-SR501

/*=================infrared.h================*/
#ifndef _INFRARED_H_
#define _INFRARED_H_

#include "ht32f5xxxx_ckcu.h"
#include "ht32f5xxxx_gpio.h"
#include "ht32f5xxxx_01.h"

//端口号定义
#define HT_GPIO_PORT_infrared HT_GPIOA

//引脚定义
#define infrared_GPIO_PIN  GPIO_PIN_15
#define Read_STATE() GPIO_ReadInBit(HT_GPIO_PORT_infrared,infrared_GPIO_PIN)   
void Infrared_Init(void);
void  infrared_test(void);
#endif
/*================infrared.c=============*/
#include "infrared.h"
#include "led.h"
#include "uart.h"

void Infrared_Init(void)
{
	CKCU_PeripClockConfig_TypeDef CKCUClock_infrared= {{0}};
	CKCUClock_infrared.Bit.PA = 1;  //开启GPIOB时钟
	CKCU_PeripClockConfig(CKCUClock_infrared, ENABLE);
	GPIO_DirectionConfig(HT_GPIO_PORT_infrared,infrared_GPIO_PIN,GPIO_DIR_IN);
	GPIO_InputConfig(HT_GPIO_PORT_infrared, infrared_GPIO_PIN, ENABLE);
  	GPIO_PullResistorConfig(HT_GPIO_PORT_infrared, infrared_GPIO_PIN, GPIO_PR_DOWN);
}


//红外人体感应功能测试
//感应到人体输出高电平,离开感应区域输出低电平
void  infrared_test(void)
{
	if( Read_STATE() == RESET)
	{
		printf("NO  People\n");
		LED1_OFF();	
	}
	else
	{
		printf("People\n");
		LED1_ON();
	}
}
/*==================main.c==================*/
#include "ht32.h"
#include "ht32_board.h"
#include "led.h"
#include "delay.h"
#include "uart.h"
#include "infrared.h"

/**********************TH32 红外人体感应**********************
Author:小殷

Date:2022-5-4
******************************************************/
int main()
{
	Led_Init();
	USARTx_Init();
	Infrared_Init();
	printf("HT32 INFRARED TEST\n");
	while(1)
	{
		infrared_test();
		delay_ms(1000);
	}
}

总的来说,HC-SR501这款人体感应测试还挺好用的,上述两个Demo 的用法基本一致,只是相应的函数名称和初始化上有点区别。
在这里插入图片描述

  • 35
    点赞
  • 470
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 19
    评论
HC-SR501是基于红外线技术的自动控制模块,采用德国原装进口LHI778探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。 电气参数 产品型号HC--SR501人体感应模块 工作电压范围直流电压4.5-20V 静态电流<50uA 电平输出高3.3 V /低0V 触发方式L不可重复触发/H重复触发(默认重复触发) 延时时间5-200S(可调)可制作范围零点几秒-几十分钟 封锁时间2.5S(默认)可制作范围零点几秒-几十秒 电路板外形尺寸32mm*24mm 感应角度<100度锥角 工作温度-15-+70度 感应透镜尺寸直径:23mm(默认) 功能特点: 1、全自动感应:人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。 2、光敏控制(可选择,出厂时未设)可设置光敏控制,白天或光线强时不感应。 3、温度补偿(可选择,出厂时未设):在夏天当环境温度升高至30~32℃,探测距离稍变短,温度补偿可作一定的性能补偿。 4、两种触发方式:(可跳线选择) a、不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变成低电平; b、可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。 5、具有感应封锁时间(默认设置:2.5S封锁时间):感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒—几十秒钟)。 6、工作电压范围宽:默认工作电压DC4.5V-20V。 7、微功耗:静态电流<50微安,特别适合干电池供电的自动控制产品。 8、输出高电平信号:可方便与各类电路实现对接。 实物购买链接:https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-981744861.13.F4vK7o&id=10566272393
HC-SR501人体红外感应模块是一种常用的电子传感器模块,广泛应用于各种场景中。 首先,HC-SR501人体红外感应模块可以应用于安防系统中。比如在家庭安防系统中,可以将HC-SR501人体红外感应模块安装在入户门、窗户等位置,当有人进入感应范围时,模块会感应人体红外信号,并通过与其连接的报警器或相机发出警报或拍摄照片,从而起到报警和监控的作用。 其次,HC-SR501人体红外感应模块也可以应用于智能照明系统中。通过将模块安装在房间内或门口,当检测到有人进入时,模块会感应人体的存在并通过与其连接的控制器或继电器控制灯光的开关。这样,不仅可以提供人体舒适的照明环境,还可以节约能源,增加照明系统的智能化程度。 此外,HC-SR501人体红外感应模块还可应用于自动化控制系统中。比如在公共场所的自动门或卫生间的自动水龙头中,通过将模块与门禁或水流控制器连接,当有人靠近时,模块会感应人体的存在并触发开门或自动出水的操作,提高了使用的便利性和卫生性。 另外,HC-SR501人体红外感应模块还可应用于智能家居系统中。通过将模块安装在房间内,当检测到有人进入时,模块可以与智能家居系统的其他设备连接,如智能音响、智能遥控器等,实现自动播放音乐、调节温度等功能,提升居家生活的智能化程度和舒适度。 综上所述,HC-SR501人体红外感应模块具有极其广泛的应用场景,包括安防系统、智能照明系统、自动化控制系统和智能家居系统等。它通过感应人体红外信号来触发相关操作,为各个领域的智能化应用提供了便利和便捷性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小殷学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值