基于STM32F103ZET6 HC_SR501人体红外感应

这是最后的实验现象,有人走过会一直输出有人,离开范围时则输出没人
开发板 PZ6086L ,HC_SR501模块

这是HC_SR501的示意图,,VCC和GND不再多做介绍,5V供电就行,
OUT接口,我接的时PA0,因为需要将该引脚配置为下拉输入模式才能正常使用
而我的开发板对应的需要PA0引脚

通过该模块的说明书,并不需要特殊的参数配置,

函数部分
HC_SR501配置函数

先是头文件,
#define HC_SR501 PAI(0) PAI(0)是位绑定,方便操作用的,
void HC_SR(void);是HC_SR501的PA0配置函数
u8 HC_SR501_Statue(void);是为了判断PA0输入状态,如果被拉高了,说明有人进入了
void HC_SR(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ,ENABLE);//打开GPIOA时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;//选中0引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;//配置为下拉输入模式
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
u8 HC_SR501_Statue(void)
{
if(PAI(0)==1)//如果GPIOA_0 引脚输入高电平,代表有人,返回1
{
return 1;
}
return 0;//没人就返回0
}
部分主函数
int main(void)
{
delay_init(72); //滴答计时器配置函数
RCC_Configuration();//时钟配置
GPIO_Configuration();//GPIO配置
HC_SR();//HC_SR501引脚配置
USART1_Configuration();//串口配置函数
while(1)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_0);//证明系统成功进入该循环
if(HC_SR501_Statue()==1)//如果返回状态为1 ,则该判断语句成立,输出有人
{
printf("有人\r\n");
}
else printf("没人\r\n");
delay_ms(500); //防止输出太过频繁
}
}
以下是我的工程文件
包含全部程序,以及我使用的调试文件,HC_SR501模块手册,百度网盘 ,密码 lc5w
https://pan.baidu.com/s/1ALapR-4hFrfTKfuLVKRqqg
欢迎沟通交流,我们一起进步
基于STM32F103ZET6 HC_SR501人体红外感应的更多相关文章
- rfid 门卡系统和人体红外感应开发
今天忙了一天了,因为毕昇杯我发现如果不加把劲,可能寒假之前代码搞不出了,今天突击了两个模块,一个人体感应模块,和rfid刷卡模块,这两个模块谈不上自己编写代码,今天的任务也仅仅是看懂了代码,现在我总结 ...
- TC301A芯片做的一种人体接近感应方案
基于TC301A芯片做的一种人体接近感应方案,此方案的原理是通过检测电容的变化量来检测人体的有无,此方案设计原理简单,使用方便,容易操作,成本较低.设计方案如下:可根据原理图做pcb板子,如图芯片的五 ...
- 基于51,人体红外感应和RC522的门禁系统
总结一下最近学的东西,这两天学的东西,rfid门卡系统终于弄出来来了,这个程序算现在写过的比较满意的程序,大家可以参考参考 主函数: #include<reg52.h> #include& ...
- Homekit_温湿度_人体红外_光强_传感器
市面上大多数,传感器产品多是简单的单个传感器进行售卖,这里我推荐一款四合一的产品,使用Homekit进行控制. 前置需求: 苹果手机一台 四合一传感器一个 USB数据线一根 介绍: 1.外观上是一个小 ...
- 基于RT-Thread的人体健康监测系统
随着生活质量的提高和生活节奏的加快,人们愈加需要关注自己的健康状况,本项目意在设计一种基于云平台+APP+设备端的身体参数测试系统,利用脉搏传感器.红外传感器.微弱信号检测电路等实现人体参数的采集,数 ...
- 新建基于STM32F103ZET6的工程-HAL库版本
1.STM32F103ZET6简介 STM32F103ZET6的FLASH容量为512K,64K的SRAM.按照STM32芯片的容量产品划分,STM32F103ZET6属于大容量的芯片. 2.下载HA ...
- 基于Microchip单片机的触摸感应技术
Microchip提供两种电容式触摸感应解决方案,一种为张驰振荡器方式,即通过检测触摸感应电容充放电的频率变化,来检测是否有键按下,根据单片机集成的硬件资源不同,另一种通过Microchip单片机集成 ...
- 基于stm32f103zet6的FAT16文件系统学习0(读SD卡扇区)
SD卡已经看了两天了,主要是因为测试出来的卡容量不对,所以一直找原因,最终还是发现了,总比不过是单位上面出现了问题,或许是之前没有接触到SD的缘故吧,所以对其中的一些寄存器很不了解,一切都是重新开始, ...
- 基于STC89C52的oled红外遥控闹钟
这个红外遥控主要是程序通过对按下的键的键码进行解析,并运行相应的功能代码 一次按键动作的遥控编码信息为 32 位串行二进制码.对于二进制信号“0”,一个脉冲占 1.2ms:对于二进制信号“1”,一个脉 ...
随机推荐
- 在NGUI中高效优化UIScrollView之UIWrapContent的简介以及使用
前言: 1.我使用的NGUI版本为 v3.7.5,不知道老版的NGUI是否有UIWrapContent 这个脚本. 2.本文讲解主要以图片显示的例子为主,本文例子UIScrollView是水平方向,一 ...
- Java学习---RMI 技术分析[Hessian]
一.什么是Hessian Hessian 是一个基于 binary-RPC 实现的远程通讯 library.使用二进制传输数据.Hessian通常通过Web应用来提供服务,通过接口暴露.Servlet ...
- SP2-0734: unknown command beginning "lsnrctl st..." - rest of line ignored.
SP2-0734: unknown command beginning "lsnrctl st..." - rest of line ignored. Cause(原因):Comm ...
- August 14th 2017 Week 33rd Monday
Life is like a watch, you can return to the starting point, they are not yesterday! 人生就像钟表,可以回到起点,却已 ...
- December 06th 2016 Week 50th Tuesday
Behind every beautiful thing, there is some kind of pain. 美丽背后,必有努力. No pains, no gains. But it seem ...
- jQuery中的$.grep()使用
grep()方法用于数组元素过滤筛选 grep(array,callback,invert) array:待过滤数组; callback:处理数组中的每个元素,并过滤元素,该函数中包含两个参数,第一个 ...
- Scala模式匹配和样例类
Scala有一个十分强大的模式匹配机制,可以应用到很多场合:如switch语句.类型检查等.并且Scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配. 1.字符匹配 def mai ...
- BT提权wind2008R2
昨天中午打开电脑,对着菜刀在那翻啊翻,找到一个64bit的os. 因为这个ip不在曾经提权过的主机列表里面,心想这应该是个低权限的网站,顺手打个whoami试试,结果给我返回了"nt aut ...
- #Alpha Scrum4
Alpha Scrum3 牛肉面不要牛肉不要面 Alpha项目冲刺(团队作业5) 各个成员在 Alpha 阶段认领的任务 林志松:音乐网页前端页面编写,博客发布 林书浩.陈远军:界面设计.美化 吴沂章 ...
- μCOS-II系统之事件(event)的使用规则及Semaphore的相互排斥量使用方法
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wavemcu/article/details/27798493 ****************** ...