HC-SR04超声波测距模块:使用方法和例程

作者:热心市民鹿先生2024.01.18 05:48浏览量:164

简介:本文将为您详细介绍HC-SR04超声波测距模块的使用方法,包括其工作原理、接线方式以及如何编写代码实现测距功能。通过阅读本文,您将全面了解如何利用HC-SR04模块进行精确的距离测量,并获取相应的实践经验。

一、HC-SR04超声波测距模块简介
HC-SR04是一款常用的超声波测距模块,其工作原理基于声波的发射与接收。该模块具有非接触、高精度、快速响应等优点,广泛应用于机器人避障、距离测量等领域。
二、HC-SR04超声波测距模块引脚说明

  1. Trig引脚:用于发送超声波信号。
  2. Echo引脚:用于接收返回的超声波信号。
    三、HC-SR04超声波测距模块接线方式
  3. Trig引脚:接树莓派的任意GPIO口,用于发送超声波信号。
  4. Echo 引脚:接树莓派的任意GPIO口,用于接收返回的超声波信号。需要注意的是,Echo返回的是5V信号,而树莓派的GPIO接收超过3.3V的信号可能会被烧毁,因此需要加一个分压电路。
    四、HC-SR04超声波测距模块工作原理
  5. 树莓派向Trig脚发送一个10us的脉冲信号,触发HC-SR04模块发送超声波。
  6. HC-SR04模块接收到信号后,开始发送超声波,并将Echo引脚置为高电平,准备接收返回的超声波。
  7. 当HC-SR04模块接收到返回的超声波后,将Echo引脚置为低电平。
  8. Echo引脚高电平持续的时间即为超声波从发射到返回的时间间隔,即距离时间差(dt)。
  9. 计算距离:距离(单位:m)=(超声波往返时间)/(2*声速),声速取343m/s。再将距离转换为cm。
    五、HC-SR04超声波测距模块例程(以树莓派为例)
    以下是一个简单的树莓派代码示例,用于触发HC-SR04模块发送超声波并获取距离值:
    1. import RPi.GPIO as GPIO
    2. import time
    3. TRIG = 18 # Trig引脚GPIO口
    4. ECHO = 24 # Echo引脚GPIO口
    5. GPIO.setmode(GPIO.BCM)
    6. GPIO.setup(TRIG, GPIO.OUT)
    7. GPIO.setup(ECHO, GPIO.IN)
    8. try:
    9. while True:
    10. # 发送10us的脉冲信号
    11. GPIO.output(TRIG, False)
    12. time.sleep(2)
    13. GPIO.output(TRIG, True)
    14. time.sleep(10)
    15. GPIO.output(TRIG, False)
    16. time.sleep(2)
    17. # 获取Echo引脚的高电平持续时间(时间差)
    18. duration = GPIO.wait_for_edge(ECHO, GPIO.RISING)
    19. distance = (duration * 17000) / 100000 # 计算距离(单位:cm)
    20. print('Distance:', distance)
    21. time.sleep(1)
    22. except KeyboardInterrupt:
    23. pass
    24. finally:
    25. GPIO.cleanup()