hc-sr04 模組可以測量 3cm – 4m 的距離,精確度可以達到 3mm。這個模組包括 超聲波發射器、超聲波接收器和控制電路三部分。有 4 個引腳。
4 個引腳由 2 個電源引腳(vcc 、gnd)和 2 個控制引腳(trig、echo)組成。
vcc 和 gnd 接 5v dc 電源,使用樹莓派或微控制器的 gpio 口輸出 5v 和 gnd 給它供電。
trig 引腳用來接收來自樹莓派的控制訊號。接任意 gpio 口。
echo 引腳用來傳送測距結果給樹莓派。接任意 gpio 口。
(1) 樹莓派向 trig 腳傳送乙個持續 10us 的脈衝訊號。
(2) hc-sr04 接收到樹莓派傳送的脈衝訊號,開始傳送超聲波 (start sending ultrasoun),並把 echo置為高電平。 然後準備接收返回的超聲波。
(3) 當 hc-sr04 接收到返回的超聲波 (receive returned ultrasound) 時,把 echo 置為低電平。
echo 高電平持續的時間就是超聲波從發射到返回所經過的時間間隔
#匯入 gpio庫
import rpi.gpio as gpio
import time
#設定 gpio 模式為 bcm
gpio.setmode(gpio.bcm)
#定義 gpio 引腳
gpio_trigger = 23
gpio_echo = 24
#設定 gpio 的工作方式 (in / out)
gpio.setup(gpio_trigger, gpio.out)
gpio.setup(gpio_echo, gpio.in)
def 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) / 2
return distance
if __name__ == '__main__':
try:
while true:
dist = 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 模組可以測量 3cm 4m 的距離,測量角度為15度,精確度可以達到 3mm。這個模組包括超聲波發射器 超聲波接收器和控制電路三部分。有如下 4 個引腳 注意 echo 返回的是 5v訊號,而樹莓派的 gpio 接收超過 3.3v 的訊號可能會被燒毀,因此需要加乙個分壓電路 樹莓派向...
樹莓派 超聲波模組HC SR04的應用
樹莓派b型 麵包板hc sr04超聲波模組 採用io口trig觸發測距,給至少10us的高電平訊號 模組自動傳送8個40khz的方波,自動檢測是否有訊號返回 有訊號返回,通過io口echo輸出乙個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離 高電平時間 聲速 340m s 2 詳細...
詳解超聲波測距模組HC SR04的使用
1.模組簡介 hc sr04超聲波模組常用於機械人避障 物體測距 液位檢測 公共安防 停車場檢測等場所。hc sr04超聲波模組主要是由兩個通用的壓電陶瓷超聲感測器,並加外圍訊號處理電路構成的。如圖 兩個壓電陶瓷超聲感測器,乙個用於發出超聲波訊號,乙個用於接收反射回來的超聲波訊號。由於發出訊號和接收...