0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

树莓派连接超声波测距传感器

CHANBAEK 来源:和娃一起玩树莓派 作者:老孟K 2023-07-02 15:14 次阅读

今天我们来玩超声波测距传感器。我购买的是型号是US-015,长得是下面这个样子:

可以看到它有四个引脚,除了电源VCC和地线GND外,主要靠Trig(触发)引脚和Echo(回波)引脚来测距。其工作原理如下图

图片

其工作的时序图如下:

图片

由于超声波电源为5V,在树莓派的官方文档中,5V的电压如果接到GPIO引脚,会烧坏树莓派(树莓派使用3.3V电压)。所以推荐在连接Echo引脚时通过电阻来做分压处理,其电路如下图所示:

图片

如果我们手边没有330欧和470欧的电阻,也可以使用2个完全相同的电阻来做分压,电阻的大小不限,这样分压后的GPIO引脚可以得到2.5V的电平,仍然会读入为高电位(一般集成电路会把超过2伏作为高电位),可以得到同样的效果。(多说一句:我看到网上很多文章提供的电路都是让5v的Echo直接连接GPIO,也可以成功,我自己也试了一下,从我的经历看,树莓派没有被5v的电压烧毁,其原因应该是Echo一直输出低电位,只有在trig触发后的检测到回波时才短暂的输出5v高电位,所以很幸运的没有对树莓派造成影响,但 不建议大家尝试,否则后果自负!

最终的电路连接好后如下图所示:

图片

然后执行下面的程序,这段程序的逻辑就是向Trig引脚发送10us的高电平,触发超声波模块发送8个40khz的方波,然后读取Echo的高电位时间,此时间就是超声波从发送到返回的时间,也就是2个从传感器到阻挡物体的距离。

import RPi.GPIO as GPIO

from time import sleep,time

TRIG = 6      #传感器tirg引脚接GPIO6
ECHO = 17     #传感器Echo引脚接GPIO17,大家需要根据自己电路连接情况修改

GPIO.setmode(GPIO.BCM)    #设置为BCM模式。
GPIO.setup(TRIG,GPIO.OUT)  #把 GPIO6设置为输出
GPIO.setup(ECHO,GPIO.IN)   #把GPIO17设置为输入
GPIO.output(TRIG,0)    # 给Trig输出低电平
i = 1     # 测距计数器  
while True:
    print("-----start----",i)
    sleep(0.00002)    #让低电平保持20us
    GPIO.output(TRIG,1)   #触发trig,设置为高电位10us
    sleep(0.00001)       # 保持高电位10us
    GPIO.output(TRIG,0)  # 然后把trig设置为低电位
    while GPIO.input(ECHO) == 0:  # 当Echo为低电位时在此循环等待
        a = 1
    time1 = time()      # 当Echo为高电位时跳出上面的while循环,读取此时时间
    while GPIO.input(ECHO) == 1:   # 当Echo为高电位是循环,直到变为低电位
        a = 2
    time2 = time()      # 当Echo变为低电位时跳出上面while循环,读取当前时间   
    #print("time2:",time2)
    during = time2-time1   # 计算保持高电位的时间
    #print("during:",during)
    distance = during*340*100/2   # 高电位的时间 * 340米(声音速度)/2(往返),乘100转为厘米
    print("time1:",time1)
    print("time2:",time2)
    print("during:",during)
    print("distance:",distance)   # 显示测算的距离
    sleep(2)     
    i = i+1

运行程序时,在超声波前面移动书本,可以看到输出如下:

图片

其实,GPIOZero其实已经实现了距离传感器,并且封装为可以直接使用的类DistanceSensor,用它的话代码会非常简单,其底层实现的机理和我们上面的代码其实是一样的。

from gpiozero import DistanceSensor
from time import sleep


sensor = DistanceSensor(echo=17, trigger=6)
while True:
    print('Distance: ', sensor.distance * 100)
    sleep(1)

运行结果如下:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2545

    文章

    50411

    浏览量

    750787
  • 超声波
    +关注

    关注

    63

    文章

    2980

    浏览量

    138121
  • 引脚
    +关注

    关注

    16

    文章

    1169

    浏览量

    50122
  • GND
    GND
    +关注

    关注

    2

    文章

    527

    浏览量

    38618
  • 树莓派
    +关注

    关注

    116

    文章

    1686

    浏览量

    105439
收藏 人收藏

    评论

    相关推荐

    在全志H616核桃开发板上实现超声波传感器测距

    实现超声波传感器测距。 实验讲解​ 下图是一款市面上常用的HCSR04超声波模块: 模块参数 供电电压 3.3V~5V (核桃需要使用
    发表于 05-08 16:21

    超声波传感器测距电路

    超声波传感器测距电路超声波测距电路原理图本系统的特点是利用单片机控制超声波的发射和对
    发表于 10-20 08:43

    基于超声波传感器测距系统设计

    ;><strong>基于超声波传感器测距系统设计<br/></strong><
    发表于 12-15 10:20

    超声波测距原理

    为此,文中尝试以单片机AT89S52为核心,利用一对40 kHz压电超声传感器设计一款体积较小、价格低廉、精度较高、具有温度补偿、实时LCD显示和报警的超声波测距仪。1
    发表于 04-25 11:32

    超声波传感器及应用

      一、原理简述:  超声波传感器是利用超声波的特性研制而成的传感器超声波是一种振动频 率高于声波
    发表于 10-29 14:53

    超声波传感器测距系统如何设计

    超声波测距主要应用于非接触测量领域。目前测距专用超声波系统由于成本高等的原因,在一些中小规模的应用领域中难以广泛应用。随着汽车智能化的发展,需要研制出能够以更高的精度
    发表于 04-23 07:34

    超声波传感器的优势及原理

    长度等一些工业现场,需要自动进行非接触测距的场合经常见到其身影。那么,超声波传感器有哪些优势,使得其在这些场合大显身手呢?  概况而言,超声波传感器
    发表于 06-19 11:46

    超声波测距原理

    1.超声波测距原理超声波是利用反射的原理测量距离的,被测距离一端为超声波传感器,另一端必须有能反
    发表于 07-21 07:01

    如何去实现一种基于树莓4B的超声波测距和显示设计

    如何去实现一种基于atmegal16单片机的超声波测距短信上传设计?如何去实现一种基于树莓4B的超声波
    发表于 09-23 07:29

    超声波测距实验

    超声波测距实验一、 实验目的1、 了解超声波的产生及其在介质中的传播特性2、 了解超声波传感器基本结构及其工作原理3、 了解
    发表于 03-07 11:18 7239次阅读
    <b class='flag-5'>超声波</b><b class='flag-5'>测距</b>实验

    Arduino应用_Arduino连接超声波传感器测距

    超声波传感器适用于对大幅的平面进行静止测距。普通的超声波传感器测距范围大概是 2cm~450cm
    发表于 09-24 16:00 148次下载
    Arduino应用_Arduino<b class='flag-5'>连接</b><b class='flag-5'>超声波</b><b class='flag-5'>传感器</b><b class='flag-5'>测距</b>

    超声波传感器测距方法详解

    在日常生产生活中,超声波测距传感器主要应用于汽车的倒车雷达、及机器人自动避障行走、建筑施工工地以及一些工业现场例如:液位、井深、管道长度等需要自动进行非接触测距的场合。目前有两种常用的
    的头像 发表于 03-29 08:27 3.5w次阅读
    <b class='flag-5'>超声波</b><b class='flag-5'>传感器</b><b class='flag-5'>测距</b>方法详解

    超声波位移传感器与激光测距仪/测距传感器之间有何区别

    超声波位移传感器和激光测距仪/测距位移传感器是两个广泛用来测量距离的工具,两者之间互有优势,在选择的时候要根据实际情况具体分析,看哪个类型的
    的头像 发表于 04-21 11:02 1690次阅读

    超声波传感器的工作原理 超声波传感器的应用

    超声波传感器是一种基于超声波的无接触式测距传感器,可以广泛应用于工业、医疗、军事等领域。本文将详细介绍
    的头像 发表于 01-18 14:04 1457次阅读

    超声波测距原理 超声波测距传感器接线方法

    超声波测距是一种常用的测距方法,通过发射超声波脉冲,利用其在空气中传播速度较快的特点,测量出从传感器到目标物体的时间差,并进而计算出距离。
    的头像 发表于 01-22 15:22 2055次阅读