树莓派|超声波传感器
将HC-SR04的VCC引脚连接到树莓派的5V引脚,GND引脚连接到树莓派的地引脚,Trig引脚连接到树莓派的任意GPIO输出引脚(例如GPIO17),Echo引脚连接到树莓派的任意GPIO输入引脚(例如GPIO18)。HC-SR04 接收到信号,开始发送超声波,并把 Echo置为高电平,然后准备接收返回的超声波。Echo:超声波接收检测脚,当接收到返回的超声波时,输出高电平。HC-SR04 接收

-
VCC:超声波模块电源脚,接5V电源即可
-
Trig:超声波发送脚,高电平时发送出40KHZ出超声波
-
Echo:超声波接收检测脚,当接收到返回的超声波时,输出高电平
-
GND:超声波模块GND
测距原理:
-
树莓派向 Trig 脚发送一个 10us 的脉冲信号。
-
HC-SR04 接收到信号,开始发送超声波,并把 Echo置为高电平,然后准备接收返回的超声波。
-
HC-SR04 接收到返回的超声波,把 Echo 置为低电平。
-
Echo 高电平持续的时间就是超声波从发射到返回的时间间隔。
-
计算距离:
距离(单位:m) = (start - end) * 声波速度 / 2
声波速度取 343m/s 。
然后再把测得的距离转换为 cm。
距离(单位:cm) = (start - end) * 声波速度 / 2 * 100
= (start - end) * 17150
连接硬件:将HC-SR04模块连接到树莓派的GPIO引脚上。将HC-SR04的VCC引脚连接到树莓派的5V引脚,GND引脚连接到树莓派的地引脚,Trig引脚连接到树莓派的任意GPIO输出引脚(例如GPIO17),Echo引脚连接到树莓派的任意GPIO输入引脚(例如GPIO18)。
编写Python代码:创建一个新的Python脚本,例如distance_measurement.py,并输入以下代码:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO_TRIG = 17
GPIO_ECHO = 18
GPIO.setup(GPIO_TRIG, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
def distance():
# 发送高电平信号到 Trig 引脚
GPIO.output(GPIO_TRIG, True)
# 持续 10 us
time.sleep(0.00001)
GPIO.output(GPIO_TRIG, False)
# 高电平持续时间就是超声波从发射到返回的时间
while GPIO.input(GPIO_ECHO) == GPIO.LOW: pass
start_time = time.time()
while GPIO.input(GPIO_ECHO) == GPIO.HIGH: pass
stop_time = time.time()
# 计算距离 声波的速度为 34000cm/s。
distance = ((stop_time - start_time) * 34000) / 2
return distance
while True:
dist = distance()
print("距离:{:.2f} cm".format(dist))
time.sleep(1)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)