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

2021-10-03 03:41:21 字數 1985 閱讀 4308

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 的方波,自動檢測是...