超音波測距模組

      在〈超音波測距模組〉中尚無留言

圖片

hc-sr0-1 hc-sr0-2

運作

超音波測距模組用來測量前方障礙物的距離. HC-SR0這型號有四支針腳,
VCC : +5V
Trig   : 接到GPIO04, 設為Output
Echo : 接到GPIO05, 設為Input
Gnd  : 接地

Trig 先啟動3V, 加入電壓約10ms後再關掉. 過了一段時間準備後, Echo 針腳狀況會變成High, 此時就可以開始計時(t1), 因為此時開始發射8個40kHz的方型超音波.
當接收到回波後, 此針腳就狀態就會變成Low, 此時就可以結束計時(t2)

t2-t1就是聲波來回的時間, 所以單程時間為 (t2-t1)/2

音速

音速依當時溫及氣壓有所不同. 但差異不多, 所以可以依 340m/s的速度來計算. 也就是每秒會跑340公尺=34000cm.
所以1cm需要1/34000秒 = 2.9412 * 10-5秒 = 2.9412 * 10-2 ms = 29.412 微秒

另一個思考方式
1 sec : 34000cm        (1秒    34000公分)
1 ms  : 34cm              (1毫秒 34公分)
1微秒 : 0.034cm        (1微秒 0.034公分)
1奈秒 : 0.000034cm  (1奈秒 0.000034公分)

距離計算

所以上述的(t2-t1)/2, 為單程的奈秒數, (t2-t1)/2/1000為單程的微秒數,
(t2-t1)/2/1000/29.412 即為單程距離的cm值.

當然也可以使用 (t2-t1)/2/1000*0.034 cm

精準度

本模組的精準度真的是會嚇死人, 規格如下
輸出電位( 1/ 0):5V/ 0V
精度:3mm
距離範圍:2 ~ 450cm
有效的角度:<15o
觸發輸入信號:10uS TTL pulse

接線方式

超音波感測器的 Vcc 接 ping 2(+5v)
超音波感測器的 Trig 接 GPIO 24
超音波感測器的 GND 接樹莓派的GND

請注意,超音波感測器的 Echo 端輸出為 5V,而樹莓派的 GPIO 23 只接收 3.3V。
為了不讓樹莓派燒毀,需在超音波感測器的 Echo 端並連 150Ω 及300Ω 電阻,150Ω 接入 GPIO23,300Ω接入樹莓派的 GND。

其實也並不一定要 150Ω 及 300Ω,只要是 1:2 即可。這樣就可以把 5V 降底為 3.3V。

程式範例

底下為最簡單的距離測量代碼

from gpiozero import DistanceSensor
from time import sleep

sensor = DistanceSensor(23, 24)

while True:
    print('Distance to nearest object is', sensor.distance*100, 'cm')
    sleep(0.5)

官網

https://gpiozero.readthedocs.io/en/stable/api_input.html#distancesensor-hc-sr04

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *