超声波传感器

简介

这是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

探头测量角度

URM_37_V3.2_1.jpg

接口说明

接口说明
引脚 引脚说明
- 电源地
+ 电源输入(3.3V-5.5V)
D 数字IO(TRIG/ECHO时分复用,内部下拉)

使用教程

硬件连接

使用Gravity 3Pin数字传感器线可以方便的将传感器与Arduino主板连接,如图:

SEN0388接线示意图

时序图###

URM09 Ultrasonic Sensor (Gravity Trig)是一款简洁实用的超声波传感器,采用数字IO电平触发测距,触发信号与接收信号通过时分复用共用一个引脚,具体时序如图所示:



时序图


1、此时传感器端为输入模式,主机需设为输出模式,由主机端给出10us高电平触发信号,然后主机更改端口状态为输入,等待传感器返回信号。

2、传感器输出高电平时间等于超声波往返飞行时间(最长脉宽时间35000us)。

Arduino代码编程

主板输出一个约几十微秒的高电平触发传感器开始测距,传感器启动测距后便输出一个正比于超声波飞行时间的高电平脉冲,通过检测高电平时间,经过简单的计算就可以得到距离值

演示代码

SEN0388测距演示
/*!
       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模式行空板M10编程

1、下载及安装软件。下载地址:http://mindplus.cc 详细教程:安装教程
2、切换到“Python模式”。

3、“扩展”中选择“行空板”,“PinPong”中选择“超声波测距传感器”。

4、进行编程,程序如下图(trig和echo均选择传感器连接的同一个引脚即可,引脚积木从行空板扩展库中拖出):
5、菜单“连接远程终端”,连接行空板。
6、点击运行程序 ,程序上传完毕后,终端或屏幕可看到数据输出。

注意:行空板上的PinPong版本需要是0.6.0及以上版本,否则结果一直是0。升级PinPong库方法

示例一:终端输出结果:


示例二:屏幕显示结果:


Mind+ 上传模式行空板K10编程

功能说明

持续读取障碍物距离,并在 K10 屏幕显示厘米值。

硬件准备

器材 数量 说明
行空板 K10 1 单板主控
URM09 超声波传感器 1
3Pin 白色硅胶线 1 连接主控板与传感器
USB 线 1 连接 K10 单板与电脑

软件准备

1、下载及安装软件。下载地址:http://mindplus.cc 详细教程:安装教程
2、切换到“上传模式”。

v1 v2
v1打开上传模式 v2打开上传模式

扩展库说明

“扩展”中选择“行空板K10”,“用户库”或者“模块扩展”中选择“trg超声波测距传感器”。
trig超声波库

接线说明

名称 接线说明
行空板 K10 主控
URM09 超声波传感器 接行空板 K10 P0
3Pin 白色硅胶线 连接主控板与传感器

程序示例

初始化 K10 和超声波模块,在循环中读取距离。

运行效果

移动平整障碍物时显示距离随之变化。

trig超声波测距效果

Makecode 图形化编程

1、打开makecode。网站地址:https://makecode.microbit.org

2、加载URM09_Trig的Makecode库。库链接:https://github.com/DFRobot/pxt-DFRobot_URM09_Trig

3、进行编程,程序如下图:



4、编译并将程序烧录microbit。

5、使用串口助手查看数据。

探测角度及灵敏度说明

超声波传感器的物理特性决定了其实际具有不规则的探测区域,因此超声波测距传感器的探测角度难以被准确的定义。我们分别使用了2种参考目标障碍物对多样本产品进行了测试,对应目标的参照检测区域如下图示:

更多

DFshopping_car1.png DFRobot商城购买链接

疑难解答

如果遇到技术问题,请登陆到我们的售后论坛留言,我们会尽快解答您的问题。

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖!