【单片机】人体感应模块

基于BISS0001设计人体红外感应开关评估板硬件(原理图+PCB)工程文件,AD09设计的工程文件 基于BISS0001设计人体红外感应开关评估板硬件(原理图+PCB)工程文件,AD09设计的工程文件,仅供学习及设计参考。 阅读详情

前言

大家好,我是林白柏;

希望你看完之后,能有所收获,不足请指正!

PS:本文提到的模块都使用正点原子的stm32开发板战舰驱动,模块用的某宝现成的模块。


模块介绍(可跳过)

模块由菲涅尔透镜、热释电红外探头、放大电路组成。

菲涅尔透镜用于提高探头灵敏度。

透镜在探头前方产生交替变化的“盲区”和“高灵敏区”,这样当人体走过时,人体发射的红外线就会不断交替经过“盲区”和“高灵敏区”,便于探头产生脉冲信号。

热释电红外探头检测到人体发出的红外线时,发出一个脉冲信号(脉冲宽度固定);有人时,人体产生的红外线会交替出现在“盲区”和“高灵敏区”,就一直有脉冲信号输出(实测人静止不动时好像不会输出)。

在通过放大器是BISS0001将脉冲信号转化为更直观的高低电平输出,有人输出高,无人输出低。并在放大电路上设置电位器,调节输出信号的灵敏度(比如探头产生n个脉冲,模块才输出高电平),调节高电平持续时间。

image-20220419210118203

模块使用

模块接口只有三个脚,地、电源、数据线;分别计为GND、VCC、OUT

探头检测到有人移动时,OUT=1;没人移动时,OUT=0;

因此我们可以把它当成一个独立按键,按下时(有人移动)为1,松开时(没人移动)为0。

image-20220419215448737

我们将IO口初始化为外部中断、跳变沿触发,当产生中断时,在中断服务函数中读取IO状态,IO=1则为上升沿——有人移动,IO=0则为下降沿——无人移动。(见头文件human_body_induction.c部分)

将事件返回给事件回调函数。(见头文件human_body_induction.h部分)

代码:h文件

头文件*(为了一个“按键”封装两个文件确实点过于仪式感了哈哈哈哈)*中定义了两种事件,用于返回给事件回调函数。

typedef enum {
    HBI_NOBODY,//无人移动
    HBI_PEOPLE_MOVING,//有人移动
}hbi_evt_t;

typedef void ( * hbi_evt_handle_t )( hbi_evt_t * event );//事件回调函数类型

void hbi_init( hbi_evt_handle_t event_handle);//初始化函数声明

代码:c文件

源文件中分为两部分:初始化,中断服务函数。

初始函数,初始化io、中断,并保存回调函数指针。

static hbi_evt_handle_t m_event_handle;	//保存用户传进来的回调函数指针
void hbi_init( hbi_evt_handle_t event_handle) {
 	GPIO_InitTypeDef GPIO_InitStructure;
 	EXTI_InitTypeDef EXTI_InitStructure;
 	NVIC_InitTypeDef NVIC_InitStructure;
    
    //[ 与硬件相关 ]
	//使能外设时钟
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);  //使能PORTG口时钟 
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);	   //使能复用功能时钟
    
	//将IO初始化为下拉输入(上拉下拉好像都行)
 	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;				
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; 		  
 	GPIO_Init(GPIOG, &GPIO_InitStructure);
    
    //配置GPIOG.8为中断线EXTI_Line8的中断源(这部分需要去了解stm32中断相关知识)
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOG,GPIO_PinSource8);
	//EXTI_Line8初始化为跳变沿触发
    EXTI_InitStructure.EXTI_Line = EXTI_Line8;    
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);     //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器
    
	//初始化中断分组
  	NVIC_InitStructure.NVIC_IRQChannel = HBI_EXTI_IRQ_CHANNEL;		
  	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;	//抢占优先级2, 
  	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;			//子优先级3
  	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;					//使能外部中断通道
  	NVIC_Init(&NVIC_InitStructure); 

    //[ 与硬件无关 ]
    //保存用户传进来的回调函数指针,中断服务函数中使用
    m_event_handle = event_handle;
}

中断服务函数中,根据中断类型返回相应的事件给用户

void EXTI9_5_IRQHandler(void)//stm32中,中断线5-9公用一个中断服务函数
{
	if(EXTI_GetITStatus( EXTI_Line8 ) != RESET)
	{
		hbi_evt_t evt = HBI_NOBODY;
		EXTI_ClearFlag( EXTI_Line8 );    //清除中断标志位
		EXTI_ClearITPendingBit( EXTI_Line8 ); //清除EXTI线路挂起位
        

        if( GPIO_ReadInputDataBit(GPIOG,GPIO_Pin_8) ) {//上升沿
            evt = HBI_PEOPLE_MOVING;
        }
        else {//下降沿
            evt = HBI_NOBODY;
        }
        m_event_handle( &evt );
	}
}

代码使用方法

初始化时,应用程序注册一个回调函数,后续就只需要在回调函数中判断事件并执行相应操作即可

//以下使用演示
static void bi_evt_cb( hbi_evt_t * event ) {//定义事件回调函数
    switch ( *event ) {
        case HBI_NOBODY        : _LOG_DEBUG("[hbi] nobody\n\n"); break;
        case HBI_PEOPLE_MOVING : _LOG_DEBUG("[hbi] people moving\n\n");; break;        
    }
}

int main(void){
    hbi_init( hbi_evt_cb );//将回调函数指针传给初始化函数
    while(1);
}

补充介绍(可/不可重复触发)

模块还有一个重复触发和不重复触发的概念,由BISS0001实现(具体实现方式查看BISS0001规格书),两者的区别如下图红色方框

image-20220419220844072

不可重复触发,探头产生脉冲时,模块out脚输出高电平,时长Tx;在Tx结束前,探头产生的脉冲都无效。

可重复触发,探头产生脉冲时,模块out脚输出高电平,时长Tx;在Tx结束前,探头产生新的脉冲,则从新的脉冲处开始重新计时Tx。只要Tx结束前一直有脉冲产生,则模块高电平会一直持续下去。

可通过模块上跳线帽进行设置,L(不可重复触发)和H(可重复触发)

image-20220419224252959

代码获取

共用代码:https://gitee.com/sumoting1629/mcu-practice/tree/master/common

驱动代码:https://gitee.com/sumoting1629/mcu-practice/tree/master/component

【单片机基础篇】 人体红外感应传感器模块 概述 红外热释电传感器是一款基于热释电效应的人体热释运动传感器,能检测到人体或动物身上发出的红外线,配合菲涅尔透镜能使传感器探测范围更远更广。可在控制器上编程应用,通过3P传感器连接线插接到专用传感器扩展板上使用,可以轻松实现人体或动物检测的相关的互动效果。 基于红外线技术的自动控制产品,当有人进入开关感应范围时,专用传感器探测到人体红外光谱的变化,自动输出高电平,人不离开感应范围,将持续输出高电平;人离开后,开关延时自动关闭负载。 工作原理 人体都有恒定的体温... 阅读详情

相关推荐

别再问客服了!51单片机驱动HC-SR501人体感应模块,从接线到代码的保姆级避坑指南

本文详细介绍了51单片机驱动HC-SR501人体感应模块的全流程,包括硬件连接、跳线帽设置、灵敏度调节及核心代码实现。通过优化代码和抗干扰处理,解决了静止人体检测不灵敏和误触发等常见问题,并提供了多模块协同检测和低功耗优化等进阶应用方案。

weixin_42561143的博客 398

无线红外探测器02-硬件设计

一、红外探测器的工作原理 我们今天给大家介绍的是一款被动红外传感器。 在室温条件下,任何物品均有辐射。不同温度的物体释放的红外的能量波长不同,温度越高的物体,红外辐射越强。 人体有恒定的体温,与周围环境温度存在差别。当人体移动时这种差别的变化通过菲涅尔透镜被热释电传感器检测到,经过电路处理,输出报警信号。 以下是红外传感器的原理图解: 热释电红外传感器的实物图: 菲涅尔透镜实物图: 二、红外探测器硬件原理图设计: 原理图设计共包括4部分,分别是电源设计、被动红外探测设计、

无际单片机编程 3968

「雕爷学编程」Arduino动手做(17)---HC-SR312人体感应模块

本文介绍了HC-SR312微型热释电人体感应传感器模块的工作原理和应用。该模块基于热释电效应,通过检测人体红外辐射实现自动感应控制。文章详细阐述了热释电效应的原理、传感器结构(包含敏感元件、场效应管和滤光窗等)、菲涅尔透镜的作用,以及模块的技术参数(工作电压2.7-12V、探测距离3-5米等)。模块具有体积小、功耗低、灵敏度高等特点,输出开关量信号,可连接单片机IO口进行状态检测。典型应用包括感应灯具、安防设备和工业自动化控制等。实验部分展示了模块的电路连接方法和实际测试效果,为Arduino传感器开发提供

雕爷学编程 5093

红外热释电处理芯片BISS0001应用资料

BISS0001是一款高性能的传感信号处理集成电路。静态电流极小,配以热释电红外传感器和少量外围元器件即可构成被动式的热释电红外传感器。广泛用于安防、自控等领域能。 图1 BISS0001引脚图 特点:CMOS工艺数模混合具有独立的高输入阻抗运算放大器内部的双向鉴幅器可有效抑制干扰内设延迟时间定时器和封锁时间定时器采用16脚DIP封装   图2 BISS0001管脚功能说明 工作原理...

weixin_43771683的博客 2万+

单片机应用案例:ESP8266 + 人体感应模块 + 串口输出

人体感应模块是一种常见的传感器之一,它可以通过感知人体的红外热释电信号来判断是否有人经过。本篇文章介绍了如何使用ESP8266单片机与人体感应模块相结合,并通过串口输出来实现人体活动监测的功能。该代码通过analogRead()函数读取A0引脚上的模拟信号,并将读取到的数值与500进行比较。本篇文章介绍了如何将ESP8266和人体感应模块相结合,通过串口输出来实现人体活动监测的功能。在编写代码之前,我们需要引入ESP8266的库文件和SoftSerial库文件,因为我们将使用软串口与计算机进行通信。

qq_37934722的博客 1248

HC-SR501 人体红外感应模块 单片机

https://blog.youkuaiyun.com/zy19981110/article/details/89947118?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161616067916780357245177%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161616067916780357245177&biz_id=0&am

q742971636的博客 5317

HC-SR501人体感应模块代码(STM32单片机驱动)

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

PrairieOne的博客 1万+

基于BISS0001人体红外热释电感应模块(原理图+PCB)

基于BISS0001人体红外热释电感应模块(原理图+PCB) 功能: 1.全天24小时 (光敏电阻失效)或只有夜晚工作 2.调节电位器可以改变延时时间 3.输出为低电平有效,可以接入单片机或继电器驱动模块 4.当检测到有人时,指示LED灯会点亮延时一段时间然后熄灭。 工作电压:3.3-12V

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

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

lfmnlxx79691557的博客 5766

BISS0001人体红外感应开关模块AD设计硬件原理图+PCB+封装库文件.zip

BISS0001人体红外感应开关模块AD设计硬件原理图+PCB+封装库文件,采用2层板设计,板子大小为52x38mm,双面布局布线,主要器件为BISS0001,NCE3010,78L05等.Altium Designer 设计的工程文件,包括完整的原理图PCB文件,可以用Altium(AD)软件打开或修改,可作为你产品设计的参考。

BISS0001人体红外感应开关模块ALTIUM设计硬件原理图PCB+AD集成封装库.zip

BISS0001人体红外感应开关模块ALTIUM设计硬件原理图PCB+AD集成封装库,2层板设计,Altium Designer 设计的工程文件,包括完整的原理图及PCB文件,可以用Altium(AD)软件打开或修改,可作为你产品设计的参考。集成封器件型号列表: Library Component Count : 13 Name Description ---------------------------------------------------------------------------------------------------- 78L05 3-Terminal Positive Voltage Regulator BISS0001 CON2 Connector CON4 Connector EC NCE3010 RES SW-SPDT 光敏电阻 普通电容 Capacitor 普通电位器 Potentiometer 普通二极管 热释红外

自动感应垃圾桶c语言,单片机智能垃圾桶的实现方案程序(人体感应+金属探测模块实现)...

#include "main.h"#include "HX711.h"#include "uart.h"#include "LCD1602.h"#include "temp.h"#define uchar unsigned char#define uint unsigned inttypedef unsigned char u8;typedef unsigned short int u16...

weixin_39792747的博客 1239

基于BISS0001人体红外感应开关模块(原理图、PCB源文件)-电路方案

用于人体感应的模块,热释红外产生的信号放大后输出开关信号,方便各种扩展 主要功能: 1、输出开关信号,方便单片机识别 2、可以调节感应距离 3、可以调节开关量信号输出时间 4、白天可关闭输出 5、可直接驱动3WLED灯,可独立使用 基于BISS0001人体红外感应开关模块参考资料:https://www.docin.com/p-638610279.html 附件内容截图: PCB源文件截图:

【亲测免费】 基于51单片机的人体感应灯设计

基于51单片机的人体感应灯设计 【下载地址】基于51单片机的人体感应灯设计 本项目是一个基于51单片机的人体红外感应灯设计。通过使用人体红外感应模块HC-SR501,结合声音感应模块和光感应模块,实现了人体感应、声控及光控的多功能灯控系统 ...

gitblog_09724的博客 549

【GPIO模拟串口通信协议】

由于这段时间搞了个安卓相关的项目,需要和安卓进行Uart通信。但是选用的芯片并没有自带uart功能,所以在充分评估项目后,考虑波特率不高的情况下,决定使用GPIO去模拟串口通信协议了。

学海无涯苦作舟 2638

VS2022下C# WPF项目一键打包成独立exe的完整指南

本文提供了一份在Visual Studio 2022中将C# WPF项目一键打包成独立可执行exe文件的完整指南。通过配置项目属性、启用单文件发布和自包含模式,开发者无需依赖第三方工具,即可生成可在未安装.NET运行时的电脑上直接运行的独立程序,极大简化了桌面应用的分发流程。

weixin_28831399的博客 670

【亲测免费】 智能生活新体验:基于51单片机的人体感应灯设计

智能生活新体验:基于51单片机的人体感应灯设计 【下载地址】基于51单片机的人体感应灯设计 本项目是一个基于51单片机的人体红外感应灯设计。通过使用人体红外感应模块HC-SR501,结合声音感应模块和光感应模块,实现了人体感应、声控及光控的多功能灯控系统 ...

gitblog_09784的博客 978

局部路径规划算法 - B样条曲线(B-spline Curves)

本文详解了B样条以及代码实现

BigDavid123的博客 6506

基于单片机的人体感应智能台灯系统

💗博主介绍:✌全网粉丝10W+,优快云特邀作者、博客专家、优快云新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗👇🏻 精彩专栏 推荐订阅👇🏻单片机设计精品实战案例✅。

QQ1928499906的博客 1521

Crossbar RRAM技术解析:从1TnR架构到存储革命

非易失性存储器(NVM)是数据存储的核心技术,其原理基于物理状态的稳定改变以实现数据持久化。阻变存储器(RRAM)作为一种新兴NVM,利用导电细丝在介质层中的形成与断裂实现数据存储,具有高速、低功耗和结构简单的优势。在工程实践中,RRAM面临潜行路径电流等挑战,而Crossbar提出的1TnR架构通过引入共享晶体管有效解决了这一问题,在保证性能的同时提升了集成密度。该技术与CMOS工艺兼容,支持后端集成与多层堆叠,为高密度存储和嵌入式应用提供了新的解决方案。结合当前行业对高能效、高密度存储的需求,RRAM在

weixin_42523104的博客 319

深水区探秘:小红书App x-s参数逆向与高并发爬虫实战(2026版)

在移动互联网的碎片化时代,小红书凭借其“社区+电商”的独特模式,积累了超过3亿月活用户。其内容生态覆盖了从美妆、穿搭到旅行、数码等几乎所有垂直领域。对于数据分析师、市场研究员以及AI算法工程师而言,小红书平台蕴含的价值是巨大的——无论是热门趋势洞察、KOL画像分析,还是多模态图文数据的采集。然而,想要高效、稳定地获取小红书App的公开数据,却并非易事。与Web端相比,小红书App的防护体系堪称“铜墙铁壁”。其核心的反爬机制建立在动态混淆的加密参数之上,尤其是请求头中的X-SX-T以及X-S-Common。

2201_76125261的博客 263

基于STM32F103C8T6的人体红外感应+语音播报智能垃圾桶

采用的单片机型号为。较为简单的一个小项目,用到了单片机的串口通信、PWM输出和GPIO口检测功能。适用于新手入门,简单的逻辑控制。

weixin_50528169的博客 3423

Vue3 - 完美解决高德地图定位失败 Get ipLocation failed.Geolocation permission denied.(获取ipLocation失败。地理定位权限被拒绝。)

Get ipLocation failed.Geolocation permission denied.,vue3引入高德地图当前定位失败 ,vue3中使用高德地图定位报错,高德地图API用户定位失败,高德地图H5 定位失败报错排查和解决方案,微信公众号H5网页高德地图定位报错,谷歌浏览器-高德地图定位失败geolocation,getCurrentPosition 返回的 message报错,如何解决此问题,uniapp h5高德地图,微信、QQ等内置浏览器定位失败,高德地图实现实时用户位置定位,引入高德

🏆 前端领域优质创作者 4169

感应式调光电路的设计与实现_基于STC89C51单片机

前述: QQ:3177227373 这个是一个自己做的一个毕设的作品。 主要内容 本设计要实现一个以单片机为核心的人体感应灯光调控系统电路设计。该系统通过人体感应传感器来感知室内是否有人存在,通过光敏电阻感应室内的光线强度;采集来的信息经系统处理、分析后作出判断,决定是否开启灯光;根据室内光线强度的不同可实现对室内的光照强度的调节。同时系统可通过按键模块进行灯的手动操作,并且系统还具显示当前时间等功能。 感应式调灯光系统选用单片机为控制核心器件。系统由硬件和软件两部分组成。 系统硬件结构设计 智能人体感应灯

榆林壮的博客 3158

【即插即用模块】注意力篇 | TGRS 2025 | SCPP:独家复现!三特征多尺度注意力融合,涨点必备!

摘要:SCPP(Scale-aware Pyramid Pooling)是一种创新的多尺度特征融合模块,专为U型网络瓶颈设计。它通过局部特征提取(1×1卷积)、多尺度膨胀卷积(1/3/5膨胀率分支)和全局特征聚合(全局平均池化)三重结构,结合SE通道注意力机制和自适应加权融合,显著提升特征表达能力。实验表明,SCPP能有效解决边缘模糊和错误检测问题,在遥感图像分割等任务中表现优异。该模块支持即插即用,适用于各类需要多尺度特征增强的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 944

CloudCompare二次开发(1)——获取指定高程的所有点

使用CloudCompare插件实现获取点云数据中指定高程的所有点。

点云侠的博客 4732
上一篇: 【单片机】温湿度传感器 DHT11
下一篇: 【单片机】超声波测距模块
该起床了1111
博客等级 码龄9年 67粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值