US-015 超声波测距模块 超声波传感器 US-020升级版 送全套资料
资料下载地址:http://pan.baidu.com/s/1c0AfkIG
US-015超声波测距模块
1. 概述
US-015是目前市场上分辨率最高,重复测量一致性最好的超声波测距模块;US-015的分辨率高于1mm,可达0.5mm,测距精度高;重复测量一致性好,测距稳定可靠。
US-015超声波测距模块可实现2cm~4m的非接触测距功能,供电电压为5V,工作电流为2.2mA,支持GPIO通信模式,工作稳定可靠。
2. 分辨率及可重复性测试截图
图2.1为手拿US-015进行测量,手有微小抖动时的测量截图,可见小于1mm的抖动都能测量出来;显示分辨率为0.01mm。
图2.1:手持US-015微小抖动测量截图
图2.2为将US-015固定后,经过一段时间测量后的截图,可见重复测量一致性好。显示分辨率为0.01mm
图2.2:重复测量截图
图2.1及图2.2所用例程请参考后文附录。
3. 主要技术参数
电气参数 | US-015超声波测距模块 |
工作电压 | DC 5V |
工作电流 | 2.2mA |
工作温度 | 0~+70度 |
输出方式 | GPIO |
感应角度 | 小于15度 |
探测距离 | 2cm-400cm |
探测精度 | 0.1cm+1% |
分辨率 | 高于1mm(可达0.5mm) |
4. 本模块实物图及尺寸
本模块如图4.1和图4.2所示:
图4.1:US-015正面图 图4.2:US-015背面图
本模块的尺寸:45mm*20mm*1.2mm。板上有两个半径为1mm的机械孔,如图4.3所示:
图4.3:US-015尺寸图
5. 接口说明
本模块有一个接口:4 Pin供电及通信接口。
4 Pin接口为2.54mm间距的弯排针,如图5.1所示:
图5.1:4 Pin接口
从左到右依次编号1,2,3,4。它们的定义如下:
-
1号Pin:接VCC电源(直流5V)。
-
2号Pin:接外部电路的Trig端,向此管脚输入一个10uS以上的高电平,可触发模块测距。
-
3号Pin:接外部电路的Echo端,当测距结束时,此管脚会输出一个高电平,电平宽度为超声波往返时间之和。
-
4号Pin:接外部电路的地。
6. 测距工作原理
模块测距的时序如图6.1所示:
图
6.1:US-015测距时序图
图6.1表明:只需要在Trig管脚输入一个10US以上的高电平,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检测到回波信后,通过Echo管脚输出。
根据Echo管脚输出高电平的持续时间可以计算距离值。即距离值为:(高电平时间*340m/s)/2。
7.超过测量范围时返回值及测量周期
当测量距离超过US-015的测量范围时,US-015仍会通过Echo管脚输出高电平的信号,高电平的宽度约为80ms。如图7.1所示:
图7.1:超出测量范围返回值
测量周期:当接收到US-015通过Echo管脚输出的高电平脉冲后,便可进行下一次测量,所以测量周期取决于测量距离,当US-015距离被测物体很近时,Echo返回的脉冲宽度较窄,测量周期就很短;当US-015距离被测物体比较远时,Echo返回的脉冲宽度较宽,测量周期也就相应的变长。
最坏情况下,被测物体超出US-015的测量范围,此时返回的脉冲宽度最长,约为80ms,所以最坏情况下的测量周期稍大于80ms即可(取85ms足够)。
US-015高精度测距例程,(Arduino例程):
unsigned int EchoPin = 2;
unsigned int TrigPin = 3;
unsigned long Time_Echo_us = 0;
//Len_mm_X100 = length*100
unsigned long Len_mm_X100 = 0;
unsigned long Len_Integer = 0; //
unsigned int Len_Fraction = 0;
void setup()
{
Serial.begin(9600);
pinMode(EchoPin, INPUT);
pinMode(TrigPin, OUTPUT);
}
void loop()
{
digitalWrite(TrigPin, HIGH);
delayMicroseconds(50);
digitalWrite(TrigPin, LOW);
Time_Echo_us = pulseIn(EchoPin, HIGH);
if((Time_Echo_us < 60000) && (Time_Echo_us > 1))
{
Len_mm_X100 = (Time_Echo_us*34)/2;
Len_Integer = Len_mm_X100/100;
Len_Fraction = Len_mm_X100%100;
Serial.print("Present Length is: ");
Serial.print(Len_Integer, DEC);
Serial.print(".");
if(Len_Fraction < 10)
Serial.print("0");
Serial.print(Len_Fraction, DEC);
Serial.println("mm");
}
delay(1000);
}
HC-SR04超声波模块 HC-SR04 超声波 支持Arduino/51/STM32
超声波固定架链接 https://item.taobao.com/item.htm?id=37687769017
资料下载;http://pan.baidu.com/s/1sjHKDI1
1、本模块性能稳定,测度距离精确。能和国外的SRF05,SRF02等超声波测距模块相媲美。模块高精度,盲区(2cm)超近,稳定的测距是此产品成功走向市场的有力根据!此模块完全谦容GH-311防盗模块
2 主要技术参数:
1:使用电压:DC5V 2:静态电流:小于2mA
3:电平输出:高5V 4:电平输出:底0V
5:感应角度:不大于15度 6:探测距离:2cm-450cm
7:高精度:可达0.3cm
板上接线方式,VCC、trig(控制端)、 echo(接收端)、 out(空脚)、 GND
注: TRIP引脚是内部上拉10K的电阻,用单片机的IO口拉低TRIP引脚,然后给一个10us以上的脉冲信号。
OUT脚为此模块作为防盗模块时的开关量输出脚,测距模块不用此脚!
注意:模块应先插好在电路板上再通电,避免产生高电平的误动作,如果产生了,重新通电方可解决。
本模块可提供测距程序:C51,PIC18F877,义龙单片机,三种MCU的测试参考。
3、URF04模块工作原理:
(1)采用IO触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.
测试距离=(高电平时间*声速(340M/S))/2;
本产品使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了~~
模块工作原理:
(1)采用IO触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是
超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2;
本模块可提供全套测距程序:C51,PIC18F877,超声波LCD1602显示,超声波LCD12864显示,数码管显示,串口显示等,测距参考程序。
供以下全套资料
HC-SR04P超声波测距模块 测距传感器模块 3-5.5V宽电压 YS-51
具体实验:
材料:
Arduino UNO 板子*1,
超声波模块 HC-SRO4*1 ;US-015*1 ;HC-SRO4P*1
面包板 *1
杜邦线公对母 *4
采用IO触发测距,给至少10us的高电平信号;模块自动发送8个40KHz的方波,自动检测是否有信号返回;
有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间;
测试距离=(高电平时间*声速(340m/s))/2。
接线图:
测试代码:
const int TrigPin = 2; //发出超声波
const int EchoPin = 3; //收到反射回来的超声波
float cm; //因为测得的距离是浮点型的
void setup()
{
Serial.begin(9600); //设置波特率
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop()
{
digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2); // delayMicroseconds在更小的时间内延时准确
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW); //通过这里控制超声波的发射
cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm
cm = (int(cm * 100.0)) / 100.0; //保留两位小数
Serial.print("Distance:");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000);
}
pulseIn函数用于读取引脚脉冲的时间长度,脉冲可以是HIGH或LOW。如果是HIGH,函数将先等引脚变为高电平,然后开始计时,一直到变为低电平为止。
返回脉冲持续的时间长短, 单位为ms。如果超时还没有读到的话, 将返回0。 pulseIn()单位为微秒,声速344m/s,所以距离cm=344*100/1000000*pulseIn()/2约等于pulseIn()/58.0
实物接线图:
HC-SR04P实验结果:
HC-SR04P:
盲区,在3cm左右,小于3cm就是出现反弹不准;超过3米多就不准了
HC-SR04实验结果:
HC-SR04:
盲区,在3cm左右,小于3cm就是出现反弹不准;能测到3.2米远;
近距离HC-SR04P稳准一些,HC-SR04不够稳准,但能测得比HC-SR04P远一些;
US-015实验结果:
US-015性能在3个当中表现最好,无论近距离,还是远距离都比较稳准,数值波动非常小,测距也最远;
但都很难测得标称的2cm-4m的范围;都在3cm-3.2M范围内,可能是空间所限,暂时没拿到最远距离测量数据;
参考链接:
arduino-超声波测距
https://blog.csdn.net/mcuwangzai/article/details/77411420