怎么用网站做word文件格式,上海闵行网站建设,怎么登陆公司网站的后台,厦门网站建设的公司哪家好文章目录 一、GY-56 简介二、引脚功能三、通信协议1.串口协议#xff1a; 当 GY-56 PS 焊点开放时候使用(默认)#xff08;1#xff09;串口通信参数#xff08;默认波特率值 9600bps#xff09;#xff08;2#xff09;模块输出格式#xff0c;每帧包含 8-13 个字节 当 GY-56 PS 焊点开放时候使用(默认)1串口通信参数默认波特率值 9600bps2模块输出格式每帧包含 8-13 个字节十六进制3命令字节由外部控制器发送至 GY-56 模块十六进制 2.IIC协议当 GY-56 模块硬件 PS 焊点焊上时候使用,CT 为 SCLDR 为 SDA 四、SET、OUT 引脚使用说明五、串口模式下 GY56 模块校准说明六、测试现象及程序1.串口模式直接输出2.IIC模式OLED显示PS焊点短接1程序2现象 一、GY-56 简介
GY-56 模块由测距传感器(VL53L0X)和一个 MCU 组成 。工作电压 3-5v功耗小体积小安装方便。 其工作原理是红外 LED 发光照射到被测物体后返回光经过 MCU 接收MCU 计算出时间差得到距离。此模块有两种方式读取数据即串口 UARTTTL 电平IIC2 线模式串口的波特率有 9600bps 与 115200bps可配置有连续询问输出两种方式可掉电保存设置。GY-56 可以设置上下限距离报警值开关量输出在设定的区间内有被测物体挡住直接输出高电平。IIC 模式下如果需要可以设置内部 IIC 地址不同以便多个传感器直接接在同一个总线。 二、引脚功能
VCC电源正极 3v-5vGND电源地CT串口 USART_TX / IIC_SCLDR串口 USART_RX / IIC_SDASET设置上下限距离报警值电压 0~3.3VOUT报警值状态输出
三、通信协议
1.串口协议 当 GY-56 PS 焊点开放时候使用(默认)
1串口通信参数默认波特率值 9600bps
波特率9600 bps 校验位N 数据位8 停止位1 波特率115200 bps 校验位N 数据位8 停止位1
2模块输出格式每帧包含 8-13 个字节十六进制
①.Byte0: 0x5A 帧头标志 ②.Byte1: 0x5A 帧头标志 ③.Byte2: 0x15 本帧数据类型 ④.Byte3: 0x03 数据量 ⑤.Byte4: 0x00~0xFF 数据前高 8 位 ⑥.Byte5: 0x00~0xFF 数据前低 8 位 ⑦.Byte6: 0x00~0xFF 模块测量模式 ⑧.Byte7: 0x00~0xFF 模块温度 ⑨.Byte8: 0x00~0xFF 校验和前面数据累加和仅留低 8 位 数据计算方法 距离长度计算方法 Distance (Byte48) | Byte5 单位 cm Mode Byte6 Temp Byte7MCU 温度 例一帧数据 5A-5A-15-04-00-0A-02-1A-F3 Distance (0x008)|0x0A 10cm Mode2 高精度模式 Temp0x1A26℃
3命令字节由外部控制器发送至 GY-56 模块十六进制
命令格式0xA5功能指令指令值sum 例 1设置串口连续输出数据如需掉电保存请发送掉电保存指令 连续输出指令0xA50x650x010x0B
例 2设置在 10cm-50cm 的区间范围内 OUT 引脚输出高电平如需掉电保存请发送掉电保存指令 设置上限阀值 50CM0xA50x980x320x6F 设置下限阀值 10CM0xA50xA90x0A0x58
例 3 掉电保存指令 0xA50x870x010x2D
2.IIC协议当 GY-56 模块硬件 PS 焊点焊上时候使用,CT 为 SCLDR 为 SDA
IIC 时钟250K 以下模块默认 8bit IIC 地址为 0XE01bit write01bit read 1 四、SET、OUT 引脚使用说明
为了便于表示在此特此声明如下 S 表示模块与被测物体之间的距离 S1 表示设定的最大警界阀值上限阀值 S2 表示设定的最小警界阀值下限阀值 S3 表示解除最大警界状态值S3 和 S1 的关系S33≤S1。例如 S1100,则 S3≤97 S4 表示解除最小警界状态值S4 和 S2 的关系S4-3≥S2。例如 S250,则 S3≥53 OUT 引脚的状态为高电平和低电平两种。高电平表示 S2SS1低电平表示 SS1 或 SS2。 1、OUT 由高电平变低电平。当模块 SS1 或 SS2 时OUT 引脚变成低电平模块 LED灯将由亮变灭。 2、OUT 由低电平变高电平。当 SS1,让 S≤S3 时即当实际距离低于最大警界阀值 3cm时OUT 引脚由低电平变高电平模块 LED 灯将由灭变亮。当 SS2,让 S≥S4 时即当实际距离大于最小警界阀值 3cm 时OUT 引脚由低电平变高电平模块 LED 灯将由灭变亮。设置最大警界阀值可通过发送指令外也可通过 SET 引脚手动来设置。 1、模块连续输出模式下例如设置最大警界阀值 S1 为 100cm则将模块放置在据被测物体 97cm 的位置进行 SET 引脚设置或者发送指令A5 98 64 A10x64 是十进制的 100。 2、手动 SET 引脚接入 3.3V 高电平大约 3 秒待模块 LED 指示灯闪速 2 下此时断开 SET 引脚 3.3V 连接断开后大约 5 秒待 LED 闪烁 3 下则设置成功。如果 LED 闪烁 4 下表示设置失败。失败原因有两种一种是接入高电平时间不够另一种是设置的距离值小于最小警界阀值。 设置最小警界阀值可通过发送指令外也可通过 SET 引脚来设置。 1、模块连续输出模式下例如设置最小警界阀值 S2 为 50cm则将模块放置在据被测物体 53cm 的位置,进行 SET 引脚设置, 或者发送指令A5 A9 32 B20x32 是十进制的 50。 2、手动 SET 引脚接入 GND大约 3 秒待模块 LED 指示灯闪速 2 下此时断开 SET 引脚 GND 连接断开后大约 5 秒待 LED 闪烁 3 下则设置成功。如果 LED 闪烁 4 下表示设置失败。失败原因有两种一种是接入低电平时间不够另一种是设置的距离值大于最大警界阀值。
五、串口模式下 GY56 模块校准说明
串口下 GY56 模块校准说明 1、SPADs 修正 当测距传感器上方被透明材质物体覆盖模块需进行一次该修正并上电后加载 SPADs 修正参数。默认情况下模块在每次上电后会进行一次 SPADs 修正操作如用户手动执行一次 SPADs 修正后设置了上电加载 SPADs 修正参数则模块不进行上电后 SPADs 修正操作这样可以缩短模块初始化时间通过上位机发送十六进制 A5 0A 01 B0 给模块模块 LED 亮起待熄灭校准完成。 2、温度修正当模块工作环境温度变化超过 8 摄氏度测距传感器灵敏度会发生改变需进行一次温度修正默认情况下模块在每次上电后会进行一次温度修正操作如模块工作环境温度恒定可进手动进行一次温度修正后设置模块上电后加载温度修正参数这样可以缩短模块初始化时间如用户开启了自动温度修正则模块根据 MCU 温度超过 8度后自行进行一次温度修正通过上位机发送十六进制 A5 10 01 B6 给模块模块 LED亮起待熄灭校准完成。 3、偏差校准当模块测距值与实际值之间存在一个固有的偏差时可执行此操作。偏差校准的指令0xA50x21指令值sum指令值为实际距离值。例如:模块测距值为13CM而实际值为 10CM则指令中的指令值为十进制的 10如需重新上电后加载该补偿值需设置上电后加载偏差校准参数。通过上位机发送十六进制指令给模块模块 LED 亮起待熄灭校准完成。 4、窗口校准当测距传感器上方被透明材质物体覆盖模块在全量程测距的值不是线性的情况下执行该操作。如下图所示 X 轴为实际值Y 轴为测量值。绿色虚线说明该材质对测距无影响或是传感器表面无任务材质覆盖蓝色线表明为轻度影响红线为中度影响绿色实线为重度影响。窗口校准的指令0xA50x32指令值sum指令值的选取使用 17%灰色的反射率目标则设模块与被测目标的距离为 S。对于轻度影响的情况下参见下图左侧蓝线只要 S 在 AB 之间即可。指令值为实际距离值。中度影响的选取右测红线 AB 之间区域。如需重新上电后加载该补偿值需设置上电后加载窗口校准参数。通过上位机发送十六进制指令给模块模块 LED 亮起待熄灭校准完成。 六、测试现象及程序
1.串口模式直接输出 Distance (0x008)|0x14 20cm
2.IIC模式OLED显示PS焊点短接
1程序
main.c
#include STC89C5xRC.H
#include delay.h
#include IIC.H
#include oled.Hvoid Read_VL53L0(unsigned int * distance)//读VL53L0
{unsigned char REG_data[2]{0,0};IIC_Start();IIC_SendByte(0xE1);IIC_ReceiveAck();//这里没有对应答做判断delay_1us(50);REG_data[0] IIC_ReceiveByte();IIC_SendAck(0);REG_data[1] IIC_ReceiveByte();IIC_SendAck(1);IIC_Stop();distance[0]REG_data[0]8|REG_data[1];
}void Write_VL53L0()//写VL53L0
{IIC_Start();IIC_SendByte(0xE0);IIC_ReceiveAck();delay_1us(40);IIC_SendByte(0x51);//发送测量命令IIC_ReceiveAck();delay_1us(40);IIC_Stop();
}
void main()
{unsigned int diatance0;OLED_Init();//初始化OLEDOLED_ColorTurn(0);//0正常显示1 反色显示OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示OLED_Clear();//清屏Delay_x_ms(1000);//系统启动延时while(1){Write_VL53L0();Delay_x_ms(500);//测量转化延时Read_VL53L0(diatance);OLED_ShowString(70,3,cm,16);OLED_ShowNum(40,3,diatance,3,16);Delay_x_ms(1000);}
}2现象
盒子放置于直尺15cm以及20cm位置测试OLED 分别显示距离 15cm 及 20cm 本文测试结束需要整个资料工程的可以在评论区留言邮箱哦