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

先上个图

这个模块的针脚跟之前玩的那三个有所区别,除了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

 

转载于:https://www.cnblogs.com/New-world/p/4614954.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值