树莓派4B运行超声波HC-SR04测距显示
树莓派引脚图如下
连线:
Vcc 接 5v 引脚
Gnd接 GND引脚
Trig 引脚用来接收树莓派的控制信号。接任意 GPIO 口。
Echo 引脚用来向树莓派返回测距信息。接任意 GPIO 口。
安装RPi.GPIO
sudo pip3 install -U RPi.GPIO --ignore-installed
参考python代码—hcsr.py:
#导入 GPIO库
import RPi.GPIO as GPIO
import time
#设置 GPIO 模式为 BCM
GPIO.setmode(GPIO.BCM)
#定义 GPIO 引脚使用BCM编码
TRIG = 20
ECHO = 21 #根据实际连接的引脚对照引脚图填写
#设置 GPIO 的工作方式 (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
# 获取距离信息
def getDistance():
# 向Trig引脚发送10us的脉冲信号
GPIO.output(TRIG, GPIO.HIGH)
time.sleep(0.00001)
GPIO.output(TRIG, GPIO.LOW)
# 开始发送超声波的时刻
while GPIO.input(ECHO)==0:
pass
startTime=time.time()
# 收到返回超声波的时刻
while GPIO.input(ECHO)==1:
pass
endTime=time.time()
# 计算距离 距离=(声波的往返时间*声速)/2
timeDelta = endTime - startTime
distance = (timeDelta * 34300) / 2
return distance
if __name__ == '__main__':
try:
while True:
dist = getDistance()
print("Distance = {:.2f} cm".format(dist))
time.sleep(1) # 每间隔1秒测量一次
except KeyboardInterrupt:
print("Stopped")
GPIO.cleanup()
执行代码:
python3 hcsr.py
运行结果: