当前位置:首页 > 嵌入式 > 程序员小哈
[导读]目录 GPIO输入的应用场景 人体热释红外传感器HC-SR501 电气参数 功能特点 应用范围 硬件电路 代码实例 成果展示 资料获取 推荐阅读 上一个网文实现了流水灯,《利用STM32F103C8T6最小系统板点亮流水灯 》,这个主要用到了单片机的IO可以输出高低电平的特性,

目录

  • GPIO输入的应用场景

  • 人体热释红外传感器HC-SR501

    • 电气参数

    • 功能特点

    • 应用范围

    • 硬件电路

    • 代码实例

  • 成果展示

  • 资料获取

  • 推荐阅读


上一个网文实现了流水灯,《利用STM32F103C8T6最小系统板点亮流水灯 》,这个主要用到了单片机的IO可以输出高低电平的特性,程序里置1即输出高电平;程序里置0即输出低电平。


当然,GPIO除了对外可以输出高低电平以外,单片机的IO还可以当做输入使用,当与单片机的某个IO引脚相连的电压为高电平的时候,程序中读取该IO的值为逻辑“1”;当输入的电压为低电平的时候,程序中读取该IO的值为逻辑“0”。

注意:
因为单片机的IO为TTL电平,所以输入的电压要注意电压范围,避免输入电压过高烧毁单片机IO引脚;
单片机的IO作为输出使用时,注意输出电流的能力是有限的,即一般只使用IO作为触发信号,而不是作为功率IO使用;
补充:
TTL电平的电压范围:
输出高电平>2.4V,输出低电平<0.4V
输入高电平≥2.0V,输入低电平≤0.8V


GPIO输入的应用场景

  • 按键读取

  • 热释红外人体感应传感器

  • 红外接收头

  • 带lm393的一些传感器模块,比如:热敏传感器、光照传感器、声音传感器等模块

这种模块上面一般都有一个电位器,用于调节阈值。

这种模块的输出引脚一般标识为DO,可以输出TTL信号,进而单片机可以到两种状态,感应(达到)到目标,或者未感应(未达到)。

个别传感器模块还有一个模拟量输出引脚,一般标识为AO,比如MQ2烟雾传感器,通过其模拟信号输出引脚AO与AD芯片或者单片机的ADC引脚相连,可以获得强度值,这种方法可以不调节硬件的情况下,通过程序来控制响应阈值,更灵活。


人体热释红外传感器HC-SR501


电气参数

  • 工作电压范围:直流电压4.5-20V

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

  • 触发方式:L不可重复触发/H重复触发(默认重复触发)

  • 延时时间:0.5-200S(可调)可制作范围零点几秒-几十分钟

  • 封锁时间:2.5S(默认)可制作范围零点几秒-几十秒

  • 感应角度:<100度锥角


功能特点

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

  • 光敏控制(可自己购买了安装,出厂时未设):模块预留有位置,可设置光敏控制,白天或光线强时不感应。

  • 触发方式跳线选择。

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

    • 可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。

  • 具有感应封锁时间(默认设置:2.5S封锁时间):感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(此时间可设置在零点几秒—几十秒钟)。

注意:
红外线热释电传感器根据实现原理,对人体的敏感程度还和人的运动方向关系很大。红外线热释电传感器对于径向移动反应最不敏感, 而对于横切方向 (即与半径垂直的方向)移动则最为敏感。
==>所以安装不对的话,可能会出现不工作的情况,另外,根据模块实现的原理,静止的人,无法感应。
传感器只对移动或运动的人体起作用。
==>所以如果用于检测球场或者教室内是否有人的话,理论上来说,不是很准确。


应用范围

  • 安防产品

  • 人体感应玩具

  • 人体感应灯具

  • 工业自动化控制等
     

  配合外围电路,它能自动快速开启各类白炽灯、荧光灯、蜂鸣器、自动门、电风扇、烘干机和自动洗衣机等装置。

  特别适用于宾馆、商场、库房及家庭的过道、走廊等场所。


硬件电路



代码实例

实现目标:

  • 人体红外热释感应模块OUT引脚输出高电平(检测出有人)时,板载LED(PC13)亮,反之,LED灭。

  • 我们将SR501的OUT引脚与核心板的PA5相连,并将PA5设置为输入;详细代码见void SR501_Init(void)函数实现;

  • 为了控制板载LED的亮灭,需要将PC13设置为输出;详细代码见void LED_Init(void)函数实现;


main.c完整代码如下:

#include "stm32f10x.h"#include "delay.h"#include "usart.h"
#define SR501_OUT GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5) //读取SR501返回值#define LED PCout(13)
//SR501_OUT初始化--PA5,设置成输入void SR501_Init(void){ GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //SR501_OUT GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStructure);}
// 板载LED初始化--PC13void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //使能PORTA时钟 //SR501_OUT GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); LED = 1;}

int main(void){ //初始化 delay_init(); SR501_Init(); LED_Init(); while(1) { if(SR501_OUT) { LED = 0; } else { LED = 1; } delay_ms(10); }}



成果展示

当手靠近人体热释红外传感器时,绿灯亮;延时一定时间以后,绿灯灭。



资料获取

微信公众号后台回复“SR501”,可以下载工程源码及HC-SR501人体红外热释感应模块资料


推荐阅读

STM32单片机最小系统详解

STM32中精确延时函数的实现

基于STM32固件库的MDK5工程建立

修改Keil工程名称并添加其他模块文件

利用STM32F103C8T6最小系统板点亮流水灯




喜欢请关注微信公众号:程序员小哈


若觉得本次分享的文章对您有帮助,随手点[在看]并转发分享,也是对我的支持,谢谢各位。


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭