HC-SR04超声波传感器是一种流行的,具有成本效益的工具,用于测量各种DIY和专业项目的距离。当与Raspberry Pi配对时,它将开辟一个创建障碍物检测,水平测量甚至交互式安装等应用程序的可能性。这篇博客文章将指导您通过Raspberry Pi设置和使用HC-SR04传感器的过程。
HC-SR04超声波传感器是什么?
HC-SR04是一个超声波传感器模块,通过发射超声波并计算回声返回所需的时间来测量距离。它以5V的速度运行,以其在短到中距离距离测量值(通常在2 cm至400 cm之间)的准确性和可靠性而闻名。
您需要的组件
- Raspberry Pi(任何带有GPIO引脚的模型,例如Raspberry Pi 4)
- HC-SR04超声传感器
- 跳线
- 面包板
- 10kΩ电阻(用于电压划分)
- 可选:视觉反馈的LED和电阻器
将HC-SR04接线到Raspberry Pi
将HC-SR04连接到Raspberry Pi需要仔细处理,尤其是因为Raspberry Pi GPIO引脚在3.3V下运行,HC-SR04在5V下运行。为了防止损坏您的PI,必须在回声引脚上使用电压分隔器。
引脚连接
- VCC hc-sr04 to 5V 覆盆子PI上的别针
- gnd hc-sr04 to gnd 在覆盆子Pi上
- 触发 HC-SR04的引脚到A GPIO PIN 在Raspberry Pi上(例如GPIO23)
- 回声 HC-SR04的销钉通过电压分隔器将覆盆子Pi
设置电压分隔器
要安全地将回声引脚连接到Raspberry Pi,请使用具有10kΩ电阻器和20kΩ电阻器的电压分隔器。这将降低5V信号至约3.3V。
# Example schematic for voltage divider
# HC-SR04 Echo pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
# |
# 20kΩ
# |
# GND
安装必要的库
在编写代码之前,请确保您的Raspberry Pi是最新的,并安装了必要的库。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio
编写Python脚本
下面是一个简单的Python脚本,可与HC-SR04传感器接口。该脚本发送触发脉冲,等待回声,并根据回声返回的时间计算距离。
import RPi.GPIO as GPIO
import time
# GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
# Set GPIO Pins
TRIG = 23
ECHO = 24
print("Distance Measurement In Progress")
# Set GPIO direction (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
def distance():
# Set TRIG to LOW
GPIO.output(TRIG, False)
time.sleep(2)
# Send 10us pulse to TRIG
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
start_time = time.time()
stop_time = time.time()
# Save StartTime
while GPIO.input(ECHO) == 0:
start_time = time.time()
# Save Time of Arrival
while GPIO.input(ECHO) == 1:
stop_time = time.time()
# Time difference between start and arrival
time_elapsed = stop_time - start_time
# Multiply with speed of sound (34300 cm/s)
# and divide by 2, because there and back
distance = (time_elapsed * 34300) / 2
return distance
if __name__ == '__main__':
try:
while True:
dist = distance()
print("Measured Distance = %.1f cm" % dist)
time.sleep(1)
except KeyboardInterrupt:
print("Measurement stopped by User")
GPIO.cleanup()
运行脚本
确保接线是正确的,然后使用Python 3运行脚本:
python3 hc-sr04.py
您应该看到以厘米为单位的测量距离。如果您使用LED进行视觉反馈,则可以在对象在一定范围内时修改脚本以点亮LED。
增强您的项目
完成基本距离测量工作后,请考虑集成其他功能:
- LED指标: 使用LED指示不同的距离范围。
- LCD显示: 在LCD屏幕上显示距离。
- 数据记录: 记录距离测量随着时间的分析。
- 警报系统: 当对象太近时触发警报或通知。
解决常见问题
使用传感器和GPIO有时可能具有挑战性。以下是一些常见问题以及如何解决这些问题:
- 不正确的布线: 仔细检查所有连接,尤其是回声引脚上的电压分隔器。
- 嘈杂的测量: 确保您的设置稳定,并考虑添加电容器以过滤噪声。
- GPIO冲突: 确保没有其他脚本或服务使用相同的GPIO引脚。
-
许可: 使用适当的权限运行脚本,使用
sudo
如有必要。
结论
HC-SR04超声波传感器是一种多功能且可靠的组件,与Raspberry Pi结合使用,可以提供从简单距离测量到复杂自动化系统的多种应用。通过遵循本指南中概述的步骤,您应该能够设置并开始在Raspberry Pi上使用HC-SR04进行实验。快乐的修补!