1. 程式人生 > 其它 >STM32 HAL庫快速實戰【九】《超聲波感測器的使用以及自由避障》--基於黑龍江科技大學機電工業機器人實訓

STM32 HAL庫快速實戰【九】《超聲波感測器的使用以及自由避障》--基於黑龍江科技大學機電工業機器人實訓

系列目錄

模組介紹

引腳 作用
VCC 電源,3.3-5V
Trig (Trigger) 觸發超聲波脈衝
Echo 回聲當接收到反射訊號時,引腳產生一個脈衝。脈衝的長度與檢測發射訊號所需的時間成正比。
GND 接地

(1)超聲波測距原理
1)超聲波測距原理是在超聲波發射裝置發出超聲波,它的根據是接收器接到超聲波時的時間差,與雷達測距原理相似。 超聲波發射器向某一方向發射超聲波,在發射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。(超聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間t,就可以計算出發射點距障礙物的距離(s),即:s=340t/200)
(2)HC-SR04超聲波測距模組工作原理
1)採用IO觸發測距,給至少10us的高電平訊號。
2)模組自動傳送8個40KHz的方波,自動檢測是否有訊號返回。
3)有訊號返回,通過IO輸出一高電平,高電平持續時間就是超聲波從發射到返回的時間聲波從發射到返回的時間
————————————————
版權宣告:本文為CSDN博主「精神小火君」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:

https://blog.csdn.net/weixin_43853307/article/details/104065508

接線

Trig接到SA5上即PA4上
Echo接到SD5即PA6上

CubeMX配置

複製上一節工程,新增兩個GPIO,PA4設定為推輓輸出,初始高電平,標籤Trig
PA6設定為輸入,浮空模式,標籤Echo

編寫程式碼

由於驅動模組涉及到多次翻轉電平,為了省事,我們可以define一下GPIO輸入輸出程式碼。
開啟sensor.h,將WritePin定義為Trig(),這樣可以直接Trig(1)進行輸出高電平。將ReadPin定義為Echo()

#define Trig(x) HAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,(GPIO_PinState)x)
#define Echo() HAL_GPIO_ReadPin(Echo_GPIO_Port,Echo_Pin)

工程原始碼

國內使用者請使用gitee克隆或是使用代理訪問Github
https://github.com/USTHzhanglu/stm32-hal/tree/main/hcsr-04