GY-53激光测距资料 板子集成stm32芯片 直接输出pwm波 不需要复杂的IIC通信
资料包内含arduino平台与stm32处理器,51单片机源码
一、 概述
GY-53 是一款低成本数字红外测距传感器模块。 工作电压 3-5v,功耗小,体积小,安装方便。 其工作原理是,红外 LED发光,照射到被测 物体后,返回光经过 MCU接收,MCU计算出 时间差,得到距离。直接输出距离值。 此模块,有两种方式读取数据,即 串口 UART(TTL电平)+PWM(1 线)
或者芯片 IIC模式,串口的波特率有 9600bps 与 115200bps,可配置,有连续,询问输出两种方式,可掉电保存设置。提供 arduino,51,stm32单片机 通讯程序。 ,不提供原理图及内部单片机源码。
模块另外可以设置单独传感器芯片工作模式, 作为简单传感器模块,MCU不参与数据处理工作。
六、模块使用方法
该模块为串口和 IIC 输出模块,模块默认为串口模式。串口模式下,PWM自动工作。
串口模式(默认) :PS 端口拉高,模块上电,默认配置为波特率 9600、高精度测量、连续输出模式;使用该模块配套的上位机可方便的对模块进行相应的设置;上位机使用前请先选择好端口和波特率,然后再点击“打开串口”按钮,此时,上位机将显示对应的数据,点击“帮助”按钮,在上位机下方状态栏将显示具体按钮用法。
注意,所有的设置指令只有发送保存指令后才会掉电保存状态。
仅使用传感器芯片模式: PS 端口接 GND, 此模式下模块的 MCU不对芯片进行设置和读取。此模式下请客户自行在网上查找资料及程序,这里不再提供。
模块与 mcu或者 USB 转 ttl,连接图:
串口接 USB转 ttl:
上位机使用截图:
stm32单片机源程序如下:
- #include "stm32f10x.h"
- #include "delay.h"
- #include "usart.h"
- #include "string.h"
- #include "LED.h"
- /*
- Keil: MDK5.10.0.2
- MCU:stm32f103c8
- 硬件接法:
- GY-53---STM32
- 1、GY-53_RX---STM32_TX,STM32复位将发送A5 45 EA 给模块
- 2、STM32_TX---FT232,STM32将数据上传给上位机
- 3、GY-53_TX---STM32_RX,接收模块数据
- 软件说明:
- 该程序采用串口方式获取模块rgb数据,波特率115200
- 注:中断函数位于stm32f10x_it.c
- 联系方式:
- http://shop62474960.taobao.com/?spm=a230r.7195193.1997079397.2.9qa3Ky&v=1
- */
- static void NVIC_Configuration(void)
- {
- NVIC_InitTypeDef NVIC_X;
-
- /* 4个抢占优先级,4个响应优先级 */
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- /*抢占优先级可打断中断级别低的中断*/
- /*响应优先级按等级执行*/
- NVIC_X.NVIC_IRQChannel = USART1_IRQn;//中断向量
- NVIC_X.NVIC_IRQChannelPreemptionPriority = 0;//抢占优先级
- NVIC_X.NVIC_IRQChannelSubPriority = 0;//响应优先级
- NVIC_X.NVIC_IRQChannelCmd = ENABLE;//使能中断响应
- NVIC_Init(&NVIC_X);
- }
- void send_com(u8 data)
- {
- u8 bytes[3]={0};
- bytes[0]=0xa5;
- bytes[1]=data;//功能字节
- USART_Send(bytes,3);//发送帧头、功能字节、校验和
- }
- int main(void)
- {
- u8 sum=0,i=0;
- int16_t data=0;
- uint16_t distance=0;
- delay_init(72);
- NVIC_Configuration();
- Usart_Int(9600);
- delay_ms(500);//等待模块初始化完成
- send_com(0x45);//发送读rgb指令
- while(1)
- {
- if(Receive_ok)//串口接收完毕
- {
- for(sum=0,i=0;i<(re_Buf_Data[3]+4);i++)//rgb_data[3]=3
- sum+=re_Buf_Data[i];
- if(sum==re_Buf_Data[i])//校验和判断
- {
- distance=re_Buf_Data[4]<<8|re_Buf_Data[5];
- send_3out(&re_Buf_Data[4],3,0x15);//上传给上位机
- }
- Receive_ok=0;//处理数据完毕标志
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
GY-53资料v1.rar
(3.43 MB, 下载次数: 201)
|