**實現詳細步驟
注意事項
提取碼: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個這種感測器排在一起才會達到一根...