stm32超聲波測距_第1頁
stm32超聲波測距_第2頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、嵌入式系統(tǒng)及應(yīng)用開放性實驗報告Stm32HC- SR04 超聲波測距1.1 STM32 超聲波測距系統(tǒng)1.1.11.1.1HC-SR04HC-SR04 超聲波測距模塊簡介HC-SROHC-SRO 4 4 超聲波測距模塊可提供2cm-400cm2cm-400cm 的非接觸式距離感測功能,測距精度可達高到 3mm3mm ;模塊包括超聲波發(fā)射器、接收器與控制電路。使用電壓:DC-5VDC-5V靜態(tài)電流:小于 2mA2mA電平輸出:高 5V5V 低 0V0V感應(yīng)角度:不大于 1515 度探測距離:2cm-450cm2cm-450cm高精度:可達 3mm3mm1.1.21.1.2 HC-SR04HC-S

2、R04 超聲波測距模塊原理采用 1010 口 TRIGTRIG 觸發(fā)測距,給 TRIGTRIG 至少 10us10us 的高電平信號;模塊自動發(fā)送 8 8 個 40khz40khz 的方波,自動檢測是否有信號返回;有信號返回,通過 IOIO 口 ECHOECHO 輸出一個高電平,高電平持續(xù)的時間就是超 聲波從發(fā)射到返回的時間。測試距離= =(高 電平時間* *聲速(340M/S340M/S)/2;/2; T T (T) = ( V25-VsenseV25-Vsense)/Avg_Slope+25/Avg_Slope+25V25=VsenseV25=Vsense 在 2525 度時的數(shù)值(典型值

3、為:1.431.43)。Avg_SlopeAvg_Slope 溫度與 VsenseVsense 曲線的平均斜率(單位為 mvmv 廠C或 uvuv 廠C)(典型 值為 4.3Mv/4.3Mv/C)。利用以上公式,我們就可以方便的計算出當(dāng)前物體超聲波模塊之間的距離。程序中使用:測試距離= =高電平時間* *聲速(340M/S340M/S)/2/2 這個公式1.2 設(shè)計要求使用 ARMARM 開發(fā)板上硬件資源與超聲波模塊結(jié)合,編程實現(xiàn)實時距離顯示功 能,通過數(shù)碼管實時顯示距離,并在距離小于設(shè)定報警距離時使用蜂鳴器報警。1.3 總體設(shè)計方案及框圖第一章緒論1.3.11.3.1 距離測量及獲取方法通過

4、設(shè)置定時器,開啟中斷,讀取 ECHCECHC 輸出高電平的持續(xù)時間,計算結(jié)果 作為當(dāng)前距離。1.3.21.3.2 總體設(shè)計方案實時距離:本超聲波測距系統(tǒng)可實現(xiàn)對距離的實時測量,并不斷顯示在數(shù)碼 管上保持距離:用戶可通過按鍵使得當(dāng)前距離值在數(shù)碼管保持,也可再次返回對距離的實時測量,此模式下距離小于報警值不會報警,僅為顯示模式。兩種模式相互轉(zhuǎn)換,并且可以在距離保持狀態(tài)時通過按鍵進入修改報警距離 模式,如果實測距離小于下限值,蜂鳴器報警,當(dāng)距離大于下限值時,報警自動 停止。1.3.31.3.3 程序框圖開始KL _ J1r【5 5SV+初始化K6SV-顯示當(dāng)前距離K7K7 是否按下數(shù)碼管及按鍵掃描K

5、7K7按下超聲波測距 數(shù)碼管顯示距離L LK4K4 是否按下否k.K1K1 是否按下否.第二章正文2.1 要求重述及分析2.1.12.1.1 設(shè)計任務(wù)超聲波測距系統(tǒng)2.1.22.1.2 設(shè)計要求使用 STM-32STM-32 開發(fā)板上硬件資源及 HC-SR04HC-SR04 超聲波測距模塊,編程實現(xiàn)超聲波測 距功能,通過數(shù)碼管實時顯示距離。2.1.32.1.3 要求分析1 1 使用 HC-SR04HC-SR04 超聲波測距模塊以及 stm-32stm-32 自帶數(shù)碼管、LEDLED 等2 2 實現(xiàn)實時距離測量功能,通過數(shù)碼管實時顯示當(dāng)前距離:設(shè)計程序?qū)崿F(xiàn)對距 離報警值的設(shè)定,并在低于報警值時使

6、用蜂鳴器等進行提示。2.2 相關(guān)配置具體設(shè)計2.2.12.2.1 相關(guān)配置1 1 輸入口輸出口配置:將 PC8PC8 設(shè)為與 TrigTrig 相連的輸出口,將 PC7PC7 設(shè)置為接收 EchoEcho 返回數(shù)據(jù)的輸入口。使能 APB2APB2 總線上的 GPIOCGPIOC 時鐘,根據(jù)參數(shù)配置對應(yīng)引 腳。3P IO_I n i tT iT eDe f G PI O_Init 5t r c re;SPIO_PinRemapCcniq(GPIO_Remap_SWJ_JTAGDisablefENABLE);/關(guān)用旳riphCl ckCmd (RCC_APB2Pexiph_GP10C|RCC_AP

7、B2Periph_A?I0, EWAB1E);2PI0_ InitStructure.GPIC Pin = TRIG EIN;/FCBSTRISTRIG_PIN GPIO_PiikSPIOInitStructure.GPIC Made GPIO Mede Out PP;w設(shè)為推拽輸?shù)┠J絀nitStructure.GPIC Speed GPIO Speed 5DMH2;GPIC jnit(TRIG_PORT, 4GFIO_InitStructure);_初始化外iGPIOGPIO InitStructure.GPIO Pin = ECHO PIN;PC了 接ECHOECHO_PTK GPIOP

8、in?GPIO_InitStxuclure.GPIO Mode = GPIO Mode IPD;設(shè)為輸入SPIOImu (ECHO PORT, 4GF 10 InitScruccure);2 2 按鍵配置:控制按鍵的端口 : :PA15PA15 和 PB47PB47。使能 APB2APB2 總線上的 GPIOAGPIOA 以及 GPIOBGPIOB 時鐘,根據(jù)參數(shù)配置對應(yīng)引腳按鍵翼2 K3 K4_K5_RCC_APB2FeriphCloccCmd(RCC_APB2Periph_GPI0B, ENABLE) :/廠吏能舞時鐘GFIO_ImtStrucfjre. GFIOFin = GPI0_Fm

9、_4 | GPI0_Pm_5 | GPIO Pin 6 | GPI0_Pm_7;GPIO_InitStructure .GPIO_Mode = GPIO_Mode_I PU;/王拉逆入GFIOIitStructure.GFIOSpeed = GPIO_Spee(i_2Mz;IO口 速度為2MHzGFIOInitlGPIOB, GPIO InitStiucture?;_/根據(jù)設(shè)定參數(shù)初始比/AIS KIRCC_APB2PeriphClocJcCmd(RCC_APB2Periph_GPiaAfENABLE); GFIO_InitSrructure. GPIOPin =GPIO_Pin_15;GF

10、lOIm tS t ructur e. GP IOKode = GFIOJIodeIPU;上拉輸入GPIOInitStructure. GPI()2sPeed= GPIO_Speed_2MHz;口違廈為2 MHzGFIO Init(GPIQAfiGPIO InitStruccure);3 3 蜂鳴器: 控制蜂鳴器的端口為 PB&PB& APB2APB2 總線上 GPIOBGPIOB 時鐘已經(jīng)使能可省 略, 根據(jù)參數(shù)配置 PB8PB8 端口。堆鳴器GPIO_InitStructure.GPIO_Fin = GPI0_Pin_8;GPIO_InitStructure.GPIO_Mo

11、de = GP10_Mo de_Out_P P;GPIO_InitSEructure.GPIO_Spe&d = G FIO_Sp e e d_5 0MHz; GFIOInit(GPIOB, &GPIO InitStructure);4 4 數(shù)碼管配置:控制數(shù)碼管的端口 :PE013PE013 p p 使能 APB2APB2 總線上的 GPIOEGPIOE 寸鐘,根據(jù)參數(shù)配置對應(yīng)引腳。void NixietuJbe_init (void) GFIO_InitTypeDef Nixietube_GFIO;RCC_AF32FeriphClOGkCrr.d(RCC_APB2Periph

12、_GFIOE, ENABLE) ;/使肓邑P缶F匚舸口時餐NixIecubeGPIO.GPIOPin = 0 x3fff; /PEO - PE15Nixietube2GFIOGPIOZHode =GPIO_Mode_Out_FP;/雅挽輸出NixiecubeGFIO.GPIOSpeed = GFIO_S peed_5OMM z;/IO ii.SGPIOInitTGFIOE, tNixietubeGPIOr; -根捋設(shè)定參數(shù)初始乂 5 5 定時器配置:void cim亡芒文亡匸(void)3TIM Tlrr一皀Mas豐工nitTyp皀D皀:E TIM Trr.e3aBeStrmature;|/T

13、IME2 7 2MTIM_TimeBaseStructure.TIM_Period 9;TIM_TimeBaseStructure T工??诠ね鰏calar =71; TIMTuneBaseSruccure.TItTciockDivision =TIM_CKD_DIV1;TIM Tj_n.eBaseStrucrure.TIH CounterMode = T工拭CounterMode Up;TIM_Tirr.eBa3eInit (T1M2f& TIMTiiteBaBeStructure ;TlMClearFlag(TIM2fTIM FLAGUpdate);TIM2lTConfig(TIH

14、2,品ts ENABLE);TIMCmd (TIM2fDISABLE) ?Z/PBfi 推挽輸出/IO口-2.3 具體設(shè)計2.3.12.3.1 按鍵掃描設(shè)計:當(dāng)按鍵按下時,對應(yīng)的 1010 口為低電平,沒有按下時為高 電平tuintE_t KeyScan (GPIO_IypeDef * GFIOx, uint!6_t GPIO_Pin_x) / uint8_t| - 一 一 -if ( GPIO Readlnp-arDat.aS11 GPIOx, GPIOPin x )= KEY ON )delay_rta (3S):if (GPIO_ReadInputDataBit( GPIOx, GPT0

15、_Pin_x ) KEY_ON )return KEYON:elseBSRR-sl|s;delay 1):nurna diaplay, a%10):個default: break;小St點vo-2Mixit;訕亡_Light/uEnw.tu3血上時switch |ILXI( ( MJL&cae 1:GPIOG-BSRR |= OxOOQl;GPIOE-BRR |=歸駝2: GPIOE-BSRR |= OxOOQl9;GP10E-BGR |=cue 3:(SPICE-BSRR|- OiODORCD;GPIOE-BRR | =弓:5PIDE-BSRR|= Ox30ClLl;GPIOE-BR

16、R | =ca號5:GPIOG-BSRR |= 0 x000112;GPIOE-BBR |=ua罪6: GPIOe-BSRR |= 0 x000113;GPIOE-BRR |=霰字BRR|=CKOOff;GPIOE-BSRR|=RULEjtda館;Q1MDD;GPIOE-BRR |= CK00f;GP10E-BSRR |= Nixie_Kdata;Ox3t:O; GFICE-BRR |= :K03ff;GPIOE-B5RR|= ixie_xdaLd:;013700;GPIOE-BRR |=CKOOff;GPIOE-B5RR|- Nixledata;0 x2f00;GPIOE-BRR |= CK

17、OOf;CPIOE-BSBR |= UxiXBRR |= taDOfGMOETBSMl |= Nixie_Kdata;break;break;: treik;)break;;break;break;;/依次輪流顯示數(shù)字-vo-d tuins_diaplay(int ifint num _118 n= I1;for(n=;n6;n+)fdelay(1;NixietLihe ligh匸i二#nuir;233233 超聲波測距設(shè)計:給 TRIGTRIG 至少 10us10us 的高電平信號,使用定時器中斷 法獲得 ECHOECHO 輸入端 PC7PC7 低電平持續(xù)時間,即為超聲波一來回所用時間如 (

18、黃線 為 ECHCECHC 輸入信號,測出低電平所用時間)算出物體和超聲波測距模塊之間距離。GFIC_RegeEBiE5( (GFICC, GPIO_Pin_E);. /發(fā)生蓋岸波哼號delay (5);GPIC SetEics (GPICC, GPIO_Pin_S);/5放大器先0三丄while (GPIC_ReadInputDaT:aBi.t (SPIOC, GPIO_PinJ) = J端gao - -TIM_Cmd(TIM2fENABLE);count =0;while (GPIC_ReadlnputData3it (GPIOC, GPI0_Pin_7=l)接受端UiDi5Tar.ce=

19、coont*1.7; / Distance = (?l+l/?2*10*6*(9+1*count*340/2*1000 return Distance;2.3.42.3.4 報警功能設(shè)計:在進入數(shù)碼管顯示前對當(dāng)前距離進行判斷若小于報警距離則啟動蜂鳴器-while入超聲波測距count*1.7ix ge t Di st ance;汁賓距葛3Di3tance=get_Di3tance()+10;if (sDistanceov) (GPI0_SetBits(GPI0BfGPI0_Pin_8);delay(10);GPIO_ResetBits(GFIOB, GFI0_Pin_S):) dispaly2(sDiacance);if (KeyScan(GPIOB,GPI0_Pin_4) = KEY_0N) goto B;2.4 實驗結(jié)果分析2.4.12.4.1 實驗結(jié)果使用超聲波測距模塊、按鍵、蜂鳴器等實現(xiàn)了距離測量系統(tǒng)的設(shè)計,本設(shè)計 可實時測距以及暫停顯示當(dāng)前距離,實現(xiàn)了對距離的測量,具體功能如下:1 1 距離報警值的設(shè)置:程序啟動先進入報警值設(shè)置,通過按下按鍵KEY3KEY3、KEYKEY4 4 分別使得報

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論