基于STM32的超声波测距_第1页
基于STM32的超声波测距_第2页
基于STM32的超声波测距_第3页
全文预览已结束

下载本文档

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

文档简介

基于STM32和US-100的超声波测距仪设计摘要:结合嵌入式处理器STM32F103与超声波传感器设计的一种简易的智能超声波测距仪装置,采用ARM内核芯片STM32F103ZET6的32位嵌入式微处理器与带有温度补偿的US-100超声波测距模块实现声波测距。STM32的串口资源相当丰富,能提供5路串口,通过微处理器的串口实现实时显示和TFTLCD显示距离等参数。US-100带有温度传感器,对超声波的声速进行补偿,提高测量精度。关键词:STM32F103;US-100;超声波测距;TFTLCD显示DesignofUltrasonicDistanceMeasurementBasedonSTM32AndUS-100Abstract:CombinedwiththeembeddedmicroprocessorSTM32F103andultrasonicsensordesignasimpleintelligentultrasonicrangefinderdevices,usingARMkernelchipSTM32F103ZET632-bitembeddedmicrocontrollerprocessorwithtemperaturecompensationofUS-100ultrasonicrangingmoduleimplementssoundranging.STM32serialportresourcesrichinserialportcanprovide5road,throughtheserialportofthemicroprocessortoachievereal-timedisplayandTFTLCDparameterssuchasdistance.US-100withatemperaturesensor,tocompensatethevelocityofultrasonicwave,improvetheaccuracyofmeasurement.Keywords:STM32F103;US-100;UltrasonicDistanceMeasurement;TFTLCD-Showing引言超声波测距是一种典型的非接测量方式。超声波在气体、液体及固体中以不同速度传播,定向性好、能量集中、传输过程中衰减较小、反射能力较强[1]。且超声波测距系统结构简单、电路容易实现、本钱低、速度快,所以在工业自动控制、建筑工程测量和机器人视觉识别等领域应用非常广泛,它具有非接触式测量、精度高、范围宽和安装维护方便等特点[2]。本设计结合嵌入式处理器与超声波测距模块提供一种超声波测距装置,系统采用嵌入式处理器控制US-100超声波测距模块实现超声波的发送和接受。US-100带有温度补偿,对测量的距离进行校正,提高了测量的精度。结合STM32丰富的串口资源,本装置通过串口2与US-100相互通信,进行超声波的收发和温度补偿,得到测量距离,通过TFTLCD显示;并通过串口1在PC机上实时显示。系统总体设计图1系统总体设计框图Fig.1Diagramoftheoverallsystemdesign系统总体设计框图1,可以看到该超声波测距装置由STM32微处理器、US-100超声波测距模块、TFTLCD液晶显示组成。控制器通过控制US-100超声波模块实现超声波的收发,并进行温度补偿提高精度,得到精确的距离数据。再通过控制器自身串口通信向PC机串口实时显示数据和TFTLCD液晶显示的人机交互界面。STM32的高性能、低功耗和高主频等优点给该装置测距实现更加完备。硬件设计主控制模块STM32F103微控制器基于ARMConex-M3内核的STM32F103ZET6时钟频率可高达72Mhz,提供20KB的RAM、多大128KB的嵌入式闪存和丰富的外设接口,处理速度比同级别的基于ARM7TDMI的产品快30%,产品功耗比同级别低75%[3]。使用新内核ARMConex-M3是针对MCU的低本钱、缩减的管脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应的需要而推出的。ARMConex-M3采用纯Thumb2指令高效32位哈弗微体系结构和系统外设,使这个具有32高性能的ARM内核能够实现8位和16位的代码储存密度,几乎把所有应用软件所需内存容量降低了一半。由于ARMConex-M3的架构和丰富的外设组件,使得它也适用于要求高度集成和低功耗的嵌入式场合[4]US-100超声波测距模块US-100超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4V~5.5的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测量结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。有串口触发测距和电平触发测距两种方式。本设计采用串口触发测距,在此模式下只需要在TX管脚输入0X55〔波特率9600〕,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检测到回波信号后,模块还要进行温度值测量[5],然后根据当前温度对测距结果进行校正,将矫正后的结果通过RX管脚输出。US-100超声波模块的引脚图如下:1脚接电源VCC,2脚接STM32F103ZET6的PA2,3脚接PA3,4脚接地即可。图2US-100超声波测距模块图Fig.2US-100ultrasonicrangingmodulechartTFTLCD液晶显示设计利用微处理器STM32开发板上的LCD接口来点亮TFTLCD,并实现ASCⅡ字符和彩色的显示等功能,并在串口打印LCD控制器ID,同时在LCD上显示。开发板上的TFTLCD采用16位的并方式与外部链接,之所以不采用8位的方式,是因为彩屏的数据量较大,尤其是在显示图片的时候如果用8位数据线就会比16位方式慢一倍以上,为了显示提高显示速度,所以选16位的接口[6]。TFTLCD液晶显示模块接口图如下:图3TFTLCD模块接口电路图Fig.3TFTLCDmoduleinterfacecircuitdiagramRS-232串行通信模块接口设计微处理器STM32通过串口和上位机对话,STM32在收到上位机发送来的字符串后,原原本本的返回给上位机。本系统采用串口触发的方式进行超声波测距,把采集的距离通过串口1发送给上位机实时显示,对超声波模块的数据采集需要重新配置串口2,实现串口2与US-100之间的通信,再通过TFTLCD显示测的的距离。软件设计系统以STM32单片机为核心,实现对各局部的控制和响应。由于系统采用的ARMConex-M3处理器集成调试功能,可实现快速验证支持多种开发功能。结合具有Thumb-2功能强大的指令集,可只使用C语言编程〔包括复位、中断、异常处理〕,不需要模块转换,不需要汇编程序的软件管理,系统中软件局部采用模块化设计,假设干个小的程序或模块,分别进行独立设计、编程、测试、和查错,最后连成1个完整的应用程序,对每一个外设都有相应的例程,可以方便的进行移植[7]。系统软件采用模块化设计,主要包括主程序、串口中断子程序两个模块。系统中主程序合理结合中断子程序,使设计更加简单,并且主频消耗低,速度快。主程序控制处理器送入0X55数据,采用串口触发的方式测距,得到触发信号,进入中断子程序。发射8个40KHZ的超声波脉冲,检测回波信号。当检测到回波信号后,US-100自带温度补偿功能对测量的数据进行校正,提高了测量精度,然后通过串口送给电脑实时显示距离,并且在主程序中对测的距离进行液晶显示,具有距离小于150mm时的蜂鸣器报警功能,另外可以在TFTLCD上显示使用状态。该设计还可以综合利用在智能家居的智能系统中,可以用于容量探测,实时掌控;也可以用于车载倒车和避障系统中。超声波测距具有很多实际应用,在各种智能系统中都有它的声影。软件运行流程如下:图4主程序图5串口中断程序Fig.4mainprogramFig.5Aserialportinterruptprogram/***************************主程序〔程序入口〕***************************/ intmain(void){ intdistant; u8x=0; u8temp[12]; //存放LCDID字符串 delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(9600); //串口1初始化为9600 uart_init_2(9600); //串口2初始化为9600 LED_Init(); //LED端口初始化 BEEP_Init(); //初始化蜂鸣器端口 LCD_Init(); POINT_COLOR=BLUE; while(1) { USART_SendData(USART2,0x55); //向串口2发送数据0X55输入到TX端口 delay_ms(4000); //延时 LED0=!LED0; LCD_ShowString(30,110,200,16,16,temp); delay_ms(2000); LCD_ShowString(30,50,200,16,16,"RANGING"); if(distant<150&&distant!=0) //距离小于150mm时报警 { BEEP=1; //蜂鸣器报警 LED1=0; //LED亮 } else { BEEP=0; LED1=1; } }}/***********************************串口中断子程序〔串口中断入口〕***********************************/intglobe1;intglobe2;intflag=0;intdistant; u8temp[12]; //存放LCDID字符串voidUSART2_IRQHandler(void) //串口2中断效劳程序 { u8Res; if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET)//接收中断(接收到的数据必须是0x0d0x0a结尾) { Res=USART_ReceiveData(USART2);//(USART2->DR); //读取接收到的数据 if(flag%2==0){ globe1=Res; flag++; } else{ globe2=Res; distant=globe1*256+globe2;//距离计算公式 delay_ms(40000); printf("Thedistantis:%dcm\n",distant);//串口1显示距离 flag++; LCD_ShowString(50,130,200,16,16,"distance:"); LCD_ShowNum(120,130,distant,4,16); //液晶显示距离 } if(distant<150&&distant!=0) { BEEP=1; LED1=0; LCD_ShowString(30,90,200,16,16,"FULL"); } else { BEEP=0; LED1=1; LCD_ShowString(30,90,200,16,16,"USED"); } }}结论本设计以ARMConex-M3内核微控制器为超声波测距的控制核心,再结合带有超声波收发和温度补偿的US-100超声波测距模块简化了电路和开发环境。利用STM32中断子程序优化了软件编程,使系统运行内存更小,功耗更低;US-100进行的温度补偿减小了误差,提高了精度,在近距离测量范围内,该设计可到达mm级。该装置具有很好的实用性。参考文献:夏晨,李朴.反响釜设计及其温度控制系统[J].化工自动化及仪表,2004,31〔1〕:66-69时德刚,刘哗。超声波测距的研究[J].计算机测量与控制,2002,9〔10〕:31-33陈文凯,

温馨提示

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

评论

0/150

提交评论