文章目录

  • 一、红外人体感应器的介绍
  • 二、利用红外人体感应器实现控制LED灯
  • 三、总结

一、红外人体感应器的介绍

  1. 产品参数
  2. 产品特点
    ①全自动感应
    当人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。
    ②光敏控制 (可选)
    模块预留有位置,可设置光敏控制,白天或光线强时不感应。光敏控制为可选功能 ,出厂时未安装光敏电阻。如果需要,请另行购买光敏电阻自
    己安装。
    ③温度补偿 (可选择,出厂时未设 )
    在夏天当环境温度升高至 30~32℃,探测距离稍变短,温度补偿可作一定的性能补偿。
    ④两种触发方式(可跳线选择)
    a、不可重复触发方式
    感应输出高电平后,延时时间段一结束,输出将自动从高电平变成低电平。
    b、可重复触发方式
    感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次
    活动的时间为延时时间的起始点 )。
    ⑤具有感应封锁时间 (默认设置 :2.5S 封锁时间 )
    感应模块在每一次感应输出(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。 (此时间可设置在零点几秒—几十秒钟 )。

二、利用红外人体感应器实现控制LED灯

  1. 试验所采用的工具
    硬件:计算机 1 台;野火开发板 1 个;红外人体感应器1个;下载器ST_Link
    软件:keil
  2. 程序代码
    main函数
int main(void)
{/* LED 端口初始化 */LED_GPIO_Config();/* 初始化EXTI中断,按感应到人体热源会触发中断*/EXTI_SR501_Config(); /* 等待中断,由于使用中断方式,CPU不用轮询按键 */while(1)                            {}
}

外设中断的按键实现代码

void EXTI_SR501_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure;/*开启按键GPIO口的时钟*/RCC_APB2PeriphClockCmd(SR501_INT_GPIO_CLK,ENABLE);/* 配置 NVIC 中断*/NVIC_Configuration();/*--------------------------GPIO配置-----------------------------*//* 选择按键用到的GPIO */  GPIO_InitStructure.GPIO_Pin = SR501_INT_GPIO_PIN;/* 配置为浮空输入 */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(SR501_INT_GPIO_PORT, &GPIO_InitStructure);/* 选择EXTI的信号源 */GPIO_EXTILineConfig(SR501_INT_EXTI_PORTSOURCE, SR501_INT_EXTI_PINSOURCE); EXTI_InitStructure.EXTI_Line = SR501_INT_EXTI_LINE;/* EXTI为中断模式 */EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;/* 上升沿中断 */EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;/* 使能中断 */ EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure);
}void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
{uint32_t tmp = 0x00;/* Check the parameters */assert_param(IS_GPIO_EXTI_PORT_SOURCE(GPIO_PortSource));assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));tmp = ((uint32_t)0x0F) << (0x04 * (GPIO_PinSource & (uint8_t)0x03));AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp;AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((uint32_t)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (uint8_t)0x03)));
}
  1. 下载运行结果

    当手接触到红外感应器的时候,可能需要等待一段时间,LED才会亮,如果一直不松手的话,LED会一直处于亮的状态,一旦松开手之后,LED就会熄灭。不过,LED可能会人没有接触感应器也会出现点亮的情况,这个产生的原因应该是感应器受到外界的影响或者是感应器比较敏感造成的。此感应模块,在会出现一些延时的情况。

补充:模块连接方式,红线连接5V电源,黑色连接GND(接地),黄色连接PA8

三、总结

本过程主要是对于该感应器的原理进行一个理解,当感应器感受到人体的时候,就会输出高电平,反之,就输出低电平。要想理解代码,还需要对外设中断有一定的了解,外设中断的详细内容可以参考网上的讲解视频。

完整代码
百度网盘分享链接:
https://pan.baidu.com/s/19hzfrZxrlRpNSEDEdTOkrg
提取码:6hf3

基于STM32的红外人体感应器控制LED灯的状态相关推荐

  1. 51单片机红外通信及控制LED灯(LCD1602显示)

    51单片机红外通信及控制LED灯(LCD1602显示) 大家好,又和大家见面了,离上一次DS18B20传感器的文章已经过去了一个星期了,这期我将给大家带来,基于STC89C52芯片和HS0038红外接 ...

  2. 3、★☛基于STM32的手机通过wifi控LED灯√♠★

    3.★★☞基于STM32的手机通过wifi控LED灯

  3. 红外人体感应太阳能LED灯控制器-QX5298X

    概述 QX5298X是一款集成低压LDO.光控.充电控制.过充保护.欠压保护.PIR感应.延时为一体的人体感应太阳能LED灯控制芯片,只需要很少的外接元件,适用于磷酸铁锂电池供电的PIR人体感应LED ...

  4. STM32(四)--------按键控制LED灯

    STM32--------按键控制LED灯 知识介绍 工程文件放置 只有在添加进这一串之后,才能使用头文件集合 stm32f10x_conf.h 选择类型 初始化时钟从哪找 在stm32f10x_rc ...

  5. 8.利用红外遥控信号控制LED灯的亮灭

    代码实现当遥控器按下1的时候,LED 灯亮 当遥控器按下2的时候,LED 灯灭 代码如下: #include<IRremote.h> //定义接受引脚 const int irReceiv ...

  6. STM32——ADC读取光敏传感器控制LED灯,看门狗中断

    本文介绍两种使用方法 一.编写读取AD值的函数,之后判断AD值,进行相应操作,比如点灯. 二.用ADC读取光敏传感器AO口输出,并配置ADC通道看门狗监控这条通道,当光线太暗时打开LED灯. 之后会再 ...

  7. cc2530 按键中断实验——按键控制LED灯的亮灭

    在本次学习中,主要通过外部中断来控制LED的亮灭. 首先,先查看相关电路图.由图可知,当CC2530端口1的1号引脚输出低电平时,LED3将被点亮,当按键31按下时,端口1的1号引脚将为低电平,抬起时 ...

  8. FPGA-02FPGA按键控制LED灯

    按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等特点,在家电.数码产品.玩具等方面有广泛的应用.本章我们将介绍如何使用按键控制多个LED的亮灭. 本章包括以下几个 ...

  9. 【资料转发分享】基于STM32智能路灯灯光自动控制系统设计-基于STM32无刷电机BLDC速度控制器系统设计-基于STM32热释人体感应智能门禁报警系统设计-基于STM32居家加湿器控制仿真系统设计

    1604基于STM32智能路灯灯光自动控制系统设计-毕设课设资料 实现的功能如下,下图是仿真原理图: 通过ARM内部的ADC采集光敏电阻电压,判断电压值 电压值低于设定的值,表示光强太弱,开路灯 光强 ...

最新文章

  1. Python 元类(控制实例创建)
  2. 在SecureCRT中,hbase shell不能回退的问题
  3. 生产上如何设置线程池参数?拒绝策略怎么配?|| Executors 中 JDK 给你提供了,为什么不用??
  4. UINavgationController中覆写preferredStatusBarStyle方法不执行的问题
  5. 今天微软关闭Silverlight官网,Sivlerlight真得要死了吗?
  6. 【转】分享oldjun老大***网站的经验
  7. 收集、分析线上日志数据实战——ELK
  8. 树状数组相关应用之多叉树子树问题
  9. bzoj 4247: 挂饰(DP)
  10. Atitit 2019技术趋势与没落技术 目录 1.1. abcdAtitit 技术领域趋势 abcd研究总结AI(人工智能)BlockChain(区块链)、Cloud(云)、和Data(大数据)
  11. LinkedIn应用开发系列(三) --认证Request token
  12. GIS - 百度地图 城市中心点坐标
  13. Linux递归统计当前目录下普通文件的数量
  14. 淘宝店铺老店标识怎么显示 怎么淘宝老店标识申请
  15. 计算机通信与网络实验西电,西安电子科技大学计算机通信与网络CH04 数字传输.pdf...
  16. 计算机机房前端,(前端机房试题.doc
  17. Java回收对象的标记 和 对象的二次标记过程
  18. 我用diffusion把姐妹cos成了灭霸的模样
  19. asp.net mvc 项目使用Quartz.net添加定时任务
  20. 360极速浏览器内核切换设置

热门文章

  1. MySQL数据库自带基准压力测试工具MySQLSlap使用探索
  2. 2010计算机试题答案,2010全国计算机等级考试试题与答案公布
  3. rk3288之CPU定频实现(手动、内核)
  4. 在verilog中#的用法
  5. Verilog基础语法--运算符【常用的几种】
  6. 2020年团体程序设计天梯赛-总决赛-题目
  7. 轻松解决win10不能联网问题
  8. 【6.21更新】coursera视频打不开的解决方法
  9. Html和css的class和id的命名,[HTML] CSS Id 和 Class选择器
  10. XV6 RISCV 源码阅读之文件系统