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

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)及應(yīng)用開放性實驗報告Stm32HC-SR0幅聲波測距第一章緒論1.1 STM32®聲波測距系統(tǒng)1.1.1 HC-SR04超聲波測距模塊簡介HC-SR04超聲波測距模塊可提供2cm-400cm的非接觸式距離感測功能,測距精度可達(dá)高到3mm;模塊包括超聲波發(fā)射器、接收器與限制電路.使用電壓:DC-5V靜態(tài)電流:小于2mA電平輸出:高5V低0V感應(yīng)角度:不大于15度探測距離:2cm-450cm高精度:可達(dá)3mm1.1.2 HC-SR04超聲波測距模塊原理采用IO 口 TRIG觸發(fā)測距,給TRIG至少10us的高電平信號;模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;有

2、信號返回,通過IO 口 ECHO輸出一個高電平,高電平持續(xù)的時間就是超 聲波從發(fā)射到返回的時間.測試距離=高 電平時間*聲速340M/S/2; T C = V25-Vsense /Avg_Slope+25V25=Vsense在25度時的數(shù)值典型值為:1.43.Avg_Slope溫度與 Vsense曲線的平均斜率單位為 mv/C或uv/C典型 值為 4.3Mv/ C.利用以上公式,我們就可以方便的計算出當(dāng)前物體超聲波模塊之間的距離.程序中使用:測試距離二高電平時間*聲速340M/S/2這個公式1.2 設(shè)計要求使用ARM開發(fā)板上硬件資源與超聲波模塊結(jié)合,編程實現(xiàn)實時距離顯示功 能,通過數(shù)碼管實時顯

3、示距離,并在距離小于設(shè)定報警距離時使用蜂鳴器報警.1.3 總體設(shè)計方案及框圖1.3.1 距離測量及獲取方法通過設(shè)置定時器,開啟中斷,讀取 ECHO輸出高電平的持續(xù)時間,計算結(jié)果 作為當(dāng)前距離.1.3.2 總體設(shè)計方案實時距離:本超聲波測距系統(tǒng)可實現(xiàn)對距離的實時測量,并不斷顯示在數(shù)碼 管上保持距離:用戶可通過按鍵使得當(dāng)前距離值在數(shù)碼管保持,也可再次返回對距離的實時測量,此模式下距離小于報警值不會報警,僅為顯示模式.兩種模式相互轉(zhuǎn)換,并且可以在距離保持狀態(tài)時通過按鍵進(jìn)入修改報警距離 模式,如果實測距離小于下限值,蜂鳴器報警,當(dāng)距離大于下限值時,報警自動 停止.1.3.3 程序框圖第二章正文2.1

4、要求重述及分析2.1.1 設(shè)計任務(wù)超聲波測距系統(tǒng)2.1.2 設(shè)計要求使用STM-32開發(fā)板上硬件資源及HC-SR0強(qiáng)聲波測距模塊,編程實現(xiàn)超聲波測 距功能,通過數(shù)碼管實時顯示距離.2.1.3 要求分析1使用HC-SR04超聲波測距模塊以及stm-32自帶數(shù)碼管、LED等2實現(xiàn)實時距離測量功能,通過數(shù)碼管實時顯示當(dāng)前距離:設(shè)計程序?qū)崿F(xiàn)對距 離報警值的設(shè)定,并在低于報警值時使用蜂鳴器等進(jìn)行提示.2.2相關(guān)配置具體設(shè)計2.2.1相關(guān)配置1輸入口輸出口配置:將PC8設(shè)為與Trig相連的輸出口,將PC7設(shè)置為接收 Echo返回數(shù)據(jù)的輸入口.使能APB2總線上的GPIOC寸鐘,根據(jù)參數(shù)配置對應(yīng)引 腳.3P

5、 IO_I n i tT iT eDe f G PI5t r y c re;SPIO_PinR'emapCcn£ig (GPIO_Remap_SWJ_JTAGDisable f ENABLE); /關(guān)閉riphCl ckCmd (RCC_APB2Pexiph_GP10C|RCC_APB2Periph_A?I0, EtJABlE);SP IC_I ni tS tr lie t u r e. GPI D_Pin = TRIG_FIN;SPIO I nitStr Lie tur e. GPIC Made - GPIO Ms de Out PP;GPIC InitStracture.

6、GPIC Speed = GPIO_Sreed 5DMH2;GPIO2Init(TRIG_PORT, 4GFI0_InitStructure)/PCSTRIG “設(shè)為推捏輪由慎式/初始化外設(shè)GP工口TRIG PIN GPIO Pin flGPI0_Init5tmcture. GPIO_Pin = ECHO_PIH;SPIO_InitStruer u re,G PIC_Ma de = GPIO_Mode_IED; 3PIO-Ini(ECHO PORT, 4GF10 InirScrucuurey;»> 、 -La."PC7 接ECHO “設(shè)為輸入ECHO_PTN GPIO

7、_Pin_72按鍵配置:限制按鍵的端口 :PA15和PB47.使能APB2總線上的GPIOA以及GPIOB時鐘,根據(jù)參數(shù)配置對應(yīng)引腳技覆K2 K3一RCC_APB2FeriphCloccCmd(RCC_APB2Periph_GPI0B, ENABLE); 更能端 口時鐘GFIO_ImtStrucfjre. GFIO_Fin = GPI0_Fm_4 | GPI0_Pm_5 | GPIO Pm 6 | GPI0_Pm_7;GPIO_InitStructure .GPIO_Mode = GPIO_Mode_I PU;/王拉麓入GFIO2IitStructure.GFIO2Speed = GPIO_S

8、pee(i_2Mz;IO 速度為 2MHzGFIOInitlGPIOB, £GPIO InitStiuctureT;一根據(jù)設(shè)定參數(shù)初始化/AIS K1一RCC_APB2PeriphClocJcCmd(RCC_APB2Periph_GPIQAf ENABLE);GFIO_InitSrructure. GPIO_Pin = GPIO_Pin_15;GF lOIm tS t ructur e. GP TO2Kode = GFIOJIodeIPU;"上拉輸入GPIO2InitStructure. GPI()2sPeed = GPIO_Speed_2MHz;“工.口遺 度為:MHeG

9、FIO Init(GPIQAf &GP工.InitStruccure);-.一 3蜂鳴器:限制蜂鳴器的端口為PB8.APB2總線上GPIOB時鐘已經(jīng)使能可省 略,根據(jù)參數(shù)配置PB8端口.蜂鳴器Z/PBfi推挽輸出"10 口速度為SOMHz "根據(jù)設(shè)定參數(shù)初始化GPIO_InitStructure.GPIO_Fin = GPI0_Pin_8;GPIO_InitStructure.GPIO_Mode = GP10_Mo de_Out_P P;GPIO_InitSEructure.GPIO_Spe&d = G FIO_Sp e e d_5 0MHz;GFIO In

10、it(GPIOB, &GPIO InitStructure);4數(shù)碼管配置:限制數(shù)碼管的端口 :PE013 p使能APB2總線上的GPIOEH 鐘,根據(jù)參數(shù)配置對應(yīng)引腳.void NixietuJbe_init (void)<GFIO_InitTypeDef Nixietube_GFIO;RCC_AF32FeriphClOGkCrr.d(RCC_APB2Periph_GFIOE, ENABLE) ;,/使自芭FS, F二高口時鐘NixIecubeGPIO.GPIOPin = OxSfff; /PEO - PE15Nixietube2GPIO. GPIO2Mode = GFIO_M

11、ode_Out_PP;/推挽輸出Hi又i*七ub白二GF工O. GF.二Sp*e:d = GPIO_Speed_5OHMz;771O口速度為50t<H/GPIO_Iniv7GFIOE, tNixietubeGPIor; 一根據(jù)設(shè)定參數(shù)初始化) 5定時器配置:void cimerset(void) (TIM 工irrema巴B工nitTyp已D已:E TIM Tirr.eBaseStiLicture;|/TIMES 7 2MTIM_TimeBaseStructure.TIM_Period 工 9;TIM_TimeBaseStructure.TIMPrescaler =71;TIM2Tune

12、BaseSiiruccure. TltCciockDi vision = TIM_CKD_DIV1;T IM_T jjr.eBaseStrucrure. T IM_Count erMode = T IM_Count erMode _Up;TIM_Tirr.eBa3eInit (T1M2 r & Tbe Structure ;TlM2ClearFlag(TIM2f TIM FLAG2Update);TIM2ITConfigdlMS,工工M_fTJJg石ate, ENABLE);TIMCmd (TIM2 f DISABLE) 72.3 具體設(shè)計2.3.1 按鍵掃描設(shè)計:當(dāng)按鍵按下時,對應(yīng)的

13、 IO 口為低電平,沒有按下時為高 電平 ruintE_t KeyScan (GPIO_IypeDef * GFIOx, uintl6_t GPIO_Pin_x) / uint8_t| - - 一 -if ( GPIO Readlnp-ar.Dat.aS11 GPIOx, GPIO Pin x ) = KEY ON ) (delay_rta (3S);if ( GPIO_ReadInputDataBit( GPIOx, GPTO_Pin_x KEY_ON return KEYON: else < return KEY_OFF; ) return KEY QTF; I-2.3.2 數(shù)碼管顯

14、示設(shè)計:void diapaly2(inc a)小數(shù)點tum3_diaplay(Lf a/LDCO%lG) ;/T tum3_diaplay (2 r a/100410);“百 turn3_diaplay(3, a/1310; 十 GPIOE->BSRR-s«l|s;delay £1);nurna diaplay, a%10):/彳、vol! Hixl已匕讓IdE num# u2 data:3nitCh|lLXi "case 1: GPICE->BSRR cue 2: 械工OEfBSMl case 3: ( ?PICE->BSRR 會九 5PI0

15、E->B5RR 漪眈 5: GFI«->BSRR case <: ;P1CE->BSRR第幾位=0x0001«£; GPIOE->BRK=Ox3jC1«9; GPIOE>>BRR =010D0RCD; GPIOE->BRR =QxOOCl«U; GPIOE->BRR =OxOOQl«L2; GPIOE->BRR =0x0001«13; GPIOE->BR£=0x3eOO; =0x3d00; =Qx3b00; =O137CO; 工 0x2f00; =O

16、ilfOOfGPIOE->BRR 3P1C£->BRR spi(x->m GPICE->3RR GPIOE->BRR GPIOE->BRR=:< :'Off;GPIOE->B5RH =CKOOff;fiP10E->BSR£ =:KOOff;GPIOE->B5RR =:«OOff;GPIOE->B5RK =CKOO£f;CPIOE->BSBR =OxOOff;GPIOE->BSR£數(shù)字.T=Nixie_xdata; =Nixie_xdatd;=Sizie xda

17、sa; =Nixie x'da-a; =Nixie_xdata; =Nixie xdata;break; break; : treik;) break;; break; break;;defiLlt: break;依次輪顯示數(shù)字vo-d tuins_diaplay(int if int num! 一118 n= I1;for(n="n<6;n+)delay(1;NixietLihe light nuir.;2.3.3 超聲波測距設(shè)計:給TRIG至少10us的高電平信號,使用定時器中斷 法獲得ECHO輸入端PC7低電平持續(xù)時間,即為超聲波一往返所用時間如 黃線 為ECHO

18、輸入信號,測出低電平所用時間算出物體和超聲波測距模塊之間距離.it: ge c Di st ance ()汁真距離GEIC_Re3eLBiE5 (GF'ICC, SP工O_Pin_E) ;. /宴生超聲浪信號 delay (5);GPIC_SetEics (GPIOC, GPIO_Pin_S); /:反相放大捐先口后 1while (GPIC_ReadInputDaT:aBit (SPIOC, GPIO_PinJ) =0) /.,簽受雉gan( - -TIH_Cmd(TIM2f ENABLE); count =0;)while (GPIC_Read:nputData3it (GPIOC

19、, GPI0_Pin_7=l)"套受瑞di- - -Di5Tar.ce=coont1.7; / Distance = (71+1)/72106F(9+1*countfc34Q/2 *1000 - count*1.7 return Distance;2.3.4 報警功能設(shè)計:在進(jìn)入數(shù)碼管顯示前對當(dāng)前距離進(jìn)行判斷假設(shè)小于報警距離那么啟動蜂鳴器while (1) 進(jìn)入超聲波畫距3Discance=gei;_Di3tance () +10;if (sDistanc&ov)GPI0_SetBit3(GPI03fGPIC_Pin_8);delay(10;GPIO_ResetBits(GF工OB, GPI0_Pin_S);) - -dispaly2(sDistance);if (KeyScan(GPI0BfGPI0_Pin_4) = KEYON) goto B;)2.4 實驗結(jié)果分析2.4.1 實驗結(jié)果使用超聲波測距模塊、按鍵、蜂鳴器等實現(xiàn)了距離測量系統(tǒng)的設(shè)計,本設(shè)計可實時測距以及暫停顯示當(dāng)前距離,實

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論