0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CW32模块使用 人体红外传感器

CW32生态社区 来源:CW32生态社区 作者:CW32生态社区 2024-12-05 15:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

人体红外感应模块使用的是热释电红外传感器,它是利用温度变化的特征来探测红外线的辐射,利用双灵敏元互补的方法抑制温度变化产生的干扰,提高了传感器的工作稳定性。产品应用广泛,例如:保险装置、防盗报警器、感应门、自动灯具、智能玩具等。

一、模块来源

模块实物展示:

wKgZPGdRUaGAEnelAAAXTgzRIYw060.jpg


资料下载链接:
https://pan.baidu.com/s/1Bu0DL-1quXvY1Ede4c9ELw
资料提取码:8888

二、规格参数

工作电压:4.5~20V

工作电流:< 50uA

电平输出:高3.3V/低0V

感应角度:< 100度锥角

输出方式: GPIO

管脚数量:3 Pin

以上信息见厂家资料文件

三、移植过程

我们的目标是将例程移植至CW32F030C8T6开发板上【能够测量人体】。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。

3.1查看资料

全自动感应:人进入其感应范围则输出高电平, 人离开感应范围则自动延时关闭高电平,输出低电平;

wKgZO2dRUaKAY6OVAABqyIzMuPM226.jpg

两种触发方式:(可跳线选择)

wKgZPGdRUaKAHqGKAACGWv_RIFU208.jpg

不可重复触发方式: 即感应输出高电平后,延时时间段一结束,输出将自动从高电平变成低电平;

可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平。

HC-SR501人体感应模块使用说明

感应模块通电后有一分钟左右的初始化时间,在此期间模块会间隔地输出0-3 次,一分钟后进入待机状态。

避免灯光等干扰源近距离直射模块表面的透镜,以免引进干扰信号产生误动作;尽量避免流动的风,风也会对感应器造成干扰。

感应模块采用双元探头,探头的窗口为长方形,双元(A 元B 元)位于较长方向的两端,当人体从左到右或从右到左走过时,红外光谱到达双元的时间、距离有差值,差值越大,感应越灵敏,当人体从正面走向探头或从上到下或从下到上方向走过时,双元检测不到红外光谱距离的变化,无差值,因此感应不灵敏或不工作;所以安装感应器时应使探头双元的方向与人体活动最多的方向尽量相平行,保证人体经过时先后被探头双元所感应。为了增加感应角度范围,本模块采用圆形透镜,也使得探头四面都感应,但左右两侧仍然比上下两个方向感应范围大。

3.2引脚选择

wKgZO2dRUaKAadx6AACG0rq8igI331.jpg

wKgZPGdRUaOAH67pAAEx5PaFR0o909.jpg

模块接线图

3.3移植至工程

移植步骤中的导入.c和.h文件与【CW32模块使用】DHT11温湿度传感器相同,只是将.c和.h文件更改为bsp_HumanIR.c与bsp_HumanIR.h。这里不再过多讲述,移植完成后面修改相关代码。

在文件bsp_HumanIR.c中,编写如下代码。

/* * Change Logs: * Date Author Notes * 2024-06-20 LCKFB-LP first version */ #include "bsp_HumanIR.h" #include "board.h" /****************************************************************** * 函 数 名 称:HumanIR_Init * 函 数 说 明:人体红外模块初始化 * 函 数 形 参:无 * 函 数 返 回:无 * 作 者:LC * 备 注:无 ******************************************************************/ void HumanIR_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化结构体 RCC_HUMANIR_ENABLE(); // 使能GPIO时钟 GPIO_InitStruct.Pins = GPIO_HUMANIR; // GPIO引脚 GPIO_InitStruct.Mode = GPIO_MODE_INPUT_PULLUP; // 上拉输入 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; // 输出速度高 GPIO_Init(PORT_HUMANIR, &GPIO_InitStruct); // 初始化 } /****************************************************************** * 函 数 名 称:Get_HumanIR * 函 数 说 明:获取人体红外输出引脚的电平状态 * 函 数 形 参:无 * 函 数 返 回:0=感应到人体红外 1=未感应到人体红外 * 作 者:LC * 备 注:无 ******************************************************************/ char Get_HumanIR(void) { return ( GPIO_ReadPin(PORT_HUMANIR, GPIO_HUMANIR)?GPIO_Pin_SET:GPIO_Pin_RESET); }

在文件bsp_HumanIR.h中,编写如下代码。

/* * Change Logs: * Date Author Notes * 2024-06-20 LCKFB-LP first version */ #ifndef _BSP_HUMANIR_H_ #define _BSP_HUMANIR_H_ #include "board.h" #define RCC_HUMANIR_ENABLE() __RCC_GPIOA_CLK_ENABLE() #define PORT_HUMANIR CW_GPIOA #define GPIO_HUMANIR GPIO_PIN_1 void HumanIR_Init(void); char Get_HumanIR(void); #endif

四、移植验证

在自己工程中的main主函数中,编写如下。

/* * Change Logs: * Date Author Notes * 2024-06-20 LCKFB-LP first version */ #include "board.h" #include "stdio.h" #include "bsp_uart.h" #include "bsp_HumanIR.h" int32_t main(void) { board_init(); // 开发板初始化 uart1_init(115200); // 串口1波特率115200 HumanIR_Init(); printf("Start.....rn"); while(1) { printf("%drn", Get_HumanIR() ); delay_ms(500); } }

移植现象:检测到人时输出1,未检测到人时输出0;

wKgZO2dRUaOAercDAADEMjstbDs762.jpg

模块移植成功案例代码:

链接:https://pan.baidu.com/s/1G8KjRf8hsS41wngW8cC_8w?pwd=LCKF

提取码:LCKF

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 红外传感器
    +关注

    关注

    9

    文章

    560

    浏览量

    49131
  • CW32
    +关注

    关注

    1

    文章

    281

    浏览量

    1680
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32单片机在智能马桶的应用

    1.温度感应与控制 智能马桶内设有温度传感器,通过CW32单片机的处理,可以实时感知到用户所需的座圈温度并根据用户的设定进行调节。当温度过高或过低时,单片机将发出信号,通过控制模块对座圈的加热或制冷
    发表于 12-04 08:01

    CW32 MCU温度监测应用

    监测环境温度,并通过串口将数据发送到PC端进行显示。 硬件连接 CW32 MCU LM35温度传感器 USB转串口模块 代码实现 #include \"cw32f030.h\&qu
    发表于 12-03 08:03

    基于芯源CW32 MCU智能家居照明控制系统设计与实现

    。 光照传感器:用于检测环境亮度,自动调节灯光亮度。 Wi-Fi模块(如ESP8266):实现与手机应用或智能音箱的无线通信,远程控制照明系统。 继电器模块:控制灯光的开关。 按键/触摸面板:用户在本地可以
    发表于 12-03 06:06

    CW32 MCU用什么仿真开发?

    理论上各主流IDE枚举的、支持ARM Cortex内核的所有硬件仿真,比如:J-LINK,ULINK,DAP,ST-Link等,都可以仿真、下载CW32 MCU的应用代码。如果想实现量产或者离线下载应用代码,则必须配套支持CW32
    发表于 11-12 06:01

    ‌STHS34PF80红外传感器技术解析与应用指南

    STMicroelectronics STHS34PF80高灵敏度红外传感器是一款非制冷、出厂校准的红外传感器,工作波长范围为5µm至20µm。STHS34PF80传感器设计用于精确检测其视场内物体的绝对温度。该信息由ASIC进
    的头像 发表于 10-29 14:47 301次阅读
    ‌STHS34PF80<b class='flag-5'>红外传感器</b>技术解析与应用指南

    #红外传感器卡脖子在哪?工程师如何破局?都在卷什么?

    红外传感器
    iczoom
    发布于 :2025年09月03日 17:33:37

    #红外传感器葵花宝典:热模型“收敛”,测温才能准

    红外传感器
    iczoom
    发布于 :2025年09月02日 17:15:26

    雷达传感器红外传感器的区别

    雷达传感器红外传感器都可以进行测距,能够辅助设备进行“感知世界”的行为,虽然说功能看起来是一样的,但是实现的方式却是大有不同,红外测距是通过发射红外线,雷达测距是通过发射电磁波,从本
    的头像 发表于 08-28 17:48 740次阅读

    热释电人体红外传感器前方有物体震动时,会产生信号输出,有没有人知道这是什么原因?

    最近在网上买了几个热释电人体红外传感器,测试发现在传感器前方有物体震动时,会产生信号输出。有没有人知道这是什么原因,怎么对人体和物体震动进行信号区分?
    发表于 08-11 09:07

    华盛昌高精度红外校正源在红外传感器领域的应用

    红外传感器技术正迈向更高精度与可靠性的新纪元,其中高精度红外校正源扮演着关键角色。作为红外焦平面阵列(IRFPA)性能保障的核心,其应用已成为突破现有探测极限、实现精准测量的革命性进展。以下将探讨华
    的头像 发表于 07-31 10:23 664次阅读

    红外传感器技术分类:热释电、热电堆与微测辐射热计详解

    上一篇文章讲了红外传感器的工作原理及应用,红外传感器利用入射红外辐射引起传感器的温度变化,进而使某些物理参数变化来进行目标探测。红外传感器
    的头像 发表于 03-18 17:00 1261次阅读
    <b class='flag-5'>红外传感器</b>技术分类:热释电、热电堆与微测辐射热计详解

    2025年红外传感器发展现状:科技创新与市场扩展的交汇点

    红外传感器,作为一种重要的光电检测器件,近年来在全球范围内得到了广泛的应用和推广。随着科技的持续进步,红外传感器技术也在不断突破,推动了市场的快速发展。在2025年,这一领域的发展现状展现出
    的头像 发表于 02-20 18:13 1318次阅读

    红外传感器原理与应用

    红外传感器作为现代科技的重要组成部分,凭借其非接触式测量、高灵敏度以及广泛的应用领域,在多个行业发挥着关键作用。本文将深入探讨红外传感器的核心原理、多样化的分类、丰富的应用场景以及科学的选型技巧,为
    的头像 发表于 01-23 18:02 1998次阅读
    <b class='flag-5'>红外传感器</b>原理与应用

    CW32模块使用 红外接收模块

    静态电流3-5uA,动态电流3-5mA。 以上信息见厂家资料文件 三、移植过程 我们的目标是将例程移植至CW32F030C8T6开发板上【能够实现红外信号接收的功能】。首先要获取资料
    的头像 发表于 01-23 13:16 799次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>模块</b>使用 <b class='flag-5'>红外</b>接收<b class='flag-5'>模块</b>

    CW32模块使用 红外解码编码模块

    红外解码编码模块采用MCU+红外发射头+红外接收头,引出MCU的串口连接其他需要红外控制的设备,可作为
    的头像 发表于 01-23 12:56 1130次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>模块</b>使用 <b class='flag-5'>红外</b>解码编码<b class='flag-5'>模块</b>