色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

第15章-超聲波避障功能 HC-SR04超聲波測距模塊詳解STM32超聲波測距

dfhjgfg ? 來源:dfhjgfg ? 作者:dfhjgfg ? 2024-08-21 15:41 ? 次閱讀

功能介紹放開頭, 使用便捷無需愁

這是全網最詳細、性價比最高的STM32實戰項目入門教程,通過合理的硬件設計和詳細的視頻筆記介紹,硬件使用STM32F103主控資料多方便學習,通過3萬字筆記、12多個小時視頻、20多章節代碼手把手教會你如何開發和調試。讓你更快掌握嵌入式系統開發。

**V3.3.0-STM32智能小車 **

**視頻: **[https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click]

V3:HAL庫開發、功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、視覺控制、電磁循跡、RTOS等功能。

15.1-超聲波測距

完成超聲波測距功能、測量數據顯示在OLED屏幕上

硬件介紹

**使用:HC-SR04 超聲波測距模塊 **

注意: 繪制PCB注意四個引腳順序 Vcc Trig Echo Gnd

** 供電3.3V-5V(最好5V)**
在這里插入圖片描述

測距原理
在這里插入圖片描述
不同模式
在這里插入圖片描述
GPIO模式
在這里插入圖片描述
查看原理圖

通過超聲波的硬件介紹我們知道

** MCU給Trig腳一個大于10us的高電平脈沖;然后讀取Echo腳的高電平信號時間,通過公式:距離 = T* 聲速/2 就可以算出來距離。**

Trig(PB5)我們配置為GPIO輸出

Echo(PA6)我們配置GPIO輸入功能

注:這里大家可能會問,為什么不使用定時器捕獲功能?

原因:

  1. 留一個定時器 方便以后擴展FreeRTOS使用
  2. 或者擴展其他舵機、電機

在這里插入圖片描述
在這里插入圖片描述
軟件初始化

設置PB5輸出模式然后起別名
在這里插入圖片描述
設置PA6輸入模式、
在這里插入圖片描述
然后生成代碼

自己新建HC_SR04.c和HC_SR04.h 然后加入工程,指定路徑

防止溢出 把之前使用的數組調整大一些

在這里插入圖片描述
因為我們不適用定時器所以我們需要自己寫一個us級延時函數
在這里插入圖片描述

/*******************
*  @brief  us級延時
*  @param  usdelay:要延時的us時間
*  @return  
*
*******************/
void HC_SR04_Delayus(uint32_t usdelay)
{
  __IO uint32_t Delay = usdelay * (SystemCoreClock / 8U / 1000U/1000);//SystemCoreClock:系統頻率
  do
  {
    __NOP();
  }
  while (Delay --);
}

在這里插入圖片描述

/*******************
*  @brief  HC_SR04讀取超聲波距離
*  @param  無
*  @return 障礙物距離單位:cm (靜止表面平整精度更高) 
*注意:兩個HC_SR04_Read()函數調用的時間間隔要2ms及以上,測量范圍更大 精度更高 
*******************/
float HC_SR04_Read(void)
{
uint32_t i = 0;
float Distance;
HAL_GPIO_WritePin(HC_SR04_Trig_GPIO_Port,HC_SR04_Trig_Pin,GPIO_PIN_SET);//輸出15us高電平
HC_SR04_Delayus(15);
HAL_GPIO_WritePin(HC_SR04_Trig_GPIO_Port,HC_SR04_Trig_Pin,GPIO_PIN_RESET);//高電平輸出結束,設置為低電平

while(HAL_GPIO_ReadPin(HC_SR04_Echo_GPIO_Port,HC_SR04_Echo_Pin) == GPIO_PIN_RESET)//等待回響高電平
{
i++;
HC_SR04_Delayus(1);
if(i >100000) return -1;//超時退出循環、防止程序卡死這里
}
i = 0;
while(HAL_GPIO_ReadPin(HC_SR04_Echo_GPIO_Port,HC_SR04_Echo_Pin) == GPIO_PIN_SET)//下面的循環是2us
{
i = i+1;
HC_SR04_Delayus(1);//1us 延時,但是整個循環大概2us左右
if(i >100000) return -2;//超時退出循環
}
Distance = i*2*0.033/2;//這里乘2的原因是上面是2微妙
return Distance;
}

然后就可以讀距離了、連上藍牙可以顯示數據

注意:兩個HC_SR04_Read()函數調用的時間間隔要2ms及以上,測量范圍更大 精度更高
在這里插入圖片描述

sprintf((char *)Usart3String,"HC_SR04:%.2fcmrn",HC_SR04_Read());//顯示超聲波數據
HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const  char  *)Usart3String),0xFFFF);//通過串口三輸出字符 strlen:計算字符串大小
?

然后把我們的手機藍牙和小車藍牙連接

手機顯示
在這里插入圖片描述

15.2-避障邏輯編寫

在這里插入圖片描述
然后我們編寫循跡邏輯,我們的邏輯時
在這里插入圖片描述

//**************避障功能********************//
//避障邏輯
if(HC_SR04_Read() > 25)//前方無障礙物
{
motorPidSetSpeed(1,1);//前運動
HAL_Delay(100);
}
else{//前方有障礙物
motorPidSetSpeed(-1,1);//右邊運動 原地
HAL_Delay(500);
if(HC_SR04_Read() > 25)//右邊無障礙物
{
motorPidSetSpeed(1,1);//前運動
HAL_Delay(100);
}
else{//右邊有障礙物
motorPidSetSpeed(1,-1);//左邊運動 原地
HAL_Delay(1000);
if(HC_SR04_Read() >25)//左邊無障礙物
{
 motorPidSetSpeed(1,1);//前運動
HAL_Delay(100);
}
else{
motorPidSetSpeed(-1,-1);//后運動
HAL_Delay(1000);
motorPidSetSpeed(-1,1);//右邊運動
HAL_Delay(50);
}
}
}

這樣我們就可以使用超聲波讀取距離值了。
下篇16章我們i講解如何利用超聲波做跟隨,我們后面會定距離跟隨的功能。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2270

    文章

    10910

    瀏覽量

    356671
  • 超聲波測距
    +關注

    關注

    5

    文章

    246

    瀏覽量

    37951
  • 超聲波避障
    +關注

    關注

    0

    文章

    5

    瀏覽量

    2900
收藏 人收藏

    評論

    相關推薦

    超聲波測距原理

    到達障礙物后被反射回來,傳感器接收到反射脈沖后立即停止計時,然后根據超聲波的傳播速度和計時時間就能計算出兩端的距離。2.超聲波模塊此次采用的是市面上常用的超聲波模塊HC-SR04;
    發表于 07-21 07:01

    關于HC-SR04超聲波測距模塊

    參考:某寶HC-SR04 超聲波測距模塊商品詳情頁1.關于HC-SR04 超聲波
    發表于 08-10 06:24

    如何利用HC-SR04超聲波測距模塊去實現精確的直線測距

    超聲波測距原理是什么?利用STM32驅動HC-SR04需要做好哪幾個關鍵點?如何利用HC-SR04超聲
    發表于 10-20 07:28

    HC-SR04超聲波測距模塊的相關資料分享

    51單片機學習路之HC-SR04超聲波模塊前言 本人是一個小白,第一次寫博客,基礎欠佳,有待夯實,能力不足,需要進步。大概會在此博客中漏洞百出,望君在閱讀后可以進行批評指正,不勝感
    發表于 11-23 07:47

    基于stm32HC-SR04超聲波測距模塊怎么使用?

    基于stm32HC-SR04超聲波測距模塊怎么使用?
    發表于 11-25 09:15

    如何利用現成的SysTick去實現HC-sr04超聲波測距

    什么是HC-sr04超聲波測距模塊呢?HC-sr04超聲波
    發表于 12-02 08:10

    HC-SR04超聲波測距模塊原理

    、HC-SR04超聲波測距模塊原理1.模塊簡介HC-SR04
    發表于 12-06 07:14

    如何通過HC-SR04超聲波模塊去實現測距功能

    HC-SR04超聲波模塊是什么?如何通過HC-SR04超聲波模塊去實現測距功能呢?
    發表于 12-13 06:00

    HC-SR04超聲波測距模塊簡介

    1 簡介HC-SR04超聲波測距模塊可提供 2cm-400cm的非接觸式距離感測功能,測 距精度可達高到 3mm ;
    發表于 01-06 06:05

    HC-SR04超聲波測距模塊及程序

    HC-SR04超聲波測距模塊及程序HC-SR04超聲波測距
    發表于 12-08 16:50 ?83次下載

    超聲波測距模塊HC-SR04)用戶手冊

    超聲波資料,超聲波測距模塊HC-SR04)用戶手冊。
    發表于 12-19 14:01 ?87次下載

    簡單的超聲波測距模塊制作_HC-SR04超聲波測距模塊及制作圖詳解

    本文主要介紹的是HC-SR04超聲波測距模塊及制作圖詳解,首先介紹了超聲波
    發表于 05-18 09:40 ?5.4w次閱讀
    簡單的<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b><b class='flag-5'>模塊</b>制作_<b class='flag-5'>HC-SR04</b><b class='flag-5'>超聲波</b><b class='flag-5'>測距</b><b class='flag-5'>模塊</b>及制作圖<b class='flag-5'>詳解</b>

    使用單片機和HC-SR04設計超聲波測距系統的設計資料合集

    HC-SR04超聲波測距模塊配套資料合集免費下載包括了:STC89C52RC系列手冊,PCB截圖,基于單片機的超聲波
    發表于 11-06 08:00 ?136次下載
    使用單片機和<b class='flag-5'>HC-SR04</b>設計<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>系統的設計資料合集

    HC-SR04超聲波測距塊講解(附32單片機源碼)

    、HC-SR04超聲波測距模塊原理1.模塊簡介HC-SR04
    發表于 11-23 18:21 ?133次下載
    <b class='flag-5'>HC-SR04</b><b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>塊講解(附32單片機源碼)

    超聲波測距資料(HC-SR04)_TB

    超聲波測距資料(HC-SR04)_TB 超聲波PIC單片機C程序超聲波測距51C程序
    發表于 03-14 15:13 ?195次下載
    主站蜘蛛池模板: 翁熄性放纵交换01| 中文字幕AV在线一二三区| 中文日产无乱码AV在线观| 国产一区二区三区乱码在线观看 | blacked黑人战小美女| 久久久久久久99精品免费观看| 亚洲精品AV无码喷奶水糖心| 国产人妻麻豆蜜桃色69| 我要女人的全黄录像| 国产精品亚洲精品久久国语| 学校捏奶揉下面污文h| 黑人巨茎大战白人女40CMO| 一区二区三区内射美女毛片| 久久免费观看视频| 最新无码国产在线视频2020| 噜噜噜狠狠夜夜躁| adc影院在线| 帅哥操美女| 国内精品自线在拍2020不卡| 一边喂奶一边做边爱| 毛茸茸womansex| 把极品白丝班长啪到腿软| 日韩综合网| 国产在线aaa片一区二区99| 一二三四在线视频社区8| 美女MM131爽爽爽| 成人亚洲视频在线观看| 亚欧乱亚欧乱色视频| 久久精品电影网| 99热这里只就有精品22| 日日噜噜夜夜狠狠扒开双腿| 国产片MV在线观看| 国产欧洲野花A级| 国产午夜精品理论片影院| 无套内射在线观看THEPORN| 国产精品高清视亚洲一区二区| 亚洲 综合 欧美在线视频| 久久不射视频| 波多野结衣 熟女| 亚洲欧美日韩一级特黄在线| 男人团apk|