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)

运行结果如下:

图片

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

    关注

    2510

    文章

    47155

    浏览量

    737194
  • 超声波
    +关注

    关注

    62

    文章

    2778

    浏览量

    136449
  • 引脚
    +关注

    关注

    16

    文章

    966

    浏览量

    48637
  • GND
    GND
    +关注

    关注

    2

    文章

    493

    浏览量

    37885
  • 树莓派
    +关注

    关注

    113

    文章

    1620

    浏览量

    104291
收藏 人收藏

    评论

    相关推荐

    超声波传感器测距电路

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

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

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

    超声波测距原理

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

    超声波测距

    超声波测距传感器分析
    发表于 04-18 20:49

    基于STM32超声波测距设计的合集

    本文档的主要内容介绍的是STM32超声波测距设计的合集包括了的原始材料,原理图,程序和原理说明的详细资料概述合嵌入式处理STM32F103与超声波
    发表于 09-05 16:13

    超声波传感器及应用

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

    基于超声波传感器的航模应用

    ? 为了让航模运动健康发展工采网提供一款行人检测超声波传感器MB1010用于地面附近的高度控制及探测障碍物。由于超声波传感器测距离较短,所
    发表于 03-01 04:53

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

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

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

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

    超声波测距传感器在窨井中的作用以及优势

    通过智能化感知,运用超声波测距传感器的原理特性对窨井内部的水面高度进行实时监控检测,完成采集任务。其次进行连接,无线传输模块读取传感器采集的
    发表于 03-24 18:36

    超声波测距原理

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

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

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

    超声波传感器的优缺点分析

    测距超声波测试等功能,可用于探测潜艇残骸、的敌方潜艇和显示金属内部伤害。这些可以应用于工业、农业、轻工业和医疗技术,并与我们的生活密切相关。为何使用超声波传感器
    发表于 04-21 09:09

    超声波测距液位传感器的工作原理是怎样的

    超声波测距液位传感器的工作原理是基于测量距离和测量环境而研发的。 在日常生活中,超声波测距液位传感器
    发表于 11-04 15:10 2433次阅读

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

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