当前位置:首页 > 话题广场 > 科技专区 > 互联网

如何驱动超声波发射器,超声波脉冲发射器!


关注《高手杰瑞》获得更多好玩资讯!



初识HC-SR04超声波测距模块

超声波测距模块其实有很多种,其中HC-SR04是我们较为常见的一种型号,在这里我们使用HC-SR04超声波测距模块来实现我们的测距功能。HC-SR04支持2cm-400cm之间的非接触式距离测量功能,测量精度可以到达3mm!该模块集成了超声波发射器、接收器和其他控制电路等。

模块驱动方法:

向TRIG口输出至少持续10us的高电平信号,在这之后模块内部控制电路将自动发送8个40khz的方波,并自动检测是否有信号返回,若有信号返回,模块ECHO将会输出一个高电平,持续时间就是超声波从发射到返回的时间。

下图为HC-SR04超声波模块的时序图:



编写HC-SR04的驱动程序

按照上述的驱动方式,我们可以来编写HC-SR04的驱动程序。杰瑞在这里使用Python来编写HC-SR04的驱动程序,在编写之前我们的树莓派中必须要提前安装好RPi.GPIO库。

按照惯例导入我们需要用到的库:

import RPi.GPIO import time

设置树莓派IO口的编码方式为BCM,并屏蔽警告信息

GPIO.setwarnings(False) GPIO.setmode)

定义TRIG、ECHO引脚。

#定义 GPIO引脚 GPIO_TRIGGER = 23 GPIO_ECHO = 24 GPIO.setup(GPIO_TRIGGER, GPIO.OUT) GPIO.setup(GPIO_ECHO, GPIO.IN)

我们的准备工作做完了,接下来就按照上面的驱动方式来编写驱动代码:

1.向TRIG引脚输出持续10us的高电平信号

#发送高电平信号给 trig引脚 GPIO.output(GPIO_TRIGGER, True) #持续 10 us ) GPIO.output(GPIO_TRIGGER, False)
  1. 计算超声波从发射到接收的时间
start_time = () stop_time = () #记录超声波发送时刻 while GPIO.input(GPIO_ECHO) == 0: start_time = () while GPIO.input(GPIO_ECHO) == 1: stop_time = ()
  1. 利用公式计算距离(单位cm)
#计算超声波返回的时间 time_elapsed = stop_time - start_time #空气中声波的速度为 343m/s ,转化为 34300cm/s distance = (time_elapsed * 34300) / 2
  1. 循环检测并输出测试得到的距离:
if __name__ == '__main__': try: while True: dist = distance() print("检测到物体距离{:.2f} cm".format(dist)) (1) # Reset by pressing CTRL + C except KeyboardInterrupt: print("Measurement stopped by User") GPIO.cleanup()

接线方式

HC-SR04模块的VCC接树莓派的5伏VCC上,GND与树莓派GND相连,TRIG、ECHO分别于23、24号IO口连接。



效果测试

先看一下整体连接效果图:


以下是程序运行测试出来的数据:



源码获取

关注《高手杰瑞》并转发,私信关键字:“超声波模块源码”即可获取源码!

文中需要用到的硬件设备如下:

HC-SR04超声波测距模块


1.《如何驱动超声波发射器,超声波脉冲发射器!》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《如何驱动超声波发射器,超声波脉冲发射器!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3311733.html

上一篇

如何启动百度云管家、百度云管家app下载!

如何驱动超声波发射器,超声波脉冲发射器

如何驱动超声波发射器,超声波脉冲发射器,超声波发射器和接收器相关介绍,相比于传统的单片机,STM32单片机具有更高的时间测量分辨率,其主频与定时器频率高达72MHz,且该单片机在开启定时器的同时,会启动PWM通道驱动超声波发射器和通道捕捉回波信号,提高了测量的精度和准确...