首页 > 其他分享 >树莓派使用HC-SR04超声波测距

树莓派使用HC-SR04超声波测距

时间:2023-05-28 09:00:26浏览次数:48  
标签:树莓 SR04 Pin 引脚 Trig Echo GPIO HC 超声波

超声波模块介绍

  超声波测距原理很简单:
  1、通过记录发送超声波的时间、记录超声波返回的时间,返回时间与发送时间相减得到超声波的持续时间。
  2、通过公式:(超声波持续时间 * 声波速度) / 2就可以得出距离;

image.png

  HC-SR04参数:
  工作电压: 5V
  工作电流:15mA
  最短测量距离:3cm
  最长测量距离:4m
  角度15度
  Trig引脚输入信号:10us TTL 脉冲
  Echo引脚输出信号:5v脉冲信号

超声波模块接线与工作过程

接线:

  总共4引脚:2电源引脚(Vcc、GND)和2个控制引脚Trig、Echo;
  Vcc为5v供电
  Trig引脚用于接收树莓派信号,可接所有GPIO口。
  Echo引脚用于发送测距结果给树莓派,可接所有GPIO口,返回5v信号。

测距工作过程:

  1、树莓派向Trig引脚发送持续10us的脉冲信号;
  2、HC-SR04发送超声波,将Echo置位高电平,准备接收超声波返回;
  3、HC-SR04收到超声波返回把Echo置位低电平;

程序实现

  通过上面HC-SR04超声波测距模块使用过程,原理的分析,使用Python很容易就写出了超声波测距的Demo程序,具体实现如下:
  程序的关键点:
  1、获取超声波发送时的时间
  2、获取超声波返回时的时间
  3、把超声波发送与返回的时间差带入公式:(超声波持续时间 * 声波速度) / 2 即可得到距离

Trig_Pin = 14
Echo_Pin = 4

GPIO.setmode(GPIO.BCM)
#设备GPIO工作方式IN/OUT
GPIO.setup(Trig_Pin,GPIO.OUT,initial = GPIO.LOW)
GPIO.setup(Echo_Pin,GPIO.IN)

def ultrasonic():
    #发送高电平到Trig引脚
    GPIO.output(Trig_Pin,GPIO.HIGH)
    #持续10us 微秒
    time.sleep(0.00001)
    GPIO.output(Trig_Pin,GPIO.LOW)
    #记录发送超声波时刻,发送前Echo_Pin为低电平,当变为高电平是说明超声波已发送
    while GPIO.input(Echo_Pin) == GPIO.LOW:
        pass
    t1 = time.time()

    #记录收到返回超声波时刻,当Echo_变为低电平时说明超声波已经返回
    while GPIO.input(Echo_Pin) == GPIO.HIGH:
        pass
    t2 = time.time()

    #超声波往返时间:t2-t1
    #声波在空气中传播速度340m/s 记录时间 t 来回 2
    #高电平时刻时间减去低电平时刻时间,得到超声波传播时间,单位转换为厘米乘以100
    distance = (t2-t1) * 340 *100 /2
return distance

image.png

标签:树莓,SR04,Pin,引脚,Trig,Echo,GPIO,HC,超声波
From: https://www.cnblogs.com/softlin/p/17437150.html

相关文章

  • HCIP学习笔记-数据库服务规划-5
    1.数据库服务概览1.1数据库发展趋势数据规模爆炸式增长,数据应用模式不断丰富。云计算大规模应用,传统业务模式发生转变。1.2云数据库优势相比传统数据库,云数据库一般具有以下有点易用性:云数据库一般也是作为一个云服务提供,与其他云服务一样,可以快速部署和运行,同时一般还可以免......
  • 华为—DHCP中继实验配置-通过两种配置方法实现功能
     实验说明本实验将通过两种中继配置方法实现DHCP中继功能  第一种:在接口下直接指定DHCP服务器IP地址  第二种:通过在接口下调用DHCP服务器组实验拓扑图实验要求1、将路由器R1作为DHCP服务器,创建全局地址池分配地址;2、通过DHCP中继实现为PC1和PC2分配不同网段地址 ......
  • 3.2 逻辑设计和硬件控制语言HCL
    在硬件设计中,用电子电路来计算对位进行运算的函数,以及在各种存储器单元中存储位。大多数现代电路技术都是用信号线上的高电压或低电压来表示不同的位值。在当前的技术中,逻辑1是用1.0伏特左右的高电压表示的,而逻辑0是用0.0伏特左右的低电压表示的。要实现一个数字系统需要三个主要......
  • 使用树莓派远程控制灯继电器开关,dht11温湿度网页显示,树莓派物联网
    前段时间使用esp8266搞了个智能家居,通过网页控制,但是没有办法实现远程控制,只能局域网控制,因为我没有平台,使用机制云等平台还需要开发app使用chatgpt生成的main.py程序fromflaskimportFlask,render_template,requestimportAdafruit_DHTimportRPi.GPIOasGPIOapp=F......
  • HCL华三模拟器BGP配置更新源
    peerconnect-interface命令用来指定与对等体/对等体组创建BGP会话时建立TCP连接使用的源接口,即采用指定源接口的IP地址/IPv6地址与对等体/对等体组建立TCP连接。本命令的作用与peersource-address命令的作用类似:peersource-address命令直接指定建立TCP连接的源地址;本命令通过......
  • DHCP是什么
    DHCP1.DHCP是什么协议,一种应用层的网络协议,他可以动态地分配网络中的IP地址和其他网络配置的参数以及网络设备,通俗一点讲,每台设备的IP地址,子网掩码,网关等网络参数信息都是由他来完成的。1.1DHCP服务器和DHCP的关系DHCP服务器是实现DHCP协议的网络设备或软件,它负责为客户......
  • RHCE8.2-ex200
    1、RHCSA在两台主机上完成,做题目一定要仔细,阅读清楚题目1、......
  • [hc32f460填坑] SystemCoreClock在进入main后变为0
    我的芯片型号是hc32f460jeua,使用的库为HC32F460_DDL_Rev3.1.0,keil包为HDSC.HC32F460.1.0.10。发现的问题:执行完SystemInit后SystemCoreClock为200000000,一进入mian函数就变为零。原因:__NO_INIT未起作用,__main对SystemCoreClock进行了初始化解决方法:1.把这两个勾上2,将Zero......
  • windows平台的dhcp服务软件、dhcp服务器netbootm工具用法介绍
    使用深度远程启动管理器配置管理口IP方法1、将笔记本IP设置为需要配置的IP同网段的一个IP;2、用网线将笔记本网口与服务器管理口连接;3、打开深度远程启动管理器,点击选项配置按钮,选择DHCP选项卡4、配置下图红框中的选项,启始地址为需要配置的IP的第一个地址,子网掩码以及网关与客户要......
  • Linux-RHCA操作系统
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......