树莓派 HC-SRO4超声波测距模块的使用

摘要:
在上图中,此模块的管脚与之前播放的三个管脚不同。除了VCC和GND引脚,还有另外两个Trig和Echo引脚,分别是输出和输入引脚。Trig连接到20个引脚,Echo为21。该模块的工作原理是向Trig引脚输入至少10us的触发信号,模块将发送8个40kHz周期电平并检测回波。一旦检测到回波信号,echo输出高电平回波信号。回波信号的脉冲宽度与测量距离成比例。从发送信号到接收回波信号

先上个图

树莓派 HC-SRO4超声波测距模块的使用第1张

这个模块的针脚跟之前玩的那三个有所区别,除了VCC和GND两个针脚,还多了两个Trig和Echo针脚,分别是输出和输入,Trig我接的是20针脚,Echo是21

该模块的工作原理为,先向TRIG脚输入至少10us的触发信号,该模块内部将发出 8 个 40kHz 周期电平并检测回波。一旦检测到有回波信号则ECHO输出高电平回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式: 距离=高电平时间*声速(340M/S)/2。

下面是代码

 1 import RPi.GPIO as GPIO
 2 import time
 3 
 4 Trig_Pin = 20
 5 Echo_Pin = 21
 6 
 7 GPIO.setmode(GPIO.BCM)
 8 GPIO.setup(Trig_Pin, GPIO.OUT, initial = GPIO.LOW)
 9 GPIO.setup(Echo_Pin, GPIO.IN)
10 
11 time.sleep(2)
12 
13 def checkdist():
14     GPIO.output(Trig_Pin, GPIO.HIGH)
15     time.sleep(0.000015)
16     GPIO.output(Trig_Pin, GPIO.LOW)
17     while not GPIO.input(Echo_Pin):
18         pass
19     t1 = time.time()
20     while GPIO.input(Echo_Pin):
21         pass
22     t2 = time.time()
23     return (t2-t1) *340/2
24 
25 try:
26     while True:
27         print 'Distance:%0.2f m' % checkdist()
28         time.sleep(3)
29 except KeyboardInterrupt:
30     GPIO.cleanup()

发现那个捕捉的异常是针对Crtl+C触发的,之前我那几个模块如果正在输出就Ctrl+C的话还是会持续的输出,我只能另外写个脚本来关闭对应针脚的输出,有了这个异常捕捉,就方便多了

实际测出来的距离是偏低的

方法都是照抄的,原文地址:http://bbs.elecfans.com/forum.php?mod=viewthread&tid=451330

免责声明:文章转载自《树莓派 HC-SRO4超声波测距模块的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Docker Redis从0来搭建超灵活的MVP商用框架<一>-------从MVC至MVP的转变、通用网络切换框架下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

EC20模块(mdm9607)复用pin脚当作普通gpio的设置方法

修改pin37~40,当作普通gpio的方法如下:   下面代码截图需要确认是否一样,如不一样请修改:   修改pin41~42 ,当作普通gpio方法如下:   Pin24~27,当作普通gpio方法如下:         Pin136不建议修改。 Pin136的用法,请参考以下文件/etc/init.d/wlan:  ...

ESP32开发(2)esp32-cam采集图像

ESP32-CAM摄像头开发板 USB转串口下载器 杜邦连接线若干        注意:GPIO0连接GND(下拉)的作用是让ESP32-CAM进入下载启动模式,这个模式里,才能利用Arduino IDE给ESP32编程,否则IDE会报错,代码烧录完成后,我们需要断开GPIO0和GND的连接,让ESP32进入正常的内存启动模式。 配置ESP32环...

Pyboard基础功能探索---按键、GPIO

板载按键KEY   1.获取板载按键引脚名称 >>> help(pyb.Pin.board) object <class 'board'> is of type type ... SW -- Pin(Pin.cpu.B3, mode=Pin.IN, pull=Pin.PULL_UP) ... 板载用户按键别名:SW,芯片定义...

在Linux驱动中使用gpio子系统

reference: https://blog.csdn.net/shiyongyue/article/details/75103446 http://blog.rongpmcu.com/gpiozi-xi-tong-he-pinctrlzi-xi-tong/ https://www.cnblogs.com/Cqlismy/p/11891789.html...

麦卡姆轮运动原理

安装方式 前进  后退 水平左移  水平右移     树莓派控制电路 import cv2 import numpy as np import time import time import RPi.GPIO as GPIO GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) # 由于硬件...

uboot完全手册---14

1. u-boot介绍 本次移植采用的是U-Boot-1.2.0版本。 3. U-Boot源码分析 3.1 源码入口的解释 可能大多数的同学上网查资料后都了解到,stage1阶段的启动代码,主要就在start.s文件里。此start.s也是系统上电后执行的第一个代码。它全部由汇编编写。在讲述start.s之前,我们先来了解一下,系统怎么知道它要先去star...