超声波传感器

简介

这是一款开放式双探头超声波测距模块,采用Gravity标准PH2.0-3P立式贴片座接口,输出为模拟电压,兼容arduino、树莓派等各种3.3V或5V逻辑电平的主控板。 该模块自带温度补偿,避免高温或低温环境对测量结果产生影响。模拟电压值输出,ADC简单转化即可直接读取距离值,简化操作步骤,降低实验难度。经测试,平整墙面的有效测距量程为2–500cm,分辨率为1cm,误差约为±1%。双探头设计,极大缩小探测盲区。板载状态指示小灯,方便查看测试进程。 本款测距模块体积小,环境适用性强,精度高,测量范围广,即插即用,方便快捷,可以广泛应用于户外环境中,尤其适用于温差变化较快的环境。是机器人自动避障行走,汽车倒车报警器、门铃、警戒报警器、地铁安全线提示、银行及取款机的一米线提示等等项目的绝佳选择。

⚠由于esp32芯片模拟输入精度和电压问题,esp32芯片相关主控板(firebeetle、掌控板)无法正常作为精确测距使用。

技术规格

模块测量角度

URM_37_V3.2_1.jpg

接口说明

URM09(Gravity Analog)V1.0模块

引脚 引脚说明
- 电源地
+ 电源输入(3.3V-5.5V)
A 模拟输出

使用教程

URM09是一款简洁实用的超声波传感器,它采用的是模拟电压输出方式,通过Gravity 3Pin模拟传感器线可以方便的与主板连接

硬件连接

将模块通过A1模拟量接口与UNO连接,如图:
URM09(Gravity Analog)(V1.0)连线图

Arduino代码编程

模块输出为与距离成正比的模拟电压值,通过ADC采集输出后,经过简单的处理就可以得到距离值

演示代码
URM09(Gravity Analog)(V1.0)距离读取

// # Editor     : roker
// # Date       : 18.02.2019

// # Product name: URM09 Ultrasonic Sensor(Gravity Analog)(V1.0)
// # Product SKU : SEN0307
// # Version     : 1.0


#define  MAX_RANG      (520)//the max measurement vaule of the module is 520cm(a little bit longer than  effective max range)
#define  ADC_SOLUTION      (1023.0)//ADC accuracy of Arduino UNO is 10bit

int sensityPin = A0;    // select the input pin
void setup() {
  // Serial init
  Serial.begin(9600);
}
float dist_t, sensity_t;
void loop() {
  // read the value from the sensor:
  sensity_t = analogRead(sensityPin);
  // turn the ledPin on

  dist_t = sensity_t * MAX_RANG  / ADC_SOLUTION;//
  Serial.print(dist_t, 0);
  Serial.println("cm");

  delay(500);

}

Mind+ 上传模式编程

  1. 下载及安装软件。下载地址:https://www.mindplus.cc
  2. 切换到上传模式
  3. 扩展中选择主控板中的Arduino Uno传感器中选择模拟量超声波测距传感器
  4. 进行编程,程序如下图:
  5. 菜单连接设备上传到设备
  6. 程序上传完毕后,打开串口即可看到数据输出。

Mind+ Python模式编程(行空板)

Mind+Python模式为完整Python编程,因此需要能运行完整Python的主控板,此处以行空板为例说明

连接图

注意:

模拟量超声波支持的引脚有 0、1、2、3、4、10、21、22,积木块中标 “ A ” 的引脚

操作步骤

1、下载及安装官网最新软件。下载地址:https://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装

2、切换到“Python模式”。“扩展”中选择“官方库”中的“行空板”和“pinpong库”中的”pinpong初始化“和“模拟超声波测距传感器”。切换模式和加载库的详细操作链接

3、进行编程

4、连接行空板,程序点击运行后,可在终端查看数据。行空板官方文档-行空板快速上手教程 (unihiker.com)

代码编程

以pinpong库为例,行空板官方文档-行空板快速上手教程 (unihiker.com)

#  -*- coding: UTF-8 -*-

# MindPlus
# Python
from pinpong.libs.dfrobot_analog_urm09 import ANALOG_URM09
from pinpong.extension.unihiker import *
from pinpong.board import Board,Pin
from pinpong.board import Board
import time


Board().begin()
urm091 = ANALOG_URM09(Pin((Pin.P21)))

while True:
    print(urm091.distance_cm())
    time.sleep(0.2)

探测角度及灵敏度说明

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

更多

DFshopping_car1.png DFRobot商城购买链接

疑难解答

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

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