URM05_High_Power_Ultrasonic_Range_Finder__SKU_SEN0003_ - jimaobian/DFRobotWikiCn GitHub Wiki
概 述
URM05是基于senscomp公司6500超声波静电换能器设计的一款大功率超声波。测量距离可达10米, 另外一个显著的特点是超声波探测夹角只有15°,而大多数的超声波是60°。这样就可以提高超声波测量角度分辨率。是机器人等应用领域壁障导航方案的首选.
性能描述
- 工作电源:工作电压5V
- 工作电流:平时电流55mA,发送时瞬间电流2A
- 工作温度范围 :0℃~+40℃
- 接口方式:RS485接口 和 TTL电平脉宽
- 工作频率49.5KHZ。探头方向角 15°(-6dB)
- 超声波距离测量:12厘米到10.5米
- 工作模式:单回声模式和多回声模式
- 模块尺寸:长度46mm,宽度40mm,高度21mm
- 模块重量:19g
模块测量角度
安装尺寸
TTL触发模式引脚定义
1.VDC : 电源 5V 2A直流。
2.GND : 电源负。
3.ECHO: 输出脚输出的高电平脉宽代表距离。25.4微秒等于1 英寸(2.54厘米)。
4.INIT : Initiate 开始触发引脚,低电平触发,低电平宽度不得小于50微秒。
RS485接口命令说明
通信参数
波特率 19200 bps
数据位 8 bit
停止位 1 bit
校验位 None
流控 None
通信命令帧格式为
帧头1 帧头2 对方地址 数据长度 命令 数据1 数据2 数据n 校验和
0x55 0xAA 1字节 1字节 1字节 数据1~n 1字节
测距 主机通过RS485接口向超声波模块发送一帧命令,触发模块开始测距,之后接收模块返回的距离值命令。
说明:
对方地址-----超声波模块地址
数据长度----- 0x00
命令------0x01
如果测量失败,则返回距离值为0。
例如、 超声波模块地址为 0x12,则主机发送
0x55 0xAA 0x12 0x00 0x01 0x12
超声波模块返回命令为
0x55 0xAA 0x12 0x02 0x01 0x33 0x44 0x8B
其中 0x33 为距离的高位数据
0x44 为距离的低位数据
距离值为 0x3344
单位为 (毫米)
温度 主机通过RS485接口读取超声波模块测得的当前温度。
说明:
对方地址-----超声波模块地址
数据长度----- 0x00
命令------0x03
例如、 超声波模块地址为 0x12,则主机发送
0x55 0xAA 0x12 0x00 0x03 0x14
超声波模块返回命令为
0x55 0xAA 0x12 0x02 0x03 0x33 0x44 0x8D
其中 0x33 为温度的高位数据
0x44 为温度的低位数据
温度值为 0x3344
注意:此温度值是放大了10倍之后的值。如温度值值为 323,则实际温度是 32.3°C
设置超声波模块地址 主机通过RS485接口设置超声波模块地址。
说明:
对方地址-----0xAB
数据长度----- 0x01
命令------0x55
例如、 设置超声波模块地址为 0x12,则主机发送
0x55 0xAA 0xAB 0x01 0x55 0x12 0x12
设置成功则超声波模块返回命令为
0x55 0xAA 0xAB 0x01 0x55 0x12 0x12
设置超声波模块测量距离上限值 主机通过RS485接口设置超声波模块测量距离上限值。
说明:
对方地址-----超声波模块地址
数据长度----- 0x02
命令------0x04
例如、 超声波模块地址为 0x12,要设置测量上限值为 2000毫米,则主机发送
0x55 0xAA 0x12 0x02 0x04 0x20 0x00 0x37
注意:
此命令的数据1和数据2的值为 BDC码类型。
如值为 0x32 0x20 ,则测距上限值为3220毫米。
读取超声波模块测量距离上限值 主机通过RS485接口读取超声波模块测量距离上限值。
说明:
对方地址-----超声波模块地址
数据长度----- 0x00
命令------0x05
例如、 超声波模块地址为 0x12,要读取该模块测量上限值,则主机发送
0x55 0xAA 0x12 0x00 0x05 0x16
超声波模块返回上限值格式为
0x55 0xAA 0x12 0x02 0x04 0x20 0x00 0x37
注意:
此命令的数据1和数据2的值为 BDC码类型。
如值为 0x20 0x00 ,则测距上限值为2000毫米。
例子代码
////////////URM05 v2 通过TTL触发模式读取 arduino测试例子 /////////////////////////
#define INIT 4 // 触发超声波
#define ECHO 5 // 接收回波
#define LED 13 //L灯做指示
void setup()
{
Serial.begin(9600);
pinMode(LED,OUTPUT);
pinMode(INIT, OUTPUT);
pinMode(ECHO, INPUT);
digitalWrite(INIT, HIGH); //平时触发脚输出高
}
void loop()
{
digitalWrite(INIT, LOW); // 使超声波信号使能接口低电平2μs
delayMicroseconds(10);
digitalWrite(INIT, HIGH); // 使超声波信号使能接口高电平10μs
delayMicroseconds(10);
int distance = pulseIn(ECHO,HIGH); // 读高脉冲时间
Serial.println(distance); //输出距离值,单位毫米
delay(50);
if (distance >=300)
digitalWrite(LED,LOW); //如果距离大于30厘米L灯亮起
else
digitalWrite(LED,HIGH);//如果距离小于30厘米L灯熄灭
}
应用领域
机器人壁障导航
测距仪器
工程测量
工业控制