HC-SR501人体感应模块代码(STM32单片机驱动)
HC-SR501人体感应模块简介模块特点 MCU与接线代码HC-SR501人体感应模块简介
HC-SR501是基于红外线技术的自动控制模块,采用德国原装进口 LHI778 探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。
模块特点
全自动感应:人进入其感应范围则输出高电平, 人离开感应范围则自动延时关闭高电平,输出低电平。
MCU与接线
使用了STM32F103ZET6单片机作为MCU,接线引脚为PA2
代码
People_Check.c
//--------------------------------------------------------------------------------------------------// 包含的头文件 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 //--------------------------------------------------------------------------------------------------#include "People_Check.h"#include "main.h"// // //初始化PA2为输出口.并使能这两个口的时钟 //LED IO初始化void PeoPle_Check_Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA端口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED0-->PA.2 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //浮空输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHzGPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA.2GPIO_ResetBits(GPIOA,GPIO_Pin_2); //PA.2 输出高//GPIO_SetBits}void PeoPle_Check_Show(void){LCD_ShowString(0,184,64,16,16,"People:");if(pinLevel==1){numToString(1);printf("People: %s\r\n\r\n", strValue);LCD_ShowString(64,184,32,16,16,"Yes");esp8266_str_data("People", strValue);}else if(pinLevel==0){numToString(0);printf("People: %s\r\n\r\n", strValue);LCD_ShowString(64,184,32,16,16,"Not");esp8266_str_data("People", strValue);}}
People_Check.h
#ifndef __PEOPLE_CHECK_H#define __PEOPLE_CHECK_H #include "sys.h"// #define PeopleCheck PAout(2)// PA2//#define LED1 PEout(5)// PE5#define pinLevel GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)//读取按键void PeoPle_Check_Init(void);//初始化void PeoPle_Check_Show(void);#endif
遇事不决,可问春风