樹莓派 HC-SRO4超聲波測距模塊的使用

先上個圖php

這個模塊的針腳跟以前玩的那三個有所區別,除了VCC和GND兩個針腳,還多了兩個Trig和Echo針腳,分別是輸出和輸入,Trig我接的是20針腳,Echo是21spa

該模塊的工做原理爲,先向TRIG腳輸入至少10us的觸發信號,該模塊內部將發出 8 個 40kHz 週期電平並檢測回波。一旦檢測到有回波信號則ECHO輸出高電平迴響信號。迴響信號的脈衝寬度與所測的距離成正比。由此經過發射信號到收到的迴響信號時間間隔能夠計算獲得距離。公式: 距離=高電平時間*聲速(340M/S)/2。code

下面是代碼blog

 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的話仍是會持續的輸出,我只能另外寫個腳原本關閉對應針腳的輸出,有了這個異常捕捉,就方便多了input

實際測出來的距離是偏低的it

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

相關文章
相關標籤/搜索