喻文倩(西南科技大学,四川 绵阳 621010)
基于US-100超声波测距仪设计
喻文倩
(西南科技大学,四川绵阳621010)
由STM32作为控制器,选用US-100超声波模块作为传感器,利用声速测量距离。利用TFTLCD显示屏和上位机作为结果显示窗口,当测量距离小于150mm时,蜂鸣器报警。
ARM;US-100超声波测距模块;声速测距
超声波指向性强,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。
系统总体设计框图如图1,可以看到,超声波测距主要是由STM 32控制器,TFTLCD显示屏,上位机作为显示,US-100超声波测距模块作为传感器。当控制器给传感器开始工作的信号时,传感器开始工作,并返回测试的数据,通过TFTLCD显示屏和上位机显示测量结果。当测量距离小于150mm时,蜂鸣器报警。
3.1STM32F103控制器
STM 32F1系列属于中低端的32位ARM微控制器,其内核是Cortex-M 3。工作频率可高达72M hz,内置高速64KBSRAM存储器;外设包512KBFLASH、2个基本定时器、4个通用定时器、2个高级定时器、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SD IO接口、1个FSMC接口以及112个通用IO口。
3.2US-100 超声波测距模块接口
US-100超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。
将实物与开发板连接如图2所示:(US-100正面从左向右一次为1-5口)
4.1总体软件设计
测距的过程可以分为三个部分,分别为:控制器资源配置、US-100的时序模拟测量过程及数据处理、显示及判断测量距离是否小于150mm。
4.1.1控制器的资源配置
#ifndef__TIMER_H#defi ne__TIMER_H
#include"sys.h"
voidGPIOA1_Init(void);voidGPIOA3_Init(void);
voidTIM 3_Int_Init(u16arr,u16psc);voidTIM 3_PWM_Init(u16arr,u16psc);
voidTIM 5_Cap_Init(u16arr,u16psc);voidTIM 4_Cap_Init(u16arr,u16psc);
#endif
定时器5通道1输入捕获配置:
voidGPIOA 1_Init(void)
初始化定时器5TIM 5:
voidTIM 5_Cap_Init(u16arr,u16psc)
中断分组初始化:
NVIC_InitStructure.NVIC_IRQChannel = TIM 5_IRQn; //TIM 3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //先占优先级2级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //从优先级0 级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
NVIC_Init(&NVIC_InitStructure); //根据NVIC_InitStruct中指定的参数初始化外设
TIM_ITConfig(TIM 5,TIM_IT_Update|TIM_IT_CC1,ENABLE);//,允许CC1IE捕获中断TIM_Cmd(TIM 5,ENABLE); //使能定时器5定时器5中断服务程序:void TIM 5_IRQHand ler(void)
在主程序中调用定时器:TIM 5_Cap_Init(0XFFFF,72-1);//以1Mhz的频率计数
4.1.2US-100的时序模拟测量过程
由TRIG_Send发送高电平,延时20us:
GPIO_SetBits(GPIOA,GPIO_Pin_1);
delay_us(20);
GPIO_ResetBits(GPIOA,GPIO_Pin_1);
根据时间,距离计算公式为distance=times*10e-4*340/2*10e3=times*34/2,
{tem p=TIM 5CH1_CAPTURE_STA&0X3F;
temp*=65536;//溢出时间总和
temp+=TIM 5CH1_CAPTURE_VAL;//得到总的高电平时间
TIM 5CH 1_CAPTURE_STA=0;//开启下一次捕获
distance=temp*0.17;}
4.1.3显示测量结果,并判断数据是否小于150mm LCD_ShowNum(140,50,distance,4,16);
delay_ms(2000);
i++;
if(distance<=150)
{BEEP=1;}//如果距离小于150蜂鸣器报警
if(distance>150)
{BEEP=0;}//如果距离大于150蜂鸣器关闭
if(i%20==0)
{printf("D istance:%dcm ",distance);}
本文重点叙述了如何使用US100制作超声波测距仪。利用STM 32设计软件,通过硬件US100实现。从设计过程可以看出该仪器原理简单、制作方便、成本低。但是当要测量距离较远的目标时,由于外界环境的干扰,一方面声波发散而使能量降低,另一方面使分辨力下降,从而使得准确度下降,造成测量数据不准确。所以该设计一般用于近距离的测量。
[1]刘林茂.一种特殊构件粘接缺陷的超声波检测[J].无损检测,2010(01).
[2]邓大勇.钢板超声波检测基准灵敏度确定的诠释[J].青海电力,2008(02).
[3]刘金平,胡斌定.大型钢桥箱型梁超声波检测[J].无损探伤,2009(06).
喻文倩(1994—),女,四川成都人,本科,研究方向:电气工程及其自动化。