当前位置:   article > 正文

【HaaS Python硬件积木】HCSR04超声波测距传感器_sr04超声波传感器测量距离

sr04超声波传感器测量距离

来这里发现更多拿来即用的传感器

HaaS开发框架HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件。https://haas.iot.aliyun.com/solution/hardware

一、产品简介

   HC-SR04超声波传感器使用声纳来确定物体的距离,其工作原理类似与蝙蝠。测量范围从2厘米到450厘米,HC-SR04超声波传感器上配有超声波发射器和接收器两个模块。

   超声波测距传感器是数字接口类型,其基本工作过程如下:

  • 发射器(触发引脚-Trig),发送信号 一段高频声音
  • 当信号遇到一个物体时,它会被反射
  • 然后发射器(回声引脚-Echo)接收该信号

引脚定义

  • VCC:DC-5V
  • Trig:触发(输入)
  • Echo:回声(输出)
  • GND:地

二、技术参数

  • 电源:+ 5V DC
  • 静态电流:<2mA
  • 工作电流:15mA
  • 有效角度:<15°
  • 测距:2厘米 - 450厘米
  • 分辨率:0.3厘米
  • 测量角度:30度
  • 触发输入脉冲宽度:10uS
  • 尺寸:45mm x 20mm x 15mm

三、软件接口

超声波测距传感器HaaS Python驱动:下载地址

HCSR04(trigObj,echoObj) - 创建超声波传感器对象

  • 函数原型

hcsr04Obj = HCSR04(trigObj,echoObj)

  • 参数说明
参数类型必选参数?说明
trigObjGPIOGPIO配置输出,触发引脚,调用此函数前需确保trigObj对象已经处于open状态
echoObjGPIOGPIO配置输入,测量引脚,调用此函数前需确保echoObj对象已经处于open状态
  • 返回值

HCSR04对象成功,返回HCSR04对象;HCSR04对象创建失败,抛出Exception

  • 示例代码
  1. import hcsr04
  2. from driver import GPIO
  3. print("Testing HCSR04 ...")
  4. echoDev = GPIO()
  5. echoDev.open("echo")
  6. trigDev = GPIO()
  7. trigDev.open("trig")
  8. hcsr04Dev = hcsr04.HCSR04(trigDev,echoDev)
  • 输出
Testing HCSR04 ...

measureDistance() - 获取超声波测量的距离

  • 函数功能:

获取超声波测量的距离

  • 函数原型:

HCSR04.measureDistance()

  • 参数说明:

  • 返回值:

返回值为cm单位的距离值

  • 示例:
  1. import hcsr04
  2. from driver import GPIO
  3. import utime
  4. print("Testing HCSR04 ...")
  5. echoDev = GPIO()
  6. echoDev.open("echo")
  7. trigDev = GPIO()
  8. trigDev.open("trig")
  9. hcsr04Dev = hcsr04.HCSR04(trigDev,echoDev)
  10. while True: # 无限循环
  11. distance = hcsr04Dev.measureDistance()
  12. print(str(distance)+' CM')
  13. utime.sleep(1) # 打印完之后休眠1
  • 输出
  1. Testing HCSR04 ...
  2. 34 CM
  3. 492 CM

四、接口案例

此使用实例在board.json中定义了名为IR的GPIO类型的对象。在Python脚本中执行一次获取IR人体红外传感器状态值并打印在日志中。

  • 案例代码
  1. {
  2. "name": "board-name",
  3. "version": "1.0.0",
  4. "io": {
  5. "trig": {
  6. "type": "GPIO",
  7. "port": 25,
  8. "dir": "output",
  9. "pull": "pullup"
  10. },
  11. "echo": {
  12. "type": "GPIO",
  13. "port": 26,
  14. "dir": "input",
  15. "pull": "pullup"
  16. }
  17. }
  18. }
  1. import hcsr04
  2. from driver import GPIO
  3. import utime
  4. print("Testing HCSR04 ...")
  5. echoDev = GPIO()
  6. echoDev.open("echo")
  7. trigDev = GPIO()
  8. trigDev.open("trig")
  9. hcsr04Dev = hcsr04.HCSR04(trigDev,echoDev)
  10. while True: # 无限循环
  11. distance = hcsr04Dev.measureDistance()
  12. print(str(distance)+' CM')
  13. utime.sleep(1) # 打印完之后休眠1
  • 输出
  1. Testing HCSR04 ...
  2. 34 CM
  3. 492 CM

五、工作原理

超声波工作示意图

基本原理

  • 采用IO口Trig触发测距,对Trig口输出至少10us的高电平
  • 模块自动发送8个40Khz的方波,自动检测是否有信号返回
  • 有信号返回,通过IO口Echo输出一个高电平,高电平持续的时间就是超声波从发送到返回的时间
  • 测试距离 = (高电平持续的时间/声速340m/s)/2

时序原理

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号