K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示

news2025/2/5 6:07:04

K_A12_004 基于STM32等单片机采集人体红外感应(HC-SR501)模块串口与OLED0.96双显示

  • 一、资源说明
  • 二、基本参数
    • 参数
    • 引脚说明
  • 三、驱动说明
    • 模块工作原理:
    • 对应程序:
  • 四、部分代码说明
    • 1、接线引脚定义
      • 1.1、STC89C52RC+HC-SR501模块
      • 1.2、STM32F103C8T6+HC-SR501模块
  • 五、基础知识学习与相关资料下载
  • 六、视频效果展示与程序资料获取
  • 七、注意事项
  • 八、接线说明
    • STC89C52RC
    • STM32F103C8T6

请添加图片描述

一、资源说明

单片机型号测试条件模块名称代码功能
STC89C52RC晶振11.0592MHC-SR501模块STC89C52RC采集HC-SR501模块参数 串口与OLED0.96双显示
STM32F103C8T6晶振8M/系统时钟72MHC-SR501模块STM32F103C8T6采集HC-SR501模块参数 串口与OLED0.96双显示

其他资料目录 直戳跳转

二、基本参数

参数

请添加图片描述

引脚说明

HC-SR501模块引脚说明
VCC正极 3.3-5V供电
GND负极 接GND
DO数字量输出

三、驱动说明

模块工作原理:

请添加图片描述

对应程序:

以51为例

uint8_t HC_SR501_Read(void)
{
	if(R_SR501)
	{
		Flag_P=1;
	}
	else
	{
		Flag_P=0;		
	}
	return Flag_P;
}

void main()//主函数模块// 
{ 
	uint8_t i;
 	OLED_Init(); //OLED初始化
	UartInit();
	for(i=0;i<7;i++)
	{
		OLED_ShowCN(16*i,0,i+1);
	}
 	 while(1) 
  	{ 
		
			UartSendStr(HC_SR501_Buf1);
			
			if(HC_SR501_Read())
			{
				
					UartSendStr(HC_SR501_Buf2);
					OLED_ShowCN(0,3,8);
					for(i=1;i<4;i++)
					{
							OLED_ShowCN(0+16*i,3,i+9);
					}
			}
			else
			{
//					OLED_Fill(0x00);
					UartSendStr(HC_SR501_Buf3);
					OLED_ShowCN(0,3,9);
					for(i=1;i<4;i++)
					{
							OLED_ShowCN(0+16*i,3,i+9);
					}
			}

			
		//  DelayMs(500);
  	} 
} 

四、部分代码说明

1、接线引脚定义

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+HC-SR501模块


//人体红外感应(HC-SR501)模块引脚定义
//人体红外感应模块(HC-SR501)-------------------------STC89C52RC
VCC-----------------------------------------------5V
GND-----------------------------------------------GND
OUT-----------------------------------------------P1.0
//OLED0.96模块引脚定义
sbit SCL=P1^2; //串行时钟
sbit SDA=P1^3; //串行数据

1.2、STM32F103C8T6+HC-SR501模块

//人体红外感应(HC-SR501模块)引脚定义 GPIOB_5  
#define R_HC_SR50  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5)
//OLED0.96模块引脚定义					
/*STM32F103C8T6芯片的硬件I2C: PB6 -- SCL; PB7 -- SDA */
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;//I2C必须开漏输出
GPIO_Init(GPIOB, &GPIO_InitStructure);

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转

2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转

3、OLED0.96程序说明 直戳跳转

4、串口助手下载与使用
(1)安信可调试助手使用 直戳跳转
(2) sscom33串口调试助手使用 直戳跳转
(3)STC-ISP串口调试助手使用 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
资料获取 (滑到最后添加个人号)

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STC89C52RC

/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : 人体红外感应模块(HC-SR501)测试程序
//  测试条件   : STC89C52RC   晶振11.0592
接线
人体红外感应模块(HC-SR501)-------------------------STC89C52RC
VCC-----------------------------------------------5V
GND-----------------------------------------------GND
OUT-----------------------------------------------P1.0


OLED0.96(IIC) ------------------------------------STC89C52RC
VCC-----------------------------------------------3.3V
GND-----------------------------------------------GND
SCL-----------------------------------------------P1^2
SDA-----------------------------------------------P1^3
*************************************************************************************/

STM32F103C8T6

/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : 人体红外感应模块(HC-SR501)测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟 72M
接线
人体红外感应模块(HC-SR501)--------------STM32F103C8T6
VCC-------------------------------------5V
GND-------------------------------------GND
OUT-------------------------------------PB_5 

OLED0.96
VCC-- -----------------------------------3.3V
GND- ------------------------------------GND
SCL- ------------------------------------PB_6 //SCL
SDA- ------------------------------------PB_7 //SDA	
*****************************************************************************************/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/343860.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker-compose概述与简单编排部署

一、Docker-compose 简介Docker-Compose项目是基于Python开发的Docker官方开源项目&#xff0c;负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层&#xff0c;分别是 工程&#xff08;project&#xff09;&#xff0c;服务&#xff08;service&#…

MySQL学习笔记——CSDN学习记录九:数据库存储引擎

存储引擎 一、MySQL 体系结构&#xff1a; 二、存储引擎概念&#xff1a; MySQL 中的数据用于各种不同的技术存储在文件或内存。这些技术的每一个都使用不同的存储机制、索引技巧、锁定水平&#xff0c;最终提供不同的功能。通过选择不同的技术&#xff0c;能够得到更好的数据处…

03- SVC 支持向量机做人脸识别 (项目三)

数据集描述: sklearn的lfw_people函数在线下载55个外国人图片文件夹数据集来精确实现人脸识别并提取人脸特征向量数据集地址: sklearn.datasets.fetch_lfw_people — scikit-learn 1.2.1 documentationPCA降维: pca PCA(n_components0.9) 数据拆分: X_train, X_test, y_tra…

正大期货本周财经大事抢先看

美国1月CPI、Fed 等央行官员谈话 美国1月超强劲的非农就业人口&#xff0c;让投资人开始上修对这波升息循环利率顶点的预测&#xff0c;也使本周二 (14 日) 的美国 1月 CPI 格外受关注。 介绍正大国际期货主账户对比国内期货的优势 ​第一点&#xff1a;权限都在主账户 例如…

B站基于缓存优化 PRESTO 集群查询性能

导读&#xff1a;本次分享主题为 B 站 Presto 集群查询性能的优化&#xff0c;首先会简单介绍 Presto以及 B 站内部 Presto 集群的架构。接下来讲解针对 Presto 做的改造&#xff0c;主要是 Presto 搭配 Alluxio 和 Presto 搭配 Alluxio local cache 的使用。最后会对后续计划开…

C++类基础(十三)

类的继承 ● 通过类的继承&#xff08;派生&#xff09;来引入“是一个”的关系&#xff08; 17.2 — Basic inheritance in C&#xff09; – 通常采用 public 继承&#xff08; struct V.S. class &#xff09; – 注意&#xff1a;继承部分不是类的声明 – 使用基类的指针…

StarRocks技术内幕 | 资源隔离原理解析

资源隔离一直是 StarRocks 用户讨论较多的话题&#xff0c;对于资源隔离的诉求&#xff0c;主要集中在四点&#xff1a;1. 很多用户关注资源的隔离性&#xff0c;期望当有核心业务的查询运行时&#xff0c;可以限制其他类型任务的使用资源&#xff0c;进而保障核心业务的响应时…

SpringMVC(1)

Web项目:基于HTTP协议&#xff0c;当一个用户从浏览器上面输入URL地址之后&#xff0c;URL能够和我们的程序映射起来&#xff0c;可以让用户的请求触达到后端程序里面&#xff0c;并且根据程序的处理&#xff0c;把结果返回浏览器&#xff1b; Spring MVC要进行学习的内容: 1)连…

三分钟学习 Gitee OpenAPI

文章目录1 什么是 Gitee Open API ?2 如何操作Open API ?2.1 申请私人令牌2.2 发起网络请求3 其他Git Open API3.1 Github Open API3.2 Gitlab OpenAPI1 什么是 Gitee Open API ? 简单说就是 网络请求 Open API 让我们可以通过网络请求的方式对 Git仓库的 分支&#xff0…

LinkedList与链表(数据结构系列5)

目录 前言&#xff1a; 1.链表的概念以及分类 1.1链表的概念 1.2分类 1.2.1单向和双向 1.2.2循环和非循环 1.2.3带头和不带头 2.无头单链表的模拟实现 3.双向链表的模拟实现 4.LinkedList的简单介绍 5.LinkedList的遍历 5.1直接打印 5.2for-each遍历 5.3迭代器遍历…

【Vercel】教你部署imsyy/home个人主页

本篇博客教你如何部署一个自己的个人主页 项目地址&#xff1a;https://github.com/imsyy/home 本文首发于 慕雪的寒舍 1.fork仓库vercel部署 首先我们点击fork&#xff0c;将仓库复刻到自己的账户 随后进入vercel&#xff0c;点击dashboard-add new-project 选择你复刻的仓库…

我的Android开发【分代收集算法】

为什么要采用分代收集算法&#xff1f; 分代的垃圾回收策略&#xff0c;是基于这样⼀个事实&#xff1a;不同的对象的⽣命周期是不⼀样的。因此&#xff0c;不同⽣命周期的对象可以采取不同的收集⽅式&#xff0c;以便提⾼回收效率。在 Java 程序运⾏的过程中&#xff0c;会产…

【大数据基础】vmware+ununtu安装详细过程

环境配置 1. 虚拟机VMware下载与安装 首先安装vmware workstation 密钥直接利用科技生成。 检查vmware是否成功安装 2. VMware安装Ubuntu18.04 LTS 在清华源镜像站找到合适版本的ubuntu 联网安装需要一些时间&#xff0c;大致在一到两个小…

NetSuite Balancing Segment平衡段

春节假期偷了一段时间懒&#xff0c;现在开始工作了。今朝谈一个偏门题目&#xff0c;于未知领域再下一城。说这个题目偏&#xff0c;就要讲讲渊源。话说在Oracle的EBS和Fusion产品中的COA领域有个功能叫做“Balancing Segment”。 问了几位Oracle老炮&#xff0c;也说是对第二…

RDS-MySQL算不算国产数据库及其风险问题

作者&#xff1a;IT圈黎俊杰 笔者在参与国内某大型央企信创替代研究工作中&#xff0c;遇到从各方面传来的“云平台上的RDS就是国产数据库&#xff0c;使用RDS替代原数据库&#xff0c;也是信创替代”的说法&#xff0c;当说的人多了&#xff0c;产生的误导性强了以后&#xff…

Qt OpenGL(三十八)——Qt OpenGL 核心模式-绘制彩色的点

提示:本系列文章的索引目录在下面文章的链接里(点击下面可以跳转查看): Qt OpenGL 核心模式版本文章目录 Qt OpenGL(三十八)——Qt OpenGL 核心模式-绘制彩色的点 一、场景 续接上一篇文章(动态刷新点云),动态刷新点云数据,如下图: 如果,我们需要的点的绘制是彩…

数据挖掘学习笔记——GEO数据库:芯片数据分析

数据挖掘 数据挖掘学习笔记——GEO数据库&#xff1a;芯片数据分析 文章目录数据挖掘一、芯片基础知识1.1、背景二、GEO数据库概述2.1、基础简介2.2、检索页面展示三、GSE项目的三种下载方式3.1、主页下载原始数据3.2、主页下载表达矩阵3.3、GEOquery包下载表达量四、基因名与…

AI与制造的联合与突破,捷配是作何选择的?

最近的chatGPT可谓是火遍全球&#xff0c;人工智能与AI的话题再一次被推上了各大平台热搜&#xff0c;各个行业、各路专家也大谈对各个行业的影响。那么PCB制造业中&#xff0c;AI意味着什么&#xff1f;某一天&#xff0c;在生产工厂中&#xff0c;看着每一条生产链条持续运行…

一文教你学会添加通达信外挂接口(财经外挂)

今天重点讲解怎样在您的股票交易软件里增加财经类外挂&#xff0c;对您的股票交易软件进行便利化的设置与完善&#xff0c;把您想看的内容统统加紧你的交易软件&#xff0c;方便以后的研究操作。 具体流程是这样的&#xff1a;打开您要添加的财经网站官网&#xff0c;复制官网…

第四章 模块和组件、模块化和组件化的理解

1、模块 理解&#xff1a;向外提供特定功能的js程序&#xff0c;一般就是一个js文件为什么要拆成模块&#xff1a;随着业务逻辑增加&#xff0c;代码越来越多且复杂作用&#xff1a;复用js&#xff0c;简化js的编写&#xff0c;提高js运行效率 我们以一段代码举例说明拆分模块…