RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

超聲波模塊測距的使用方法

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 2023-08-28 14:14 ? 次閱讀

一、簡介

1.C-SR04超聲波模塊是一種常用的測距模塊,其通過發(fā)射超聲波并接收其反射信號來實現(xiàn)測距功能。因其成本低、精度高、使用簡便等特點,被廣泛應(yīng)用于以下場景:

(1)避障機器人:HC-SR04超聲波模塊可以用于避障機器人的距離測量,通過檢測障礙物與機器人的距離,實現(xiàn)避障控制。

(2)智能家居:HC-SR04超聲波模塊可用于智能家居中的人體檢測和距離測量。例如,在門口安裝超聲波模塊,可以檢測人的接近并觸發(fā)開門動作,或者用于室內(nèi)的距離測量和觸發(fā)自動照明等。

2.本實驗用到了CW32F030C8T6小藍板、0.96寸OLED顯示屏、HC-SR04超聲波模塊及Keil5開發(fā)環(huán)境。

二、超聲波模塊測距的使用方法

使用流程 連接電源 將VCC引腳連接到+5V,GND引腳連接到GND。

連接觸發(fā)引腳

將Trig引腳連接到單片機的數(shù)字輸出引腳。

連接回波引腳

將Echo引腳連接到單片機的數(shù)字輸入引腳。

發(fā)送信號

通過向Trig引腳發(fā)送一個至少10微秒的高電平觸發(fā)信號來啟動測距過程

接收信號

模塊發(fā)送觸發(fā)信號后,自動發(fā)射超聲波,并等待接收反射信號。當(dāng)接收到反射信號時,Echo引腳會輸出一個高電平信號,持續(xù)時間與超聲波的往返時間成正比。

計算距離

通過測量Echo引腳輸出高電平信號的持續(xù)時間,可以計算得到距離,一般使用以下公式計算:

距離= 高電平持續(xù)時間 × 聲波在空氣中傳播的速度 / 2。

重復(fù)測量

根據(jù)需要可定時測量距離,以實現(xiàn)連續(xù)的距離監(jiān)測。

需要注意的是,HC-SR04超聲波模塊的測距精度受到多種因素的影響,如溫度、超聲波傳播介質(zhì)等。在使用過程中,需要結(jié)合具體的應(yīng)用場景和需求進行參數(shù)調(diào)整和校準(zhǔn),以獲得準(zhǔn)確的距離測量結(jié)果。

三、核心代碼

HC_SR04.c:
#include "HC_SR04.h"


extern unsigned int time;


void HC_GPIO_Init(void)  
{
  __RCC_GPIOB_CLK_ENABLE();
  
  GPIO_InitTypeDef GPIO_InitStruct; 
  GPIO_InitStruct.IT=GPIO_IT_NONE;
  GPIO_InitStruct.Mode=GPIO_MODE_INPUT_PULLDOWN;//下拉輸入
  GPIO_InitStruct.Pins=GPIO_PIN_8;               //Echo
  GPIO_Init(CW_GPIOB,&GPIO_InitStruct);
  
  GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;
  GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;     //推挽輸出
  GPIO_InitStruct.Pins=GPIO_PIN_9;               //Trig 
  GPIO_Init(CW_GPIOB,&GPIO_InitStruct);
  
  PB09_SETLOW();   //Trig拉低,為輸出脈沖觸發(fā)信號做準(zhǔn)備
}


unsigned int Measure_Distance(void) //測距
{
  unsigned int distance=0;
  
  SetTrig();     //10us的脈沖觸發(fā)信號
  Delay_us(10);
  ResetTrig();
  while(ReadEcho()==0); //等待Echo輸出高電平
  time=0;               //開始記錄回波信號脈寬
  while(ReadEcho()==1); //等待Echo輸出低電平     
  distance=time*1.7;//根據(jù)聲速和時間計算距離,即distance=time*340/2/100
  /*
      關(guān)于分辨力(mm):
          定時器每次對time加1是10us,10us=0.01ms,340m/s=340mm/ms
          計算距離時,最小分辨力為:0.01(ms) * 340(mm/ms) / 2 = 1.7(mm)
          小于模塊標(biāo)準(zhǔn)精度3mm,故測距結(jié)果十分精準(zhǔn)
  */
  return distance; //返回距離,單位mm
}
main.c:
#include "HC_SR04.h"


extern unsigned int time;


void HC_GPIO_Init(void)  
{
  __RCC_GPIOB_CLK_ENABLE();
  
  GPIO_InitTypeDef GPIO_InitStruct; 
  GPIO_InitStruct.IT=GPIO_IT_NONE;
  GPIO_InitStruct.Mode=GPIO_MODE_INPUT_PULLDOWN;//下拉輸入
  GPIO_InitStruct.Pins=GPIO_PIN_8;               //Echo
  GPIO_Init(CW_GPIOB,&GPIO_InitStruct);
  
  GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;
  GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;     //推挽輸出
  GPIO_InitStruct.Pins=GPIO_PIN_9;               //Trig 
  GPIO_Init(CW_GPIOB,&GPIO_InitStruct);
  
  PB09_SETLOW();   //Trig拉低,為輸出脈沖觸發(fā)信號做準(zhǔn)備
}


unsigned int Measure_Distance(void) //測距
{
  unsigned int distance=0;
  
  SetTrig();     //10us的脈沖觸發(fā)信號
  Delay_us(10);
  ResetTrig();
  while(ReadEcho()==0); //等待Echo輸出高電平
  time=0;               //開始記錄回波信號脈寬
  while(ReadEcho()==1); //等待Echo輸出低電平     
  distance=time*1.7;//根據(jù)聲速和時間計算距離,即distance=time*340/2/100
  /*
      關(guān)于分辨力(mm):
          定時器每次對time加1是10us,10us=0.01ms,340m/s=340mm/ms
          計算距離時,最小分辨力為:0.01(ms) * 340(mm/ms) / 2 = 1.7(mm)
          小于模塊標(biāo)準(zhǔn)精度3mm,故測距結(jié)果十分精準(zhǔn)
  */
  return distance; //返回距離,單位mm
}

四、實驗最終現(xiàn)象

fd3123fa-4555-11ee-a2ef-92fbcf53809c.png fd8321aa-4555-11ee-a2ef-92fbcf53809c.png

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6034

    文章

    44552

    瀏覽量

    634464
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2694

    瀏覽量

    47427
  • 超聲波
    +關(guān)注

    關(guān)注

    63

    文章

    3011

    瀏覽量

    138344
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    203

    瀏覽量

    625

原文標(biāo)題:【CW32】基于CW32的超聲波模塊的應(yīng)用

文章出處:【微信號:CW32生態(tài)社區(qū),微信公眾號:CW32生態(tài)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    msp430f149控制超聲波測距模塊超聲波模塊似乎沒有反應(yīng) ?

    哥哥們 小弟在用msp430f149控制超聲波測距模塊超聲波模塊似乎沒有反應(yīng)求指教
    發(fā)表于 05-26 20:24

    超聲波模塊測距問題

    ·新上手一塊HC-SR04超聲波模塊寫了一個數(shù)碼管測距顯示,問題來了緩慢移動模塊可以近距離測試顯示,可是超過一米時,時靈時不靈,顯示亂碼,為嘛呢??,求解
    發(fā)表于 03-15 11:41

    【NanoPi M2試用體驗】安裝超聲波模塊測距

    本帖最后由 可樂丸子 于 2016-6-9 13:45 編輯 下面介紹在友善NanoPi M2上連接超聲波模塊HY-SRF05測距方法首先需要連接NanoPi M2開發(fā)板和超聲波模塊
    發(fā)表于 06-09 13:42

    超聲波模塊測距不算精準(zhǔn)

    哪位用過超聲波模塊的?淘寶上買回來,調(diào)試,發(fā)現(xiàn)測距不算精準(zhǔn),只有對著平面還好,對著人的話,數(shù)據(jù)不穩(wěn)定,有解決方法嗎?還是制作工藝已經(jīng)決定了?
    發(fā)表于 04-10 20:54

    超聲波測距原理

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

    基于STM32的超聲波測距設(shè)計

    基于STM32F103的超聲波測距(定時器)使用的硬件設(shè)備:stm32f103c8t6,0.96寸OLED,超聲波模塊HC-SR04廢話不多說,上程序就對了(親測有效)超聲波模塊
    發(fā)表于 07-22 08:53

    如何使用超聲波模塊實現(xiàn)測距功能?

    超聲波測距原理是什么?如何使用超聲波模塊實現(xiàn)測距功能?
    發(fā)表于 10-27 06:35

    超聲波測距的相關(guān)資料分享

    超聲波測距超聲波測距原理超聲波模塊說明書代碼解析超聲波測距
    發(fā)表于 12-08 08:06

    如何通過HC-SR04超聲波模塊去實現(xiàn)測距功能呢

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

    超聲波模塊測量距離防碰撞分析

    超聲波模塊測量距離防碰撞1.超聲波測距:原理:超聲測距其實就是通過單片機控制超聲波模塊發(fā)出一系列
    發(fā)表于 01-05 06:02

    超聲波模塊為什么測距不準(zhǔn)?

    超聲波模塊為什么測距不準(zhǔn),只有在拿一本書靠近模塊時,測得比較準(zhǔn),但是測到人的距離就不怎么準(zhǔn)
    發(fā)表于 10-31 07:23

    基于51單片機的超聲波測距模塊設(shè)計

    超聲波測距模塊,51單片機接上12864液晶,HC-SR04超聲波模塊,就可以了,具體程序沒怎么看,超聲波模塊的硬件也不曉得。
    發(fā)表于 12-10 16:33 ?6967次閱讀

    STM32_超聲波測距

    超聲波測距超聲波測距原理超聲波模塊說明書代碼解析超聲波測距
    發(fā)表于 11-25 10:51 ?165次下載
    STM32_<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>

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

    TCT40-16T.R1規(guī)格書.pdf 超聲波測距模塊_HC-SRO4_用戶手冊-V2.pdf超聲波模塊參考.pdf 超聲波模塊說明圖.
    發(fā)表于 03-14 15:13 ?195次下載

    基于CW32的超聲波模塊的應(yīng)用

    C-SR04超聲波模塊是一種常用的測距模塊,其通過發(fā)射超聲波并接收其反射信號來實現(xiàn)測距功能。
    的頭像 發(fā)表于 09-06 09:13 ?973次閱讀
    RM新时代网站-首页