基于STM32的超声波测距_基于stm32超声波测距

其他范文 时间:2020-02-28 18:14:45 收藏本文下载本文
【www.daodoc.com - 其他范文】

基于STM32的超声波测距由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“基于stm32超声波测距”。

基于STM32和US-100的超声波测距仪设计

摘 要:结合嵌入式处理器STM32F103与超声波传感器设计的一种简易的智能超声波测距仪装置,采用ARM内核芯片STM32F103ZET6的32位嵌入式微处理器与带有温度补偿的US-100超声波测距模块实现声波测距。STM32的串口资源相当丰富,能提供5路串口,通过微处理器的串口实现实时显示和TFTLCD显示距离等参数。US-100带有温度传感器,对超声波的声速进行补偿,提高测量精度。

关键词:STM32F103;US-100;超声波测距;TFTLCD显示

Design of Ultrasonic Distance Measurement Based on STM32 And US-100

Abstract:Combined with the embedded microproceor STM32F103 and ultrasonic sensor design a simple intelligent ultrasonic range finder devices, using ARM kernel chip STM32F103ZET632-bit embedded microcontroller proceor with temperature compensation of US100 with a temperature sensor, to compensate the velocity of ultrasonic wave, improve the accuracy of measurement.Keywords:STM32F103;US-100;Ultrasonic Distance Measurement;TFTLCD-Showing

0 引言

超声波测距是一种典型的非接测量方式。超声波在气体、液体及固体中以不同速度传播,定向性好、[1]能量集中、传输过程中衰减较小、反射能力较强。且超声波测距系统结构简单、电路容易实现、成本低、速度快,所以在工业自动控制、建筑工程测量和机器人视觉识别等领域应用非常广泛,它具有非接触式测

[2]量、精度高、范围宽和安装维护方便等特点。

本设计结合嵌入式处理器与超声波测距模块提供一种超声波测距装置,系统采用嵌入式处理器控制US-100超声波测距模块实现超声波的发送和接受。US-100带有温度补偿,对测量的距离进行校正,提高了测量的精度。结合STM32丰富的串口资源,本装置通过串口2与US-100相互通信,进行超声波的收发和温度补偿,得到测量距离,通过TFTLCD显示;并通过串口1在PC机上实时显示。系统总体设计

US-100超声波发射脉冲障碍物STM32F103处理器串口1通信TFTLCD显示超声波接收回波温度校正串口2通信PC机串口显示图 1系统总体设计框图

Fig.1 Diagram of the overall system design

系统总体设计框图1,可以看到该超声波测距装置由STM32微处理器、US-100超声波测距模块、TFTLCD液晶显示组成。控制器通过控制US-100超声波模块实现超声波的收发,并进行温度补偿提高精度,得到精确的距离数据。再通过控制器自身串口通信向PC机串口实时显示数据和TFTLCD液晶显示的人机交互界面。STM32的高性能、低功耗和高主频等优点给该装置测距实现更加完备。硬件设计

2.1 主控制模块STM32F103微控制器

基于ARM Conex-M3内核的STM32F103ZET6时钟频率可高达72Mhz,提供20KB的RAM、多大128KB的嵌入式

闪存和丰富的外设接口,处理速度比同级别的基于ARM7TDMI的产品快30%,产品功耗比同级别低75%。使用新内核ARM Conex-M3是针对MCU的低成本、缩减的管脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应的需要而推出的。ARM Conex-M3采用纯Thumb2指令高效32位哈弗微体系结构和系统外设,使这个具有32高性能的ARM内核能够实现8位和16位的代码储存密度,几乎把所有应用软件所需内存容量降低了一半。由于ARM Conex-M3的架构和丰富的外设组件,使得它也适用于要求高度集成和低功耗[4]的嵌入式场合[3]2.2 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脚接地即可。

图 2 US-100超声波测距模块图 Fig.2 US系统以STM32单片机为核心,实现对各部分的控制和响应。由于系统采用的ARM Conex-M3处理器集成调试功能,可实现快速验证支持多种开发功能。结合具有Thumb-2功能强大的指令集,可只使用C语言编程(包括复位、中断、异常处理),不需要模块转换,不需要汇编程序的软件管理,系统中软件部分采用模块化设计,若干个小的程序或模块,分别进行独立设计、编程、测试、和查错,最后连成1个完整的[7]应用程序,对每一个外设都有相应的例程,可以方便的进行移植。

系统软件采用模块化设计,主要包括主程序、串口中断子程序两个模块。系统中主程序合理结合中断子程序,使设计更加简单,并且主频消耗低,速度快。主程序控制处理器送入0X55数据,采用串口触发的方式测距,得到触发信号,进入中断子程序。发射8个40KHZ的超声波脉冲,检测回波信号。当检测到回波信号后,US-100自带温度补偿功能对测量的数据进行校正,提高了测量精度,然后通过串口送给电脑实时显示距离,并且在主程序中对测的距离进行液晶显示,具有距离小于150mm时的蜂鸣器报警功能,另外可以在TFTLCD上显示使用状态。该设计还可以综合利用在智能家居的智能系统中,可以用于容量探测,实时掌控;也可以用于车载倒车和避障系统中。超声波测距具有很多实际应用,在各种智能系统中都有它的声影。软件运行流程如下:

开始串口中断入口系统初始化串口初始化触发信号发射超声波串口2中断子程序发射完否YNTFTLCD显示距离distance接收数据Distance

Fig.4 main program

Fig.5 A serial port interrupt program

/*************************** 主程序(程序入口)

***************************/

int main(void){

int distant;

u8 x=0;u8 temp[12];

//存放LCD ID字符串

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

//距离小于150mm时报警

{

BEEP=1;

//蜂鸣器报警

LED1=0;

//LED亮

}

else

{

BEEP=0;

LED1=1;

} } } /*********************************** 串口中断子程序(串口中断入口)

***********************************/ int globe1;int globe2;int flag=0;int distant;u8 temp[12];

//存放LCD ID字符串 void USART2_IRQHandler(void)

//串口2中断服务程序

{

u8 Res;

if(USART_GetITStatus(USART2, USART_IT_RXNE)!= RESET)//接收中断(接收到的数据必须是0x0d 0x0a结尾)

{

Res =USART_ReceiveData(USART2);//(USART2->DR);//读取接收到的数据

if(flag%2==0){

globe1=Res;

flag++;

}

else{

globe2=Res;

distant=globe1*256+globe2;

//距离计算公式

delay_ms(40000);

printf(“The distant is:%dcmn”,distant);//串口1显示距离

flag++;

LCD_ShowString(50,130,200,16,16,“distance:”);

LCD_ShowNum(120,130,distant,4,16);

//液晶显示距离

}

if(distant

{

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”);

}

}

}结论

本设计以ARM Conex-M3内核微控制器为超声波测距的控制核心,再结合带有超声波收发和温度补偿的US-100超声波测距模块简化了电路和开发环境。利用STM32中断子程序优化了软件编程,使系统运行内存更小,功耗更低;US-100进行的温度补偿减小了误差,提高了精度,在近距离测量范围内,该设计可达到mm级。该装置具有很好的实用性。

参考文献:

[1] 夏晨,李朴.反应釜设计及其温度控制系统[J].化工自动化及仪表,2004,31(1):66-69 [2] 时德刚,刘哗。超声波测距的研究[J].计算机测量与控制,2002,9(10):31-33 [3] 陈文凯,张根宝,张震强.基于ARM Conex--M3内核微控制器的智能锤式料位检测系统.计算机测量与控制,2008,16(11):1564-1566

[4] [5] [6] [7] 刘玉梅,张清志.基于超声波测距装置的节能装置设计[J].仪表技术与传感器,2009(20):109-110 苏伟,巩壁建.超声波测距误差分析[J].传感器技术,2004,3(4):17-20 林志刚,曲建中.彩色薄膜晶体管液晶显示器(TFT-LCD)基本原理与动态.山东电子,1999,11(2):33-38 张根宝,李秀平,庞苏娟.基于ARM Conex-M3便携式智能超声波液位计.仪表技术与传感器,2012(20):29-32

超声波测距

超声波测距超声波发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。声波在空气中的传......

超声波测距总结

超声波测距超声波传感器用于超声控制元件,它分为发射器和接收器。发射器将电磁振荡转换为超声波向空气发射,接收器将接受的超声波进行声电转换变为电脉冲信号。实质上是一种......

超声波测距总结报告

电子技术实验课程设计超声波测距系统总结报告自03 胡效赫 2010012351 自03 胡效赫 2010012351一、课题内容及分析首先根据课程所给的几个题目进行选择,由于自己最近在做电子......

超声波测距方案流程图

超声波测距的具体方案流程图距离显示LED发射电路缓冲器高频振荡器接受电路放大器比较器单片机声光报警模块定时器该方案采用超声波测距系统,超声波的优点如下:超声波指向性强,......

超声波测距试验心得

超声波测距试验心得/* ............................IO口可以由高电平接地拉成低电平, 但是不能由低电平接Vcc拉成高电平.............................*/ #include #includ......

下载基于STM32的超声波测距word格式文档
下载基于STM32的超声波测距.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文