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

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

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

    一、资源说明

    单片机型号 测试条件 模块名称 代码功能
    STC89C52RC 晶振11.0592M HC-SR501模块 STC89C52RC采集HC-SR501模块参数 串口与OLED0.96双显示
    STM32F103C8T6 晶振8M/系统时钟72M HC-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	
    *****************************************************************************************/
    
    
    物联沃分享整理
    物联沃-IOTWORD物联网 » 基于STM32单片机的人体红外感应模块(HC-SR501)串口与OLED0.96双显示采集方案(K_A12_004)

    发表评论