衡阳派盒市场营销有限公司

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

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

3天內不再提示

基于STM32F411的cm級超聲波測距系統及完整代碼

芯情觀察猿 ? 來源:芯情觀察猿 ? 作者:芯情觀察猿 ? 2022-08-15 09:10 ? 次閱讀

本項目通過HC-SR04超聲波傳感器STM32F411開發板,以精確到cm的精度測量目標物體的距離。項目BOM表如下:

STM32F411RE開發板 x1

HC-SR04超聲波傳感器 x1

跳線 若干


其中,HC-SR04超聲波傳感器可以0.3cm精度讀取2-400cm范圍距離,而且超聲波發射器和接收器組合在一起,適合大多數個人愛好項目。主要性能包括:

工作電源:5VDC

工作電流:15mA

工作頻率:40KHz

最大距離:4m

最小距離:2cm

測量角度:15度

分辨率:0.3cm

觸發輸入信號:10uS TTL脈沖

回升輸出信號:TTL脈沖,與測量成距離成正比


pYYBAGL5nQaANnutAAG4dAhCugA128.png

?

當傳感器接收到一個觸發信號,就發出一個40KHz突發信號。該信號通過空氣傳播,在撞到目標物體后返回傳感器,再由傳感器根據一定算法得出被測物體的距離。

HC-SR04傳感器與STM32的連接電路比較簡單,傳感器Vcc與STM32板的5V連接,兩個板子的GND引腳連接,傳感器的Trig 引腳與開發板的A0 (PA0) 連接,echo引腳與開發板的A1 (PA1)引腳連接。


poYBAGL5nQeAYCX7AAQV4inxFGQ910.png

按照上述電路圖連接妥當后,將以下代碼上傳到Arduino IDE。


#include "stm32f4xx.h"

// Device header

//macros for trigger pin

#define Trig_high GPIOA->BSRR=GPIO_BSRR_BS_0 // turn on PA0 (trig pin)

#define Trig_low GPIOA->BSRR=GPIO_BSRR_BR_0 // turn off PA0 (trig pin)

?

uint32_t duration;

float distance;

//prototypes of the used function

void delaymS(uint32_t ms);

void delayuS(uint32_t us);

uint32_t read_echo(uint32_t timeout);

?

int main(void)

?

{

RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; //enable GPIOA Clock

GPIOA->MODER |= (1<<0); //set PA0 to Output

//configure Timer1 to generate micorseconds delay

RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; /*Enable TIM3 clock*/

TIM1->PSC = 16 -1; /* 16 000 000 /16 = 1000 000*/

TIM1->ARR = 1; /* 1000 000 /1 = 1000000*/

TIM1->CNT =0;

TIM1->CR1 =1;

while(1)

{

Trig_low; //turn off trig

delayuS(10); //wait 4uS

Trig_high; //turn on trig

delayuS(10);

Trig_low;

duration=read_echo(400000); //measure the time of echo pin

distance=duration/58; //distance=duration/2*SOUND_SPEED

delaymS(1000); //delay for 1 second between each read

}

?

}

?

void delaymS(uint32_t ms) //delay for certain amount in milliseconds

{

SysTick->LOAD=16000-1;

SysTick->VAL=0;

SysTick->CTRL=0x5;

for (int i=0;i;i++)<>

{

while(!(SysTick->CTRL &0x10000)){}

}

SysTick->CTRL=0;

}

void delayuS(uint32_t us) //delay for certain amount in microseconds

{

for(int i =0;i;i++){<>

while(!(TIM1->SR & 1)){} /*wait for UIF set*/

TIM1->SR &= ~1;

}

}

uint32_t read_echo(uint32_t timeout)

{

uint32_t duration;

while(!((GPIOA->IDR)&GPIO_IDR_ID1)){duration++;delayuS(1);

if(duration>timeout){return 0;}

}

duration=0;

while((GPIOA->IDR&GPIO_IDR_ID1)){duration++;delayuS(1);if(duration>timeout){return 0;} }

return duration;

}

如果一切正常,就可以開始測量物體的距離了,可通過serial monitor觀測結果。如果為了方便攜帶,也可連接OLED之類的顯示器件。

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

    關注

    63

    文章

    3040

    瀏覽量

    138705
  • DIY
    DIY
    +關注

    關注

    176

    文章

    888

    瀏覽量

    349277
  • 激光雷達
    +關注

    關注

    968

    文章

    4028

    瀏覽量

    190428
  • LIDAR
    +關注

    關注

    10

    文章

    328

    瀏覽量

    29546
收藏 人收藏

    評論

    相關推薦

    超聲波液位計的工作原理 超聲波液位計與其他液位計的比較

    超聲波液位計是一種利用超聲波信號來測量液體高度的儀器。其工作原理基于超聲波在介質中的傳播特性。以下是超聲波液位計的基本工作原理: 發射超聲波
    的頭像 發表于 11-23 10:28 ?508次閱讀

    如何避免超聲波對晶振的影響

    超聲波技術被廣泛應用于工業生產中,常見的超聲波工藝有:超聲波清洗工藝、焊接工藝。而在電子元器件圈中最常用到的則是超聲波清洗工藝。使用該種工藝時,超聲
    的頭像 發表于 10-19 08:10 ?667次閱讀
    如何避免<b class='flag-5'>超聲波</b>對晶振的影響

    RK3568教學實驗箱_操作案例:5-19 超聲波測距實驗

    的設計實現:LCD顯示界面以及與用戶的交互; (3)編輯控制代碼; (4)編譯程序; (5)運行程序。 根據原理圖,可知本實驗使用的超聲波測距模塊是基于CS100A系列芯片的。 CS100A芯片
    發表于 09-23 15:40

    超聲波和次聲波的頻率范圍和應用

    超聲波和次聲波是兩種不同頻率的聲波,它們在許多領域都有廣泛的應用。以下是關于超聲波和次聲波的頻率范圍和應用的介紹:
    的頭像 發表于 09-19 16:42 ?3675次閱讀

    第16章-超聲波跟隨功能 基于STM32的三路超聲波自動跟隨小車 畢業設計 課程設計

    第16章-超聲波跟隨功能 基于STM32的三路超聲波自動跟隨小車 畢業設計 課程設計
    的頭像 發表于 08-21 15:26 ?591次閱讀
    第16章-<b class='flag-5'>超聲波</b>跟隨功能 基于<b class='flag-5'>STM32</b>的三路<b class='flag-5'>超聲波</b>自動跟隨小車 畢業設計 課程設計

    超聲波測速的原理、方法及應用

    超聲波測速是一種利用超聲波在介質中的傳播速度來測量物體速度的技術。它廣泛應用于工業、醫療、交通等領域。 一、超聲波測速的原理 超聲波的定義 超聲波
    的頭像 發表于 08-16 10:36 ?5040次閱讀

    第七章-V1.5 STM32超聲波測距STM32F103C8t6超聲波避障小車 超聲波避障模塊 STM32超聲波測距

    5STM32超聲波測距STM32F103C8t6超聲波避障小車
    的頭像 發表于 08-15 16:25 ?781次閱讀
    第七章-V1.5 <b class='flag-5'>STM32</b><b class='flag-5'>超聲波</b><b class='flag-5'>測距</b><b class='flag-5'>STM32F</b>103C8t6<b class='flag-5'>超聲波</b>避障小車 <b class='flag-5'>超聲波</b>避障模塊 <b class='flag-5'>STM32</b><b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>

    超聲波驅動板-超聲波它激式驅動板

    ? ? ? ? 超聲波它激式驅動板是一種將電能轉換為超聲波能量的設備,主要用于驅動超聲波換能器產生高頻振動,進而實現各種超聲波應用。以下是對超聲波
    的頭像 發表于 06-14 11:54 ?934次閱讀
    <b class='flag-5'>超聲波</b>驅動板-<b class='flag-5'>超聲波</b>它激式驅動板

    超聲波無損檢測原理及應用

    超聲波無損檢測(Ultrasonic Non-Destructive Testing,簡稱UT)是一種利用超聲波在材料內部傳播的特性,檢測材料內部缺陷和結構的無損檢測技術。本文將詳細介紹超聲波無損
    的頭像 發表于 05-24 16:48 ?6141次閱讀

    如何將FreeRTOS移植到STM32F411平臺?

    最近打算做一個智能家居嵌入式開發平臺,選用ST的STM32F411加Qualcomm的QCA4002. 由于QCA4002功能比較復雜,打算用FreeRTOS來驅動它。 不知道有高手做過將FreeRTOS移植到STM32F411平臺沒?如果有源碼就最好了,謝謝哦!
    發表于 05-17 06:05

    STM32F411進入SLEEP MODE后無法SWD下載怎么解決?

    目前小弟在學習STM32F411的低功耗,使用的硬件是STM32F411 NUCLEO開發板,使用ST的HAL庫開發,debug采用SWD模式。在系統中加入SLEEP MODE,程序在下載后可以正常
    發表于 05-15 06:40

    在全志H616核桃派開發板上實現超聲波傳感器測距

    實現超聲波傳感器測距。 實驗講解? 下圖是一款市面上常用的HCSR04超聲波模塊: 模塊參數 供電電壓 3.3V~5V (核桃派需要使用支持3.3V的) 測量距離 2cm~450
    發表于 05-08 16:21

    超聲波連接示波器問題

    我買了一只中心頻率2.5Mhz的超聲波探頭,當我連接到示波器上的時候就有信號在顯示屏上。 我想問的是示波器上的信號到底是接收的環境中的超聲波信號? 還是當探頭接到示波器上 探頭就會自動的發射超聲波然后再接收自己發射的
    發表于 05-04 14:46

    基于51單片機的車輛倒車雷達報警系統,HC-SR04超聲波測距,全套資料

    設計要求 1.設計一個以51單片機為核心的超聲波倒車雷達系統; 2.超聲波測量范圍在2cm~4m,測量精度3mm; 3.擴展DS18B20溫度測量模塊,讀取環境溫度和補償
    發表于 03-19 14:17

    超聲波傳感器的工作原理 超聲波傳感器的聲波頻率是多少

    超聲波傳感器是一種常用的非接觸式測距傳感器,以其精確測量距離、高可靠性和廣泛應用而受到廣泛青睞。超聲波傳感器工作原理基于聲波的傳播和反射原理,利用
    的頭像 發表于 02-21 15:30 ?2767次閱讀
    澳门百家乐游戏皇冠网| 皇冠网小说网址| 百家乐官网赢钱秘密| 百家乐送1000| 大发8888迅雷下载免费| 和平区| 澳门百家乐官网有没有假| 百家乐官网平台有什么优惠| 百家乐太阳城菲律宾| 大发888网址是多少| 百家乐官网园zyylc| 风水24山里的四维八干| 百家乐赌台| 大发888在线体育官网| 百家乐官网游戏下裁| 视频百家乐赢钱| 最新娱乐城注册送体验金| 百家乐官网下路教学| 上市百家乐.评论| 罗甸县| 百家乐看牌技巧| 龙都棋牌下载| 百家乐官网出千方法技巧| 新澳博百家乐的玩法技巧和规则 | 百家乐和21点| 百家乐官网下注口诀| 百家乐开户送十元| 九头鸟棋牌游戏中心| 百家乐官网路单怎样| 威尼斯人娱乐城品牌| 澳门百家乐官网文章| 百家乐官网筹码素材| 百家乐代理商博彩e族| 至尊娱乐城| 奔驰百家乐可信吗| gt百家乐平台| 皇冠投注網| 广东百家乐扫描分析仪| 威远县| 网络百家乐会作假吗| 网上百家乐官网哪里开户|