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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、用蜂鳴器等進(jìn)行提示。2.2 相關(guān)配置具體設(shè)計(jì)2.2.12.2.1 相關(guān)配置1 1 輸入口輸出口配置:將 PC8PC8 設(shè)為與 TrigTrig 相連的輸出口,將 PC7PC7 設(shè)置為接收 EchoEcho 返回?cái)?shù)據(jù)的輸入口。使能 APB2APB2 總線上的 GPIOCGPIOC 時(shí)鐘,根據(jù)參數(shù)配置對(duì)應(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 時(shí)鐘,根據(jù)參數(shù)配置對(duì)應(yīng)引腳按鍵翼2 K3 K4_K5_RCC_APB2FeriphCloccCmd(RCC_APB2Periph_GPI0B, ENABLE) :/廠吏能舞時(shí)鐘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 時(shí)鐘已經(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ù)配置對(duì)應(yīng)引腳。void NixietuJbe_init (void) GFIO_InitTypeDef Nixietube_GFIO;RCC_AF32FeriphClOGkCrr.d(RCC_APB2Periph

12、_GFIOE, ENABLE) ;/使肓邑P缶F匚舸口時(shí)餐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 定時(shí)器配置: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è)計(jì)2.3.12.3.1 按鍵掃描設(shè)計(jì):當(dāng)按鍵按下時(shí),對(duì)應(yīng)的 1010 口為低電平,沒有按下時(shí)為高 電平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):個(gè)default: break;小St點(diǎn)vo-2Mixit;訕亡_Light/uEnw.tu3血上時(shí)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號(hào)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 超聲波測(cè)距設(shè)計(jì):給 TRIGTRIG 至少 10us10us 的高電平信號(hào),使用定時(shí)器中斷 法獲得 ECHOECHO 輸入端 PC7PC7 低電平持續(xù)時(shí)間,即為超聲波一來回所用時(shí)間如 (

18、黃線 為 ECHCECHC 輸入信號(hào),測(cè)出低電平所用時(shí)間)算出物體和超聲波測(cè)距模塊之間距離。GFIC_RegeEBiE5( (GFICC, GPIO_Pin_E);. /發(fā)生蓋岸波哼號(hào)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 報(bào)警功能設(shè)計(jì):在進(jìn)入數(shù)碼管顯示前對(duì)當(dāng)前距離進(jìn)行判斷若小于報(bào)警距離則啟動(dòng)蜂鳴器-while入超聲波測(cè)距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 實(shí)驗(yàn)結(jié)果分析2.4.12.4.1 實(shí)驗(yàn)結(jié)果使用超聲波測(cè)距模塊、按鍵、蜂鳴器等實(shí)現(xiàn)了距離測(cè)量系統(tǒng)的設(shè)計(jì),本設(shè)計(jì) 可實(shí)時(shí)測(cè)距以及暫停顯示當(dāng)前距離,實(shí)現(xiàn)了對(duì)距離的測(cè)量,具體功能如下:1 1 距離報(bào)警值的設(shè)置:程序啟動(dòng)先進(jìn)入報(bào)警值設(shè)置,通過按下按鍵KEY3KEY3、KEYKEY4 4 分別使得報(bào)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論