国产精品久久久久久亚洲影视,插我舔内射18免费视频,国产+精品+在线观看,国产精品18久久久久久麻辣,丰满少妇69激情啪啪无

0 賣(mài)盤(pán)信息
BOM詢(xún)價(jià)
您現(xiàn)在的位置: 首頁(yè) > 技術(shù)方案 >工業(yè)控制 > 基于HC-SR04模塊和STM32F103ZET6開(kāi)發(fā)板實(shí)現(xiàn)超聲波測(cè)距DIY設(shè)計(jì)方案

基于HC-SR04模塊和STM32F103ZET6開(kāi)發(fā)板實(shí)現(xiàn)超聲波測(cè)距DIY設(shè)計(jì)方案

來(lái)源: toutiao
2021-12-09
類(lèi)別:工業(yè)控制
eye 24
文章創(chuàng)建人 拍明

原標(biāo)題:超聲波測(cè)距DIY設(shè)計(jì)方案

基于HC-SR04模塊和STM32F103ZET6開(kāi)發(fā)板實(shí)現(xiàn)超聲波測(cè)距DIY設(shè)計(jì)方案

一、設(shè)計(jì)背景與目標(biāo)

超聲波測(cè)距技術(shù)廣泛應(yīng)用于距離測(cè)量、避障系統(tǒng)、液位檢測(cè)等領(lǐng)域。HC-SR04模塊是一種常用的超聲波測(cè)距模塊,它通過(guò)發(fā)射超聲波并接收反射回來(lái)的超聲波信號(hào)來(lái)測(cè)量距離。本設(shè)計(jì)將基于STM32F103ZET6開(kāi)發(fā)板和HC-SR04超聲波模塊,通過(guò)編程實(shí)現(xiàn)超聲波的發(fā)射和接收,并通過(guò)STM32的處理能力進(jìn)行計(jì)算,從而得到測(cè)量的距離。

image.png

二、硬件系統(tǒng)設(shè)計(jì)

2.1 HC-SR04超聲波模塊

HC-SR04模塊是一款常用的超聲波測(cè)距傳感器,采用了超聲波傳感器原理。它通過(guò)發(fā)射8個(gè)連續(xù)的40KHz頻率的超聲波脈沖,并接收從目標(biāo)物體反射回來(lái)的超聲波信號(hào)來(lái)計(jì)算距離。其主要特點(diǎn)包括:

  • 電源電壓: 5V(可通過(guò)穩(wěn)壓模塊轉(zhuǎn)換為3.3V,適配STM32F103ZET6)

  • 工作電流: 15mA(工作時(shí))

  • 測(cè)量范圍: 2cm到4m,分辨率約為0.3cm

  • 輸出信號(hào): 返回信號(hào)的時(shí)間與目標(biāo)物體的距離成正比。

在硬件連接中,HC-SR04的Trig引腳控制超聲波的發(fā)射,Echo引腳輸出回波信號(hào)的持續(xù)時(shí)間。

2.2 STM32F103ZET6開(kāi)發(fā)板

STM32F103ZET6是STMicroelectronics公司生產(chǎn)的32位微控制器,基于ARM Cortex-M3核心,具有強(qiáng)大的處理能力和豐富的外設(shè)資源。其主要特性如下:

  • 主頻: 72MHz

  • 存儲(chǔ): 512KB Flash,64KB SRAM

  • 輸入輸出: 提供多達(dá)51個(gè)GPIO引腳

  • 外設(shè)接口: 支持I2C、SPI、UART、ADC、PWM等多種通信方式

  • 定時(shí)器: 提供多種定時(shí)器和PWM功能,適合進(jìn)行精確的時(shí)間控制和測(cè)量

在本設(shè)計(jì)中,STM32F103ZET6負(fù)責(zé)控制HC-SR04模塊的觸發(fā)、接收Echo信號(hào),并通過(guò)定時(shí)器計(jì)算距離。

三、系統(tǒng)工作原理

系統(tǒng)的基本工作流程為:STM32通過(guò)Trig引腳發(fā)出一個(gè)短脈沖信號(hào),HC-SR04接收到這個(gè)信號(hào)后發(fā)射超聲波。超聲波碰到物體后反射回HC-SR04,并通過(guò)Echo引腳輸出反射回波的時(shí)間。STM32F103ZET6開(kāi)發(fā)板通過(guò)定時(shí)器計(jì)算回波的時(shí)間,并根據(jù)超聲波在空氣中的傳播速度(約為340m/s)計(jì)算出物體的距離。

工作流程可以分為以下幾個(gè)步驟:

  1. 觸發(fā)信號(hào)發(fā)射: STM32通過(guò)GPIO口控制Trig引腳,發(fā)送一個(gè)高電平脈沖,持續(xù)10us。

  2. 超聲波發(fā)射與回波接收: HC-SR04模塊發(fā)射超聲波,等待目標(biāo)物體反射信號(hào)。

  3. 回波信號(hào)接收: 當(dāng)接收到回波信號(hào)時(shí),Echo引腳輸出一個(gè)高電平信號(hào),STM32通過(guò)外部中斷或定時(shí)器捕獲該信號(hào)的持續(xù)時(shí)間。

  4. 計(jì)算距離: 使用公式距離 = (回波時(shí)間 * 聲速) / 2計(jì)算出物體與傳感器之間的距離。這里需要考慮到超聲波傳播的時(shí)間是雙程的,因此距離公式中的2。

四、詳細(xì)電路設(shè)計(jì)與原理圖

在本設(shè)計(jì)中,HC-SR04模塊與STM32F103ZET6開(kāi)發(fā)板的連接方式非常簡(jiǎn)單。VCC引腳連接到STM32的3.3V電源,TrigEcho引腳連接到STM32的GPIO口。考慮到STM32F103ZET6的GPIO電平為3.3V,而HC-SR04的Echo引腳工作電平為5V,因此需要使用電平轉(zhuǎn)換電路,將Echo引腳的信號(hào)從5V轉(zhuǎn)換為STM32可接受的3.3V。

具體電路設(shè)計(jì)如下:

  1. VCC連接到STM32的3.3V輸出(可以使用外部電源適配器)

  2. Trig引腳連接到STM32的某個(gè)GPIO口(如PA0)

  3. Echo引腳通過(guò)電平轉(zhuǎn)換電路連接到STM32的某個(gè)GPIO口(如PA1)

五、軟件設(shè)計(jì)

5.1 STM32初始化配置

在STM32的初始化過(guò)程中,首先需要配置TrigEcho引腳為輸出和輸入模式,并使能定時(shí)器中斷或GPIO中斷,以便精準(zhǔn)地捕捉Echo信號(hào)的返回時(shí)間。

// GPIO初始化
GPIO_InitTypeDef GPIO_InitStruct = {0};

// 配置Trig引腳為輸出
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

// 配置Echo引腳為輸入
GPIO_InitStruct.Pin = GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
5.2 超聲波觸發(fā)與接收

STM32通過(guò)定時(shí)器或GPIO中斷來(lái)測(cè)量Echo信號(hào)的持續(xù)時(shí)間,并計(jì)算出距離。超聲波信號(hào)的時(shí)間計(jì)算公式如下:

// 超聲波觸發(fā)函數(shù)
void Trigger_HC_SR04(void)
{
   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);  // 觸發(fā)Trig信號(hào)
   HAL_Delay(0.01);  // 10ms
   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET); // 停止Trig信號(hào)
}

// 回波時(shí)間測(cè)量
uint32_t Measure_Echo_Time(void)
{
   uint32_t startTime = 0, endTime = 0;
   while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1) == GPIO_PIN_RESET); // 等待Echo信號(hào)的上升沿
   startTime = HAL_GetTick(); // 獲取開(kāi)始時(shí)間
   while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1) == GPIO_PIN_SET); // 等待Echo信號(hào)的下降沿
   endTime = HAL_GetTick(); // 獲取結(jié)束時(shí)間
   return endTime - startTime;
}
5.3 距離計(jì)算

超聲波的傳播速度是已知的,因此可以通過(guò)回波時(shí)間來(lái)計(jì)算物體的距離。公式如下:

// 計(jì)算距離
float Calculate_Distance(uint32_t echoTime)
{
   float distance = echoTime * 0.0343 / 2;  // 0.0343是聲波速度340m/s轉(zhuǎn)化為微秒的單位換算系數(shù)
   return distance;
}

六、測(cè)試與調(diào)試

通過(guò)程序完成后,需要進(jìn)行測(cè)試與調(diào)試。在測(cè)試過(guò)程中,檢查超聲波模塊的工作是否正常,是否能夠正確發(fā)射并接收回波信號(hào);檢查STM32的定時(shí)器或中斷是否正常響應(yīng),計(jì)算出的距離是否準(zhǔn)確。

七、總結(jié)與優(yōu)化

通過(guò)本設(shè)計(jì),我們實(shí)現(xiàn)了基于STM32F103ZET6和HC-SR04的超聲波測(cè)距系統(tǒng)。在此基礎(chǔ)上,可以進(jìn)一步優(yōu)化系統(tǒng),比如通過(guò)增加LCD顯示、無(wú)線傳輸、數(shù)據(jù)存儲(chǔ)等功能來(lái)擴(kuò)展應(yīng)用。此外,系統(tǒng)的精度和測(cè)量范圍可以通過(guò)更換更高精度的傳感器或優(yōu)化算法來(lái)提高。


責(zé)任編輯:David

【免責(zé)聲明】

1、本文內(nèi)容、數(shù)據(jù)、圖表等來(lái)源于網(wǎng)絡(luò)引用或其他公開(kāi)資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對(duì)本文的引用持有異議,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時(shí)處理。

2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。

3、本文內(nèi)容僅代表作者觀點(diǎn),拍明芯城不對(duì)內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨(dú)立判斷做出的,請(qǐng)讀者明確相關(guān)結(jié)果。

4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。

拍明芯城擁有對(duì)此聲明的最終解釋權(quán)。

相關(guān)資訊

拍明芯城微信圖標(biāo)

各大手機(jī)應(yīng)用商城搜索“拍明芯城”

下載客戶(hù)端,隨時(shí)隨地買(mǎi)賣(mài)元器件!

拍明芯城公眾號(hào)
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號(hào)
拍明
廣告
恒捷廣告
廣告
深亞廣告
廣告
原廠直供
廣告