URM06-RS485_Ultrasonic_SKU_SEN0149-DFRobot

导 言

超声波传感器释放超声波,通过测量超声波脉冲时间触摸对象并返回传感器,传感器距离目标对象计算广度用于检测位移、厚度、距离、水位、物位透明对象

URM06-RS485超声波传感器提供短距离检测,范围从20-10m不等,聚氯乙烯嵌套并匹配35毫米电管安装与RS485接口并用高输出声波电源工作超声波传感器从20cm到1000cm检测对象并用1cm分辨率提供射程信息URM06有15度波束角,敏感度极佳检测软目标最有效类似传感器广泛用于职业移动机器人系统,如Pioneer机器人

URM06序列传感器是市场中波角、感知度和精度方面最优超声波传感器

规范化

URM052png

应用

连接图

连接图

Pin定义

通信协议

默认信息 :

通信命令回归框架格式

页眉 地址识别 长度 md 数据类 苏姆
55号 AA 11 N级 01 数据1~DataN

PS:和字节值前所有字节值之和保留一字节总和值

测量距离

可向超声波模块发送测量命令测量距离后传值回UART端口

例举 :

发送命令0x550xA0x110x0x020x12

指令 :

返回命令:0x550xA0x110x020x020x120x340x5A

8位高点0x12

低8位数:0x34

距离值0x1234转换小数为4660mm

0x5A低8位和

测量温度

可向超声波模块发送测量命令测试温度后传值回UART端口

例举 :

发送命令0x550xA0x110x0x030x13

指令 :

返回命令:0x550xA0x110x020x030x000xFF0x14

8位高点0x00

低8位数:0xFF

输出值为0x00FF,转换小数为255实际温度为输出值的10%,因此为25.5摄氏度

注释 :

测量范围为-10至70摄氏度,为16符号整数负数存储二相补方法判断BIT15是否为1表示为负数,数据反转,结果中应加1

更多信息:http://arduino.cc/en/Reference/BitwiseXorNot

设置地址命令

模块默认地址为0x11广播地址为0xAB如果您不知道当前地址,但想设置地址, 您可以使用广播地址设置目标地址

例举 :

发送命令0x550xA0xAB0x010x550x110x11

指令 :

返回命令:0x550xA0x110x010x550xCC0x32

多重设备连接时可修改设备地址新地址必须在0x11和0x80间成功修改时模块返回0xCC失败时返回0xEE

设置超声波模块检测范围

您可以通过UART接口设置检测范围适当范围会增加声纳频率并提高其精度

例举 :

如果模块地址为0x11,范围限制为3840mm

0x550xA0x20x040x0F0x0x25/3840=0xF0

指令 :

返回命令:0x550xA0x110x000x040xCC0xE0

成功修改时模块返回0xCC失败时返回0xEE

注:默认设置最大值

读超声波模块检测范围

可透过UART接口读取检测范围

例举 :

模块地址为0x11

发送命令0x550xA0x110x000x050x15

指令 :

返回命令:0x550xA0x110x020x050x0F0x0x26

返回值0x0F0转换小数为3840mm

单位距离为m

设置超声波模块UART包

可搭建超声波模块UART接口

例举 :

模块地址为0x11

0x550xAA0x110x080x050x1E///setBBS

指令 :

返回命令:0x550xA0x110x010x080xCC0xE4

成功修改时模块返回0xCC失败时返回0xEE

包德拉特链表 :

命令类 备注
55A1101080019 设为 1200BPS
55A11010801A 设为24BPS
55A110108021B 设为4800BPS
55A110108031C 设为9600BPS
55A110108041D 设为14400BPS
55A110108051E 设为19200BPS
55A110108061F 设为 28800BPS
55A1101080720 设为38400BPS
55A11010821 搭建57600BPS
55A1101080922 设为 115200BPS
55A1101080A23 设为128000BPS
55A1101080B24 设为256000BPS

样本代码

文档段优先下载库

内含应用程序、用户和本地库#内含URM_RS485h#defineRs485TrigerPin2//pin选择RS485输出或输入#define DefateBaudate19200UL//debate006_4851表示没有最大距离限制设置最大距离限制距离范围并加速检测fine自定义TimesDuration 500//TimeExtation可用ms单元//定义变量和常量URM_RS485urm定制/选择串行端口与Urm_485传感器通讯时失效{//时间长度可定制//TODO写代码+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//偏差单元//TODO写代码Serial.println(theAddress)!Serial.print("Distance:")!Serial.print(theDistance)!Serial.println("mm")!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//温度单元//TODO写代码:串行打印Serial.println(theAddress)!Serial.print("Temperature:")!Serial.print(theTemperature)!串行.printn{//if receive maxDistance/maxDistance使用m单元//TODO写代码Serial.println(theAddress)!Serial.print("MaxDistance:")!Serial.print(theMaxDistance)!Serial.println("mm")!setmaxDistance上无效 {//后设置最大距离并获取回复后,此函数运行/set最大距离限制距离范围并加速检测/TODO在这里写代码:串行打印Serial.println(theAddress)!Serial.print("SetMaxDistance:")!{串行.printl/{串行.println('故障')+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++setBautrate上无效 {//bordrate设置并获取回复后,此函数运行/TODO在这里写代码:串行打印Serial.println(theAddress)!Serial.print("SetBaudrate:")!{串行.printl/{串行.println('故障')+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++setAddress上无效 {//blean为OperationService/TODO在这里写代码:串行打印Serial.println(theAddress)!Serial.print("SetAddress:")!{串行.printl/{串行.println('故障')+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++wrongStack () {//如果接收错误命令,此函数运行/TODO在这里写代码:串行.printn/RM_RS485案例:OnTimeOut:OnTimeOut!破解案例URM_RS485:OnRequestDistance:OrseDistance/urm.Refivedadadress/urm.ReceivedContent破解案例URM_RS485:OnRequestTe破解案例URM_RS485:OnExcernmaxDistance:OnRecernmaxDistance破解案例URM_RS485:OnSetmaxDistance:OnSetmaxDistance破解案例URM_RS485:OnSetBaudate破解案例URM_RS485:OnSetAddress破解案例URM_RS485:OnWrongStack:OnWrongStack破解默认中断//+代码失效搭建//添加循环码无效循环 () {命令处理静态无符号长发送器sif(millis-endTimer++1000{发送Timer=millis/Each函数从 URM_RS485返回状态RS485总线是否繁忙//如果总线繁忙,等待总线发布why(.urm.requestDistance/defaultadress){命令处理///l while(.urm.requestTemperative(defaultadress)) {//命令处理程序//命令处理/++++++++++++++++++++++//}///同时(.urm.setBaudrate/defaultadress/defaultBadrate){//命令处理程序setmaxDistance(Defaultadress,defaxDistance) {//命令处理程序///TimesOutDurations可定制//////l while(.urm.requestTemyacries////l while/m.requemaxDistance///setadress/defaultaddress//setBaudrate/defaultadress/defaultBaudate//setmaxDistance/defaultadress/defaxDistance///}}}

文件编译

DFshopping_car1.png获取URM06-RS485 Ultrasonic_SKU:SEN0149DFROBOT存储器或DFROBT分布器.

转向顶部