STM32高階 超聲波感測器的應用詳細步驟

2021-10-23 16:50:59 字數 1341 閱讀 8197

**實現詳細步驟

注意事項

提取碼:1234

(1)採用io口trig觸發測距,給最少10us的高電平訊號。

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

(3)有訊號返回, 通過io口echo輸出乙個高電平, 高電平持續的時間就是超聲

波從發射到返回的時間。測試距離=(高電平時間*聲速(340m/s))/2

由時序圖可知:

只需要提供乙個 10us以上脈衝觸發訊號,該模組內部將發出8個 40khz週期電平並檢測回波。一旦檢測到有回波訊號則輸出迴響訊號。迴響訊號的脈衝寬度與所測的距離成正比。 由此通過發射訊號到收到的迴響訊號時間間隔可以計算得到距離。 公式:us/58=厘公尺或者us/148=英吋; 或是:** 距離=高電平時間*聲速( 340m/s) /2**; 建議測量週期為 60ms以上, 以防止發射訊號對迴響訊號的影響。

文章開頭的資料鏈結有教程;

以下是我的stm32f4開發板的連線圖:

//設定pa2為輸出、快速、推挽、上拉,pa3為輸入、快速、推挽、上拉
void

tim3_init

(void

)

int

get_csb_value

(void

)//開定時器

tim_cmd

(tim3, enable)

;//計數直到高電平結束

//做超時等待

t =0;

while

(pain(3

)==1)

}//關定時器

tim_cmd

(tim3, disable)

;//讀取cnt值

echo_time =

tim_getcounter

(tim3)

;return echo_time/58;

}

最後在main函式初始化,呼叫,在串列埠上列印輸出該函式即可1.超聲波模組在剛上電時,測距誤差會受到極大的影響,負數都有可能出現,需要等待該模組穩定都測距才恢復正常。

2.最好採用採集多次距離取平均距離的方式,會比較精準,後續再更新。

STM32驅動超聲波測距感測器

先貼 以後再補說明 tim icinittypedef tim5 icinitstructure void tim5 cap init u16 arr,u16 psc u8 tim5ch1 capture sta 0 輸入捕獲狀態 u16 tim5ch1 capture val 輸入捕獲值 定時器5...

超聲波感測器 單介紹超聲波

超聲波是聲波的一部分,是人耳聽不見 頻率高於20khz的聲波,它和聲波有共同之處,即都是由物質振動而產生的,並且只能在介質中傳播 同時,它也廣泛地存在於自然界,許多動物都能發射和接收超聲波,其中以蝙蝠最為突出,它能利用微弱的超聲回波在黑暗中飛行並捕捉食物。但超聲還有它的特殊性質 如具有較高的頻率與較...

世界最小超聲波感測器問世

英國研究人員16日說,他們製造出了世界上最小的超聲波感測器。它是如此微小,以至於可以在一根頭髮絲上排成佇列。這一成果可廣泛用於探索細胞內部等微觀環境。英國諾丁漢大學當天發布公報說,該校應用光學研究小組製造出了這種微型超聲波感測器。它比現有的超聲波感測器要小許多,500個這種感測器排在一起才會達到一根...