色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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

    文章

    10904

    瀏覽量

    356307
  • 超聲波測距
    +關注

    關注

    5

    文章

    246

    瀏覽量

    37933
  • 超聲波避障
    +關注

    關注

    0

    文章

    5

    瀏覽量

    2887
收藏 人收藏

    評論

    相關推薦

    超聲波測距原理

    到達障礙物后被反射回來,傳感器接收到反射脈沖后立即停止計時,然后根據超聲波的傳播速度和計時時間就能計算出兩端的距離。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次下載
    主站蜘蛛池模板: vivoe另类| 精子射到丝袜上图| 男人就爱吃这套下载| 99久久精品国产自免费| 日本粉嫩学生毛绒绒| 国产AV视频二区在线观看| 亚洲 日韩经典 中文字幕| 久久精品国产亚洲AV未满十八| 91国在线啪精品一区| 色多多污网站在线观看| 黄页网址大全免费观看| 99热6精品视频6| 小草观看免费高清视频| 老阿姨儿子一二三区| 成人18视频在线观看| 一本道mw高清码二区三区| 欧美又粗又大AAAA片| 狠狠色欧美亚洲狠狠色www| 99国内偷揿国产精品人妻| 性饥渴姓交HDSEX| 美女pk精子4| 国产区精品综合在线| 99re5久久热在线| 亚洲国产欧美日本大妈| 欧美亚洲综合另类无码| 精品国产国产综合精品| 第一次处破女完整版电影| 一二三四中文字幕在线看| 色尼玛亚洲| 美女网站免费看| 好男人免费观看在线高清WWW| wwwzzz日本| 中文字幕无码一区二区免费| 无码欧美喷潮福利XXXX| 欧美性xxxxxx爱| 久久久精品免费视频| 国产精品无码久久久久不卡| SM调教贱屁股眼哭叫求饶H| 中文在线观看免费网站| 亚洲VA天堂VA欧美VA在线| 日本女人bb|