简介
这是URM09系列的一款高性能非接触式超声波测距传感器,采用Gravity标准PH2.0-3P立式接口。通过主机的I/O口输出高低电平即可触发测距,传感器会将超声波的飞行时间转换成一段高电平脉宽输出,原理及使用上与传统的超声波测距模块SR04类似,不同点在于该传感器将输入和输出信号复用在一个信号端口上,主机仅需要一个I/O口便可以很方便的驱动此传感器实现距离测量,而且传感器使用了更先进的软硬件设计,确保了传感器具有更优的测量参数和可靠性。该模块兼容Arduino、树莓派等各种3.3V或5V主控板,测试平整墙面的有效测距范围为2 – 500cm,分辨率为1cm。
本款测距模块体积小,环境适用性强,精度高,测量范围广,即插即用,方便快捷,可以广泛应用于户外环境中。是机器人自动避障行走,汽车倒车报警器、门铃、警戒报警器、地铁安全线提示、银行及取款机的一米线提示等等项目的绝佳选择。
技术规格
- 供电电压:3.3V~5.5V DC
- 工作电流:< 20mA
- 工作温度范围 :-10℃~+70℃
- 有效测距量程:2cm~500cm
- 分辨率:1cm
- 精度:1%
- 声学频率: 40±2KHz
- 测量频率:25Hz Max
- 模块尺寸:47mm × 22 mm
探头测量角度
接口说明
引脚 | 引脚说明 |
---|---|
- | 电源地 |
+ | 电源输入(3.3V-5.5V) |
D | 数字IO(TRIG/ECHO时分复用,内部下拉) |
使用教程
硬件连接
使用Gravity 3Pin数字传感器线可以方便的将传感器与Arduino主板连接,如图:
时序图###
URM09 Ultrasonic Sensor (Gravity Trig)是一款简洁实用的超声波传感器,采用数字IO电平触发测距,触发信号与接收信号通过时分复用共用一个引脚,具体时序如图所示:
1、此时传感器端为输入模式,主机需设为输出模式,由主机端给出10us高电平触发信号,然后主机更改端口状态为输入,等待传感器返回信号。
2、传感器输出高电平时间等于超声波往返飞行时间(最长脉宽时间35000us)。
Arduino代码编程
主板输出一个约几十微秒的高电平触发传感器开始测距,传感器启动测距后便输出一个正比于超声波飞行时间的高电平脉冲,通过检测高电平时间,经过简单的计算就可以得到距离值
演示代码
/*!
This example is the ultrasonic distance measurement of the module.
Copyright [DFRobot](http://www.dfrobot.com), 2020
Copyright GNU Lesser General Public License
version V1.0
date 29/10/2020
*/
#define VELOCITY_TEMP(temp) ( ( 331.5 + 0.6 * (float)( temp ) ) * 100 / 1000000.0 ) // The ultrasonic velocity (cm/us) compensated by temperature
int16_t trigechoPin = 11;
uint16_t distance;
uint32_t pulseWidthUs;
void setup() {
Serial.begin(9600);
delay(100);
}
void loop() {
int16_t dist, temp;
pinMode(trigechoPin,OUTPUT);
digitalWrite(trigechoPin,LOW);
digitalWrite(trigechoPin,HIGH);//Set the trig pin High
delayMicroseconds(10); //Delay of 10 microseconds
digitalWrite(trigechoPin,LOW); //Set the trig pin Low
pinMode(trigechoPin,INPUT);//Set the pin to input mode
pulseWidthUs = pulseIn(trigechoPin,HIGH);//Detect the high level time on the echo pin, the output high level time represents the ultrasonic flight time (unit: us)
distance = pulseWidthUs * VELOCITY_TEMP(20) / 2.0;//The distance can be calculated according to the flight time of ultrasonic wave,/
//and the ultrasonic sound speed can be compensated according to the actual ambient temperature
Serial.print(distance, DEC);
Serial.println("cm");
delay(500);
}
Mind+ 上传模式编程
1、下载及安装软件。下载地址:http://mindplus.cc 详细教程:安装教程
2、切换到“上传模式”。 详细教程:Mind+基础wiki教程-上传模式编程流程
3、“扩展”中选择“主控板”中的“Arduino Uno”。传感器中搜索超声波加载SEN0001的库。 详细教程:Mind+基础wiki教程-加载扩展库流程
4、进行编程,程序如下图(trig和echo均选择传感器连接的同一个引脚即可):
5、菜单“连接设备”,“上传到设备”
6、程序上传完毕后,打开串口即可看到数据输出。详细教程:Mind+基础wiki教程-串口打印
Mind+ Python模式行空板编程
1、下载及安装软件。下载地址:http://mindplus.cc 详细教程:安装教程
2、切换到“Python模式”。
3、“扩展”中选择“行空板”,“PinPong”中选择“超声波测距传感器”。
4、进行编程,程序如下图(trig和echo均选择传感器连接的同一个引脚即可,引脚积木从行空板扩展库中拖出):
5、菜单“连接远程终端”,连接行空板。
6、点击运行程序 ,程序上传完毕后,终端或屏幕可看到数据输出。
注意:行空板上的PinPong版本需要是0.6.0及以上版本,否则结果一直是0。升级PinPong库方法
示例一:终端输出结果:
示例二:屏幕显示结果:
Makecode 图形化编程
1、打开makecode。网站地址:https://makecode.microbit.org
2、加载URM09_Trig的Makecode库。库链接:https://github.com/DFRobot/pxt-DFRobot_URM09_Trig
3、进行编程,程序如下图:
4、编译并将程序烧录microbit。
5、使用串口助手查看数据。
探测角度及灵敏度说明
超声波传感器的物理特性决定了其实际具有不规则的探测区域,因此超声波测距传感器的探测角度难以被准确的定义。我们分别使用了2种参考目标障碍物对多样本产品进行了测试,对应目标的参照检测区域如下图示:
更多
疑难解答
如果遇到技术问题,请登陆到我们的售后论坛留言,我们会尽快解答您的问题。
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖!