(SKU:SEN0152)URM06-ANALOG 大功率超声波测距模块
来自DFRobot Product 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,进行第二次测量 }
应用领域
机器人壁障导航
测距仪器
工程测量
工业控制