stm32超声波测距_第1页
stm32超声波测距_第2页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统及应用开放性实验报告Stm32HC- SR04 超声波测距1.1 STM32 超声波测距系统1.1.11.1.1HC-SR04HC-SR04 超声波测距模块简介HC-SROHC-SRO 4 4 超声波测距模块可提供2cm-400cm2cm-400cm 的非接触式距离感测功能,测距精度可达高到 3mm3mm ;模块包括超声波发射器、接收器与控制电路。使用电压:DC-5VDC-5V静态电流:小于 2mA2mA电平输出:高 5V5V 低 0V0V感应角度:不大于 1515 度探测距离:2cm-450cm2cm-450cm高精度:可达 3mm3mm1.1.21.1.2 HC-SR04HC-S

2、R04 超声波测距模块原理采用 1010 口 TRIGTRIG 触发测距,给 TRIGTRIG 至少 10us10us 的高电平信号;模块自动发送 8 8 个 40khz40khz 的方波,自动检测是否有信号返回;有信号返回,通过 IOIO 口 ECHOECHO 输出一个高电平,高电平持续的时间就是超 声波从发射到返回的时间。测试距离= =(高 电平时间* *声速(340M/S340M/S)/2;/2; T T (T) = ( V25-VsenseV25-Vsense)/Avg_Slope+25/Avg_Slope+25V25=VsenseV25=Vsense 在 2525 度时的数值(典型值

3、为:1.431.43)。Avg_SlopeAvg_Slope 温度与 VsenseVsense 曲线的平均斜率(单位为 mvmv 厂C或 uvuv 厂C)(典型 值为 4.3Mv/4.3Mv/C)。利用以上公式,我们就可以方便的计算出当前物体超声波模块之间的距离。程序中使用:测试距离= =高电平时间* *声速(340M/S340M/S)/2/2 这个公式1.2 设计要求使用 ARMARM 开发板上硬件资源与超声波模块结合,编程实现实时距离显示功 能,通过数码管实时显示距离,并在距离小于设定报警距离时使用蜂鸣器报警。1.3 总体设计方案及框图第一章绪论1.3.11.3.1 距离测量及获取方法通过

4、设置定时器,开启中断,读取 ECHCECHC 输出高电平的持续时间,计算结果 作为当前距离。1.3.21.3.2 总体设计方案实时距离:本超声波测距系统可实现对距离的实时测量,并不断显示在数码 管上保持距离:用户可通过按键使得当前距离值在数码管保持,也可再次返回对距离的实时测量,此模式下距离小于报警值不会报警,仅为显示模式。两种模式相互转换,并且可以在距离保持状态时通过按键进入修改报警距离 模式,如果实测距离小于下限值,蜂鸣器报警,当距离大于下限值时,报警自动 停止。1.3.31.3.3 程序框图开始KL _ J1r【5 5SV+初始化K6SV-显示当前距离K7K7 是否按下数码管及按键扫描K

5、7K7按下超声波测距 数码管显示距离L LK4K4 是否按下否k.K1K1 是否按下否.第二章正文2.1 要求重述及分析2.1.12.1.1 设计任务超声波测距系统2.1.22.1.2 设计要求使用 STM-32STM-32 开发板上硬件资源及 HC-SR04HC-SR04 超声波测距模块,编程实现超声波测 距功能,通过数码管实时显示距离。2.1.32.1.3 要求分析1 1 使用 HC-SR04HC-SR04 超声波测距模块以及 stm-32stm-32 自带数码管、LEDLED 等2 2 实现实时距离测量功能,通过数码管实时显示当前距离:设计程序实现对距 离报警值的设定,并在低于报警值时使

6、用蜂鸣器等进行提示。2.2 相关配置具体设计2.2.12.2.1 相关配置1 1 输入口输出口配置:将 PC8PC8 设为与 TrigTrig 相连的输出口,将 PC7PC7 设置为接收 EchoEcho 返回数据的输入口。使能 APB2APB2 总线上的 GPIOCGPIOC 时钟,根据参数配置对应引 脚。3P IO_I n i tT iT eDe f G PI O_Init 5t r c re;SPIO_PinRemapCcniq(GPIO_Remap_SWJ_JTAGDisablefENABLE);/关用旳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设为推拽输旦模式InitStructure.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;设为输入SPIOImu (ECHO PORT, 4GF 10 InitScruccure);2 2 按键配置:控制按键的端口 : :PA15PA15 和 PB47PB47。使能 APB2APB2 总线上的 GPIOAGPIOA 以及 GPIOBGPIOB 时钟,根据参数配置对应引脚按键翼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?;_/根据设定参数初始比/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 时钟已经使能可省 略, 根据参数配置 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 数码管配置:控制数码管的端口 :PE013PE013 p p 使能 APB2APB2 总线上的 GPIOEGPIOE 寸钟,根据参数配置对应引脚。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; -根捋设定参数初始乂 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工兀口工亡scalar =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 具体设计2.3.12.3.1 按键扫描设计:当按键按下时,对应的 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;;/依次轮流显示数字-vo-d tuins_diaplay(int ifint num _118 n= I1;for(n=;n6;n+)fdelay(1;NixietLihe ligh匸i二#nuir;233233 超声波测距设计:给 TRIGTRIG 至少 10us10us 的高电平信号,使用定时器中断 法获得 ECHOECHO 输入端 PC7PC7 低电平持续时间,即为超声波一来回所用时间如 (

18、黄线 为 ECHCECHC 输入信号,测出低电平所用时间)算出物体和超声波测距模块之间距离。GFIC_RegeEBiE5( (GFICC, GPIO_Pin_E);. /发生盖岸波哼号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 报警功能设计:在进入数码管显示前对当前距离进行判断若小于报警距离则启动蜂鸣器-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 实验结果分析2.4.12.4.1 实验结果使用超声波测距模块、按键、蜂鸣器等实现了距离测量系统的设计,本设计 可实时测距以及暂停显示当前距离,实现了对距离的测量,具体功能如下:1 1 距离报警值的设置:程序启动先进入报警值设置,通过按下按键KEY3KEY3、KEYKEY4 4 分别使得报

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论