< >
Home » Arduino超声波传感器 » Arduino超声波传感器-URM06-ANALOG 大功率超声波测距模块

Arduino超声波传感器-URM06-ANALOG 大功率超声波测距模块

外 观

外观

概 述

  • URM06是基于senscomp公司6500超声波静电换能器设计的一款大功率超声波。
  • 测量距离可达10米。
  • 超声波探测夹角只有15°,而大多数的超声波是60°。这样就可以提高超声波测量角度分辨率。是机器人等应用领域壁障导航方案的首选.

性能描述

  • 工作电源 :6V-12V
  • 工作电流 :平时电流16mA,发送时瞬间电流2A
  • 工作温度 :-10℃~+70℃
  • 接口方式 :模拟电压输出
  • 工作频率 :49.5KHZ。探头方向角 15°(-6dB)
  • 测量范围 :20厘米到10米
  • 模块尺寸 :喇叭口最大尺寸50mm,安装螺纹50mm,长40mm
  • 模块重量 :45g

模块测量角度

测量角度
方向角 15°(-6dB)

安装尺寸

尺寸
安装尺寸

引脚定义

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;5V-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,进行第二次测量
}

应用领域

  • 机器人壁障导航

机器人应用

  • 测距仪器

测距仪器

  • 工程测量

工程测量

  • 工业控制

工业控制

  • 接线图

连接图

Connection Diagram

本文整理于DFRobot wiki

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none