樹莓派 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM