樹莓派io口 樹莓派 超聲波模組基礎應用

2021-10-16 11:12:27 字數 1898 閱讀 1010

hc-sr04超聲波模組的優勢及應用領域

hc-sr04效能穩定,測度距離精確,模組高精度,盲區小。常應用領域於:機械人避障、物體測距、液位檢測、公共安防、停車場檢測等。

超聲波測距模組工作原理

採用 io 口 trig 觸發測距,給最少 10us 的高電平信呈。

模組自動傳送 8 個 40khz 的方波,自動檢測是否有訊號返回。

有訊號返回,通過 io 口 echo 輸出乙個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離=(高電平時間*聲速(340m/s))/2。

模組引數:

工作電壓:5v

工作電流:15ma

射程範圍:2cm-4m

模組的應用

利用模組發出超聲波接受返回的超聲波測試距離

線路連線(*連線線路時樹莓派務必斷電操作)

第一端:vcc正極接入樹莓派(5v)4號引腳,第四端:gnd負極接入樹莓派6號引腳,第二端:trig為觸發控制訊號輸入接入38號引腳,第三端為echo回訊號輸出接入40號引腳。

編寫程式distance.py

import rpi.gpio as gpio #匯入 gpio庫

import time

gpio.setmode(gpio.board) #設定 gpio 模式為board

gpio.setwarnings(false) #關閉錯誤提示

trig = 38 #定義 gpio 引腳

echo = 40

gpio.setup(trig, gpio.out) #設定 gpio 的工作方式 (in / out)

gpio.setup(echo,

def distance():

gpio.output(trig, true) # 傳送高電平訊號到 trig 引腳

time.sleep(0.00001) # 持續 10 us

gpio.output(trig, false)

start_time = time.time()

stop_time = time.time()

while gpio.input(echo) == 0: # 記錄傳送超聲波的時刻1

start_time = time.time()

while gpio.input(echo) == 1: # 記錄接收到返回超聲波的時刻2

stop_time = time.time()

time_elapsed = stop_time - start_time # 計算超聲波的往返時間 = 時刻2 - 時刻1

distance = (time_elapsed * 34300) / 2 # 聲波的速度為 343m/s, 轉化34300cm/s。

return distance

if __name__ == '__main__':

try:

while true:

dist = distance()

print('測量距離 = : %1.1f cm' %(dist))

time.sleep(1)

except keyboardinterrupt:

print("使用者停止")

gpio.cleanup()

執行程式如無誤的話程式會一直持續執行,超聲波開始工作,將測量換算到的資料列印在視窗上。

樹莓派編寫超聲波模組程式

初始化 在程式的開始的時候需要呼叫上面的任意的函式來對wiringpi 進行初始化,否則你的程式不能正常工作。int wiringpisetup void 設定引腳電平 void pinmode int pin,int mode 引數說明 pin 引腳編號 根據wiringpi的引腳說明圖找到各個引...

樹莓派 超聲波模組HC SR04的應用

樹莓派b型 麵包板hc sr04超聲波模組 採用io口trig觸發測距,給至少10us的高電平訊號 模組自動傳送8個40khz的方波,自動檢測是否有訊號返回 有訊號返回,通過io口echo輸出乙個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離 高電平時間 聲速 340m s 2 詳細...

樹莓派連線超聲波感測器

你知道蝙蝠是個 瞎子 嗎?那它怎麼看東西呢?好吧,它是通過超聲波來探路的。下面我要介紹的就是超聲波模組,有了它你的樹莓派就再也不用當心會 撞牆 了!該模組會發出超聲波,在聲波碰到障礙物時會立刻返回被該模組接收到。通過超聲波模組來測距的原理就是,計算聲波返回的時間,然後與聲波的傳遞速度相乘,就能得到距...