樹莓派上使用HC SR04超聲波測距模組

2021-10-02 10:29:19 字數 1765 閱讀 1855

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超聲波模組主要是由兩個通用的壓電陶瓷超聲感測器,並加外圍訊號處理電路構成的。如圖 兩個壓電陶瓷超聲感測器,乙個用於發出超聲波訊號,乙個用於接收反射回來的超聲波訊號。由於發出訊號和接收...