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

这篇具有很好参考价值的文章主要介绍了【HC-SR501人体红外传感器】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HC-SR501人体红外传感器

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

HC-SR501介绍

hcsr501,合泰ht32,SMT32,人体红外感应,stm32,ht32

hcsr501,合泰ht32,SMT32,人体红外感应,stm32,ht32

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

引脚接线

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

注意

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

hcsr501,合泰ht32,SMT32,人体红外感应,stm32,ht32

进入正题,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 的用法基本一致,只是相应的函数名称和初始化上有点区别。
hcsr501,合泰ht32,SMT32,人体红外感应,stm32,ht32文章来源地址https://www.toymoban.com/news/detail-780359.html

到了这里,关于【HC-SR501人体红外传感器】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示

    单片机型号 测试条件 模块名称 代码功能 STC89C52RC 晶振11.0592M HC-SR501模块 STC89C52RC采集HC-SR501模块参数 串口与OLED0.96双显示 STM32F103C8T6 晶振8M/系统时钟72M HC-SR501模块 STM32F103C8T6采集HC-SR501模块参数 串口与OLED0.96双显示 其他资料目录 直戳跳转 HC-SR501模块 引脚说明 VCC 正极 3.3-5V供电

    2024年01月19日
    浏览(53)
  • 红外人体感应传感器SR602模块使用说明

    ​一.HC-SR602模块         红外人体感应传感器HC-SR602是基于红外线技术的自动控制模块,专用于感应周围人体的存在。该模块相较于HC-SR501,灵敏度较高,抗干扰能力大,且简单易用。 二.HC-SR602模块主要参数 工作电压:3.3V-15V; 静态电流:20uA; 感应距离:最大5M;建议0-

    2024年02月06日
    浏览(44)
  • HC-SR501人体感应模块介绍

    HC-SR501人体感应模块简介       HC-SR501是基于红外线技术的自动控制模块,采用德国原装进口 LHI778 探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。 HC-SR501人体感应模块实物 HC-SR501人体感应模块电气

    2024年02月01日
    浏览(59)
  • 热释电人体探测模块HC-SR501

          热释电红外传感器是一种能检测人或动物发射的红外线而输出电信号的传感器。早在1938年,有人提出过利用热释电效应探测红外辐射,但并未受到重视,直到六十年代,随着激光、红外技术的迅速发展,才又推动了对热释电效应的研究和对热释电晶体的应用。它正在被

    2024年02月08日
    浏览(38)
  • STM32传感器外设集--超声波模块(HC_SR04)

    目录 1.器件介绍 1.1.参数 1.2.测量范围 1.3.计算公式 1.4.优点 2.1.原理 3.代码编写 3.1.接线图 3.2.代码 3.2.1.HC_SR04.h 3.2.2.HC_SR04.c 3.2.3.timer.h 3.2.4.timer.c  3.2.5.main.c 5根引脚 工作电压5v 工作电流15mA 工作频率40Hz 最近距离 2cm 最远距离 4m 测量角度 15度 测试距离=(高电平时间*声速(340

    2024年02月14日
    浏览(42)
  • SR501人体红外模块

    人体红外模块 是一种能够检测人或动物发射的红外线而输出电信号的传感器。广泛应用于各种自动化控制装置中。比如常见的楼道自动开关、防盗报警等。 引脚 : VCC,OUT, GND 。 功能 :一种常见的人体红外传感器模块,用于检测人体的活动。 红外感应原理 :SR501 模块内部

    2024年02月16日
    浏览(43)
  • 基于STM32的超声波HC-SR04和红外测距模块测量距离的实验对比(HAL库)

            前言: 本文主要是为了 日常普通场合 下测距做的 对比实验 ,本实验主要包含 2种模块 : 超声波测距模块 (HC-SR04)和 红外测距模块 (SHARP GP2Y0A21YK0F)。两种模块不管是测距原理和编程实验方式都是不相同的,其测距效果也存在很大差异。感兴趣的读者朋友,

    2023年04月27日
    浏览(69)
  • 【IMX6ULL驱动开发学习】09.Linux驱动之GPIO中断(附SR501人体红外感应驱动代码)

    Linux驱动的GPIO中断编程主要有以下几个步骤: 1、 通过GPIO号获取 软件中断号 (中断编程不需要设置GPIO输入输出,当然申请GPIO,设置输入也没问题) 参数 含义 gpio GPIO引脚编号 2、 注册 中断处理函数 ,设置中断 触发方式 (上升沿、下降沿等) 参数 含义 irq 软件中断号(通过

    2024年02月11日
    浏览(55)
  • 红外传感器

    目录  一、什么是红外传感器 二、LM393比较器(红外传感器最重要的一环) ​编辑 三、红外传感器的用途 红外传感器是一种能够接收和感应红外线信号的电子器件,主要通过变化光强来检测目标物体的存在。由于黑色具有较强的吸光能力,所以红外传感器接收管接收到的红

    2024年01月21日
    浏览(39)
  • 物联网AI MicroPython传感器学习 之 MLX90614红外测温传感器

    学物联网,来万物简单IoT物联网!! MLX90614是一款由迈来芯公司提供的低成本红外温度计,用于非接触式温度测量,红外测温是根据被测物体的红外辐射能量来确定物体的温度,不与被测物体接触,具有不影响被测物体温度分布场,温度分辨率高、响应速度快、测温范围广、不

    2024年03月20日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包