【无标题】

本文介绍了如何使用树莓派和HC-SR04超声波测距模块搭建一个测距系统。实验中,通过树莓派发送脉冲到Trig引脚,触发超声波发射并测量回波时间来计算距离。提供的Python代码实现了测距功能,并在实验步骤中详细说明了硬件连接和软件配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验任务

用树莓派实现一个超声波测距系统

二、实验准备

树莓派3B+
杜邦线四根(母对母)
HC-SR04超声波测距模块

三、实验原理

1、树莓派40Pin引脚对照表

在这里插入图片描述

2、HC-SR04

HC-SR04有4 个引脚, 2 个电源引脚(Vcc 、GND)和 2 个控制引脚(Trig、Echo)
Trig 引脚用来接收来自树莓派的控制信号。接任意 GPIO 口。
Echo 引脚用来发送测距结果给树莓派。接任意 GPIO 口。

3、测距过程

  1. 树莓派向 Trig 脚发送一个持续 10us 的脉冲信号。
  2. HC-SR04 接收到树莓派发送的脉冲信号,开始发送超声波 ,并把 Echo置为高电平。
  3. 当 HC-SR04 接收到返回的超声波时,把 Echo 置为低电平。

4、超声波测距原理

在这里插入图片描述

四、实验步骤

1、组件连接

HC-SR04的Vcc引脚接树莓派的17引脚(3.3v)
HC-SR04的GND引脚接树莓派的39引脚(Ground)
HC-SR04的Trig引脚接树莓派的15引脚(GPIO22)
HC-SR04的Echo引脚接树莓派的11引脚(GPIO17)

2、代码

ranging.py

# coding=UTF-8
import RPi.GPIO as GPIO
import time
 
# 不输出
GPIO.setwarnings(False)
# BCM针脚编号方式
GPIO.setmode(GPIO.BCM)
# 控制引脚GPIO22
trig = 22
# 接收引脚GPIO17
echo = 17
# trig引脚为输出模式,初始化输出为低电平
GPIO.setup(trig, GPIO.OUT, initial=GPIO.LOW)
# echo引脚为输入模式
GPIO.setup(echo, GPIO.IN)
HIGH = 1
LOW = 0
# 测量函数
def measure():
    # 树莓派向trig引脚发送信号,一个持续10us的方波脉冲
    GPIO.output(trig, HIGH)
    time.sleep(0.00001)
    GPIO.output(trig, LOW)
    # HC - SR04接收到脉冲信号,开始发送超声波并将Echo引脚置为高电平
    # echo引脚之前一直接收低电平信号,一旦收到高电平信号就开始记录时间
    while GPIO.input(echo) == LOW:
        pass
    start = time.time()
    # 当 HC-SR04 接收到返回的超声波 时,把Echo引脚置为低电平
    # 也就是说echo引脚接收到的高电平结束,终止计时
    while GPIO.input(echo) == HIGH:
        pass
    end = time.time()
 
    # 计算距离,单位厘米,这里的340m/s是超声波在空气中的传播速度
    distance = round((end - start)*340/2*100, 2)
    print("distance:{0}cm".format(distance))
 
 
# 循环测距,间隔为1秒
while True:
    measure()
    time.sleep(1)
# 清理脚本使用过的 GPIO 通道
GPIO.cleanup()

五、总结

虽然基础有些薄弱,但跟着老师的提醒以及网上查阅资料接货,大体能够完成,对于树莓派也有了一定理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值