导 言
超声波传感器释放超声波,通过测量超声波脉冲时间触摸对象并返回传感器,传感器距离目标对象计算广度用于检测位移、厚度、距离、水位、物位透明对象
URM06-RS485超声波传感器提供短距离检测,范围从20-10m不等,聚氯乙烯嵌套并匹配35毫米电管安装与RS485接口并用高输出声波电源工作超声波传感器从20cm到1000cm检测对象并用1cm分辨率提供射程信息URM06有15度波束角,敏感度极佳检测软目标最有效类似传感器广泛用于职业移动机器人系统,如Pioneer机器人
URM06序列传感器是市场中波角、感知度和精度方面最优超声波传感器
规范化
- 工作电压:6V-12V(5V可接受但不推荐)
- 速率电流:16m
- 皮克洋流2A
- 接口:RS-485
- 工作频率:49.5KHZ
- 工作温度:-10°C~+70°C
- 检测Angle:15o(6dB)
- 检测范围:20cm~10m
- Size: 50mm(diameter)*43mm(length)
- 挂载线程直径35毫米
- 重度:50g
应用
- 机器人导航
- 避免阻塞
- 测量距离设备
- 工程测量工具
- 工业控制系统
连接图
Pin定义
- VCC: 6~12V@max2A
- GND:地面
- A:RS-485
- B:RS-485B插针
通信协议
默认信息 :
- 默认包德罗特:192008N1
- 默认地址:0x11
- 通信命令格式
通信命令回归框架格式
页眉 | 地址识别 | 长度 | md | 数据类 | 苏姆 |
---|---|---|---|---|---|
55号 | AA | 11 | N级 | 01 | 数据1~DataN |
PS:和字节值前所有字节值之和保留一字节总和值
测量距离
可向超声波模块发送测量命令测量距离后传值回UART端口
例举 :
发送命令0x550xA0x110x0x020x12
指令 :
- Header----------------0x55
- Header----------------0xAA
- Address---------------0x11
- Length-----------------0x00
- 读距离-0x02
- 检验Sum-
返回命令:0x550xA0x110x020x020x120x340x5A
8位高点0x12
低8位数:0x34
距离值0x1234转换小数为4660mm
0x5A低8位和
测量温度
可向超声波模块发送测量命令测试温度后传值回UART端口
例举 :
发送命令0x550xA0x110x0x030x13
指令 :
- Header-----------------------0x55
- Header-----------------------0xAA
- Address-----------------------0x11
- Length------------------------0x00
- 读温度-----0x03
- Check Sum-------------------0x13
返回命令: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
指令 :
- Header-----------------------0x55
- Header-----------------------0xAA
- 广播地址-0xAB
- Length------------------------0x01
- 地址设置CMD-
- Target Address---------------0x11
- Check Sum--------------------0x11
返回命令:0x550xA0x110x010x550xCC0x32
多重设备连接时可修改设备地址新地址必须在0x11和0x80间成功修改时模块返回0xCC失败时返回0xEE
设置超声波模块检测范围
您可以通过UART接口设置检测范围适当范围会增加声纳频率并提高其精度
例举 :
如果模块地址为0x11,范围限制为3840mm
0x550xA0x20x040x0F0x0x25/3840=0xF0
指令 :
- Header-----------------------0x55
- Header-----------------------0xAA
- Address-----------------------0x11
- Length------------------------0x02
- 置值CMD-
- High 8-bit---------------------0x0F
- Low 8-bit----------------------0x00
- Check Sum--------------------0x25
返回命令:0x550xA0x110x000x040xCC0xE0
成功修改时模块返回0xCC失败时返回0xEE
注:默认设置最大值
读超声波模块检测范围
可透过UART接口读取检测范围
例举 :
模块地址为0x11
发送命令0x550xA0x110x000x050x15
指令 :
- Header-----------------------0x55
- Header-----------------------0xAA
- Address----------------------0x11t
- Length-----------------------0x00
- 读值CMD-
- Check Sum-------------------0x15
返回命令:0x550xA0x110x020x050x0F0x0x26
返回值0x0F0转换小数为3840mm
单位距离为m
设置超声波模块UART包
可搭建超声波模块UART接口
例举 :
模块地址为0x11
0x550xAA0x110x080x050x1E///setBBS
指令 :
- Header-----------------------0x55
- Header-----------------------0xAA
- Address----------------------0x11
- Length------------------------0x01
- 包德拉特CMD-
- Target baudrate--------------0x05
- Check Sum--------------------0x1E
返回命令: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///}}}
文件编译
获取URM06-RS485 Ultrasonic_SKU:SEN0149DFROBOT存储器或DFROBT分布器.