基于STM32单片机的超声波测距系统设计与实现

2020-10-21 02:48张安东
铜陵职业技术学院学报 2020年3期
关键词:液晶屏波速测距

张安东

(铜陵职业技术学院,安徽 铜陵 244000)

频率超过20Hz的声波被称为超声波,常见的超声波频率为几十千赫到几十兆赫[1]。由于超声波具有较强的穿透力和能量集中的优点,常用超声波进行非接触测量。对于某些具有危险性或运动复杂性等场合,比如危险环境测距、汽车倒车雷达等场合[2],采用超声波进行非接触测距显得非常有必要。由于超声波的波速受到温湿度的影响,所以直接使用未经过任何补偿的波速进行计算距离会产生测量误差,对于测量精度要求较高的场合这种测试系统并不合适。针对波速随温湿度变化的情形,文献[3-5]等提出了对超声波进行温度补偿。文献[6]根据文献[7]的结论提出了具有温度和湿度补偿的超声波检测系统,但是文献[6]采用51系列单片机作为控制核心。由于STM32单片机的强大功能和高性价比得到各行业广泛应用,有替代51系列单片机的趋势,所以本文使用STM32单片机作为控制核心,使用TFT液晶屏作为显示设备设计了一个具有温湿度补偿的超声波测距系统。该系统经过测试达到了设计要求。

1 超声波测距原理与温湿度补偿

超声波应用有三种基本类型,分别是透射型、分离式反射型及一体式反射型。分离式反射型一般用于测距[1],其原理是发射端发射超声波,当超声波在空气中传播遇到被测物时被反射回来,反射回来的超声波被接收端检测到。假设超声波从发射到接收到所用时间为t,超声波在空气中的传播速度为v,则所测距离s=vt/2。

根据文献[6][7]超声波的波速受到被测环境温度和湿度的影响,为了提高测距的精度,对波速进行必要的温度和湿度补偿。补偿公式如(1)式所示。

2 系统硬件设计

2.1 总体方案硬件电路设计

测距系统使用STM32单片机为控制核心,这里采用STM32F103VET6型号单片机。显示部分采用野火3.2寸(240*320)液晶屏,该液晶屏使用ILI9341芯片控制液晶屏,另外该液晶屏还具有触摸功能,通过TSC2046芯片控制触摸[8]。采用HC-SR04超声波模块进行超声波发射与接收。使用传感器SHT11对测距环境进行温湿度的检测,实时实现对超声波波速的补偿。其总体框图为图1所示。

图1 系统框图

2.2 STM32单片机时钟和复位电路

STM32芯片为了实现低功耗,设计了一个功能完善但却非常复杂的时钟系统。从时钟频率来说,又分为高速时钟和低速时钟,高速时钟提供给芯片主体的主时钟,而低速时钟只是提供给芯片中的RTC(实时时钟)及独立看门狗使用。高速外部时钟(HSE)以外部晶振作为时钟源,这里采用8MHz的晶振;低速外部时钟(LSE)这里采用32.768KHz晶振。高速和低速外部时钟引脚分别对应STM32F103VET6单片机的引脚为12和13引脚及第8和9引脚,复位引脚为该单片机的19引脚,具体电路如图2所示。

图2 时钟和复位电路

2.3 液晶显示电路

系统使用野火3.2寸液晶屏(240*320),该屏使用ILT9341芯片为液晶屏控制器。液晶屏控制芯片的内部结构非常复杂,最主要的部分为GRAM(Graphics RAM),可以理解为显存。ILI9341有不同的工作模式,如每个像素点的位数是6、16还是18位;使用SPI接口还是8080接口与MCU进行通讯;使用8080接口的哪种模式等。可以通过对ILI9341控制信号线的配置,来设置工作模式。目前大多数的液晶控制器都使用8080接口与MCU进行通讯,因为它们的时序十分相似,所以本系统设置ILI9341使用8080接口与STM32单片机通讯[8]。由于野火液晶屏还有触摸功能,本系统只用液晶进行显示,不用其触摸功能,所以液晶触摸功能引脚不连接。液晶与单片机连接电路如图3所示。

图3 TFT液晶显示电路

2.4 温湿度传感器SHT11

SHT11是瑞士Sensirion(盛世瑞恩)公司推出的二线制串行接口型温、湿度传感器,可输出经过校准的温度、湿度数据,大大节约了外围器件,应用十分方便[9]。另外SHT11是一种超小型、高精度、自校准、多功能的智能型温、湿度传感器,可同时用来测量同一地点的温度和相对湿度。SHT11共有4个需要连接的引脚。1、4引脚分别接GND和VCC;2、3引脚分别接数据线DATA和时钟线SCK,用于和单片机等控制器连接。连接电路如图4所示。

图4 SHT11连接电路

2.5 超声波传感器HC-SR04模块

HC-SR04最小可测至2厘米,最大测距可达400厘米,测距可达3毫米精度。模块有四个引脚,分别为VCC、GND、Trig和Echo。Trig为触发控制信号输入,Echo为回响信号输出。其时序图如图5所示。

图5 超声波模块时序

由时序图可知,触发信号产生一个10us的TTL高电平后,模块内部循环发出8个40KHz的脉冲,并检测回波。一旦检测到有回波信号则输出回响信号,回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离,即时间间隔乘以波速除以2就得到测量的距离。该模块与STM32单片机的连接通过Trig和Echo引脚与单片机的两个IO连接即可完成,非常简单,这里不给出具体连接电路图。

3 软件设计

系统程序采用多文件形式,包括超声波模块程序文件、TFT液晶显示程序文件、SHT11温湿度检测程序文件及主程序文件,并且每个程序文件对应一个头文件。系统上电后初始化,主程序先调用SHT11程序文件相关函数,返回温、湿度信息。然后调用超声波模块程序相关函数,由单片机PB0口给Trig超过10us高电平触发超声波模块由发射端发射8个40KHz超声波,使用基本定时器TIM6开始定时,当接收端收到超声波时定时结束,得到定时时间。将返回的温湿度值代入(1)式计算温湿度补偿后的波速,再由波速和传播时间计算测量的距离。具体系统程序流程如图6所示。

4 系统测试

软件系统调试完成后进行了系统测试,在10mm至200mm范围内选择了不同测量距离在有无温湿度补偿情况做对比测试。表格中的实际距离是采用精度较高的测量尺进行测量的距离,测量结果如表1所示,表中单位为mm。

图6 系统程序流程图

表1 测量结果对比

从表1可知,具有温湿度补偿后测距精度更高,另外采用TFT液晶显示信息,显示信息更丰富。

5 总结

本文采用STM32单片机作为系统控制核心,设计了一套具有温、湿度补偿的超声波测距系统,该系统采用SHT11温、湿度传感器检测测量环境温、湿度对超声波波速进行补偿,以提高测量精度。超声波传感器使用HC-SR04超声波模块。最后将测量信息在TFT液晶屏上显示。测量结果表明有温湿度补偿后的测量结果明显高于无补偿的情况。

猜你喜欢
液晶屏波速测距
行波效应对连续刚构桥地震响应的研究
2013-12-16巴东MS5.1地震前后波速比异常特征
基于RSSI测距的最大似然估计的节点定位算法
基于实测波速探讨地震反射波法超前预报解译标志
含气体突出煤岩纵波波速与应力耦合关系研究
类星体的精准测距
基于FPGA的车内环境监测系统设计
一种消除液晶屏高温MURA的工艺研究
浅谈超声波测距
基于单片机的点餐系统硬件设计