close

今天來實驗超音波這玩意

之前我先看網路上的文章,把超音波感測器的原理看了一下,有的都有數學,好複雜,哈哈

因為我數學很差,還好有求得的數字,記著就好。

首先準備材料

實驗材料

樹莓派主機(23B+

麵包板 + TGPIO擴展板(T-Cobbler

電阻 1kΩ x 1 2kΩ x 1

HC-SR04 超音波感測器 x 1

杜邦線 x 5

hcsr04-001_bb.png

HC-SR04-Timing-Diagram.png

我個人自己理解的工作原理,簡要敍述如下:

Trigger高腳位時會發出10us的訊號,此時HC-SR04收到訊號後會發出840HZh的超音波,Echo開始發出高電位,讓HC-SR04量測時間長度。

*聲音和障礙物的距離用一個公式求得:接收結束的時間  減去   發出訊號開始的時間     *   17150,下面程式碼裡26行會用到

這時就可以寫程式碼

  1. import RPi.GPIO as GPIO  
  2. import time  
  3.   
  4. GPIO.setwarnings(False)  
  5. GPIO.setmode(GPIO.BCM)  
  6.   
  7. TRIG = 23  
  8. ECHO = 24  
  9.   
  10. GPIO.setup(TRIG, GPIO.OUT)  
  11. GPIO.setup(ECHO, GPIO.IN)  
  12.   
  13. def get_distance():  
  14.       
  15.           
  16.         GPIO.output(TRIG, GPIO.HIGH)  
  17.         time.sleep(2)  
  18.         GPIO.output(TRIG, GPIO.LOW)  
  19.   
  20.         while GPIO.input(ECHO)==0:  
  21.             start = time.time()  
  22.   
  23.         while GPIO.input(ECHO)==1:  
  24.             end = time.time()  
  25.   
  26.         D=(end - start) * 17150  
  27.         return D  
  28.       
  29. while True:  
  30.       
  31.     print("{}{:.1f}{}".format("量測距離為: ",get_distance(),"公分"))  
  32.   
  33.   
  34. GPIO.cleanup()  

 

以下是實驗驗證

參考文章

1

https://blog.everlearn.tw/%E7%95%B6-python-%E9%81%87%E4%B8%8A-raspberry-pi/raspberry-pi-3-model-b-%E8%88%87-hc-sr04-%E8%B6%85%E9%9F%B3%E6%B3%A2%E6%84%9F%E6%B8%AC%E5%99%A8%E4%B9%8B%E5%8E%9F%E7%90%86%E9%87%8B%E7%96%91

2

https://raspberrypi.readbook.tw/hcsr04.html

arrow
arrow
    創作者介紹
    創作者 定凱 的頭像
    定凱

    大的人身,小的心靈…保持赤子之心。

    定凱 發表在 痞客邦 留言(0) 人氣()