_SKU_SEN0152_URM06 ANALOG_大功率超声波测距模块 - jimaobian/DFRobotWikiCn GitHub Wiki
概 述
URM06是基于senscomp公司6500超声波静电换能器设计的一款大功率超声波。测量距离可达10米,另外一个显著的特点是超声波探测夹角只有15°,大多数的超声波是60°,这样就可以提高超声波测量角度分辨率。是机器人等应用领域壁障导航方案的首选。
性能描述
- 工作电源 :6V-12V
- 工作电流 :平时电流16mA,发送时瞬间电流2A
- 工作温度 :-10℃~+70℃
- 接口方式 :模拟电压输出
- 工作频率 :49.5KHZ。探头方向角 15°(-6dB)
- 测量范围 :20厘米到10米
- 模块尺寸 :喇叭口最大尺寸50mm,安装螺纹50mm,长40mm
- 模块重量 :45g
模块测量角度
安装尺寸
引脚定义
1.VCC : 电源 6-12V 2A直流
2.GND : 电源负
3.TRIG: 超声波TTL电平触发输入,低电平触发,低电平宽度不得小于50微秒。如果一直锁定到低电平,每隔100毫秒自动测量一次。
4.OUT : 超声波测距模拟电压量输出,输出的电压代表距离。每每0.33毫伏代表1毫米。
测试代码(用LCD显示)
#include <LCD4Bit_mod.h>
///////////URM06 模拟量输出模式测试代码/////////////////////
//使用LCDKEYPAD对距离进行显示
//显示的内容 distance:10123mm
///////////////////////////////////////////////////////////
#define TRIGGER 2 // 触发超声波
#define ANALOG 1 // ADC1 读取模块输出的模拟量
LCD4Bit_mod lcd = LCD4Bit_mod(2); //使用LCDKEYPAD对距离进行显示
void setup()
{
pinMode(TRIGGER, OUTPUT);
lcd.init();
lcd.clear();
}
void loop()
{
char temp = 0 ;
char thousand = 0 ;
char hundred = 0;
char ten = 0;
lcd.clear();
lcd.cursorTo(0, 0);
lcd.printIn("distance:");
digitalWrite(TRIGGER, LOW); // 使超声波信号使能接口低电平50μs
delayMicroseconds(50);
digitalWrite(TRIGGER, HIGH); // 使超声波信号使能接口高电平50μs
delayMicroseconds(50);
unsigned int distance = analogRead(ANALOG); // 读取URM06输出的模量
distance = (unsigned int)(((unsigned long)distance * 5000)/1024); //设置参考电压为5V,计算出单位为毫伏的采集到的模拟电压
distance = (unsigned int)((float)distance / 0.33f); //输出距离值,单位毫米,每0.33毫伏代表1毫米
temp = distance / 10000;
if(0 == temp)
lcd.print(' ');
else
lcd.print(0x30 + temp);
thousand = (distance % 10000) / 1000;
if(0 == temp && 0 == thousand)
lcd.print(' ');
else
lcd.print(0x30 + thousand) ;
hundred = (distance % 1000) / 100;
if(0 == temp && 0 == thousand && 0 == hundred)
lcd.print(' ');
else
lcd.print(0x30 + hundred) ;
ten = (distance % 100) / 10;
if(0 == temp && 0 == thousand && 0 == hundred && 0 == ten)
lcd.print(' ');
else
lcd.print(0x30 + ten);
temp = distance % 10;
lcd.print(0x30 + temp);
lcd.printIn("mm");
delay(100); //延迟100ms,进行第二次测量
}
测试代码(arduino 串口窗显示)
此方法更为简单,只需一篇arduino板即可。连线见代码注释部分:
///////////URM06 模拟量输出模式测试代码/////////////////////
//使用arduinoIDE 串口窗 对距离进行显示
//显示的内容 **mm
//
//连线:arduino A0-OUT;Arduino pin2-TRIG;VIN-VCC;GND-GND;
///////////////////////////////////////////////////////////
#define TRIGGER 2 // 触发超声波
void setup()
{
Serial.begin(9600);
pinMode(TRIGGER, OUTPUT);
}
void loop()
{
digitalWrite(TRIGGER, LOW); // 使超声波信号使能接口低电平,100ms/time
unsigned int distance = analogRead(A0); // 读取URM06输出的模量
distance = (unsigned int)(((unsigned long)distance * 5000)/1024); //设置参考电压为5V,计算出单位为毫伏的采集到的模拟电压
distance = (unsigned int)((float)distance / 0.33f); //输出距离值,单位毫米,每0.33毫伏代表1毫米
Serial.print(distance);
Serial.println("mm");
delay(100); //延迟100ms,进行第二次测量
}
应用领域
机器人壁障导航
测距仪器
工程测量
工业控制