hc-sr04超声波测距模块代码讲解
时间: 2024-09-10 18:04:21 浏览: 60
HC-SR04超声波测距模块是一种常用的距离传感器,常用于机器人、自动化设备等场景中的距离测量。它通过发射超声波脉冲并接收反射回来的信号,计算出物体到传感器的距离。
以下是基本的Python代码示例,解释了如何使用Arduino或树莓派控制HC-SR04模块:
```python
import RPi.GPIO as GPIO
import time
# 设置GPIO引脚
TRIG_PIN = 18
ECHO_PIN = 23
def setup():
GPIO.setmode(GPIO.BCM) # 使用BCM编码方式
GPIO.setup(TRIG_PIN, GPIO.OUT)
GPIO.setup(ECHO_PIN, GPIO.IN)
def measure_distance():
GPIO.output(TRIG_PIN, False) # 释放触发信号
time.sleep(0.00001) # 等待一段时间
GPIO.output(TRIG_PIN, True) # 发射超声波
time.sleep(0.00001) # 稍微延迟
GPIO.output(TRIG_PIN, False) # 关闭触发
start_time = time.time() # 记录接收到回波的时间
while GPIO.input(ECHO_PIN) == 0: # 当检测到回波到来
pass
received_time = time.time()
# 超声波传播往返所需时间的一半
distance = (received_time - start_time) * 343 / 2 # 速度通常取343米/秒,空气中
return distance
if __name__ == "__main__":
try:
while True:
distance = measure_distance()
print(f"Distance: {distance} cm")
time.sleep(1) # 每隔1秒测量一次
except KeyboardInterrupt:
GPIO.cleanup() # 退出时清理GPIO
```
这个代码首先初始化GPIO引脚,然后发送超声波脉冲并等待回波。一旦接收到回波,就计算距离并打印结果。`measure_distance()`函数是核心部分,不断循环测量并显示距离。
阅读全文