hc-sr04 模組可以測量 3cm – 4m 的距離,測量角度為15度,精確度可以達到 3mm。這個模組包括超聲波發射器、超聲波接收器和控制電路三部分。有如下 4 個引腳:
【注意】 echo 返回的是 5v訊號,而樹莓派的 gpio 接收超過 3.3v 的訊號可能會被燒毀,因此需要加乙個分壓電路
樹莓派向 trig 腳傳送乙個持續 10us 的脈衝訊號;
hc-sr04 接收到樹莓派傳送的脈衝訊號,開始傳送超聲波 (start sending ultrasoun),並把 echo置為高電平。 然後準備接收返回的超聲波;
當 hc-sr04 接收到返回的超聲波 (receive returned ultrasound) 時,把 echo 置為低電平。
完整**如下:
#匯入 gpio庫
import rpi.gpio as gpio
import time
#設定 gpio 模式為 bcm
gpio.setmode(gpio.bcm)
#定義 gpio 引腳
gpio_trigger =
23gpio_echo =
24#設定 gpio 的工作方式 (in / out)
gpio.setup(gpio_trigger, gpio.out)
gpio.setup(gpio_echo, gpio.in)
# 測距函式
defultrasonic_distance()
:# 傳送高電平訊號到 trig 引腳
gpio.output(gpio_trigger,
true
)# 持續 10 us
time.sleep(
0.00001
) gpio.output(gpio_trigger,
false)
start_time = time.time(
) stop_time = time.time(
)# 記錄傳送超聲波的時刻1
while gpio.
input
(gpio_echo)==0
: start_time = time.time(
)# 記錄接收到返回超聲波的時刻2
while gpio.
input
(gpio_echo)==1
: stop_time = time.time(
)# 計算超聲波的往返時間 = 時刻2 - 時刻1
time_elapsed = stop_time - start_time
# 聲波的速度為 343m/s, 轉化為 34300cm/s。
distance =
(time_elapsed *
34300)/
2return distance
if __name__ ==
'__main__'
:try
:while
true
: dist = ultrasonic_distance(
)print
("measured distance = cm"
.format
(dist)
) time.sleep(1)
# reset by pressing ctrl + c
except keyboardinterrupt:
print
("measurement stopped by user"
) gpio.cleanup(
)
樹莓派上使用hc-sr04超聲波測距模組 樹莓派 超聲波模組HC SR04的應用
樹莓派b型 麵包板hc sr04超聲波模組 採用io口trig觸發測距,給至少10us的高電平訊號 模組自動傳送8個40khz的方波,自動檢測是否有訊號返回 有訊號返回,通過io口echo輸出乙個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離 高電平時間 聲速 340m s 2 詳細...
樹莓派上使用HC SR04超聲波測距模組
hc sr04 模組可以測量 3cm 4m 的距離,精確度可以達到 3mm。這個模組包括 超聲波發射器 超聲波接收器和控制電路三部分。有 4 個引腳。4 個引腳由 2 個電源引腳 vcc gnd 和 2 個控制引腳 trig echo 組成。vcc 和 gnd 接 5v dc 電源,使用樹莓派或微控...
超聲波hc sr04模組 樹莓派基於C語言程式
產品特點 hc sr04 超聲波測距模組可提供 2cm 400cm 的非接觸式距離感測功能,測距精度可達高到 3mm 模組包括超聲波發射器 接收器與控制電路。基本工作原理 1 採用 io 口 trig 觸發測距,給最少 10us 的高電平信呈。2 模組自動傳送 8 個 40khz 的方波,自動檢測是...