STM32超声波液位测量及控制系统设计

一、引言

随着工业的发展,计算机、微电子、传感器等高新技术的应用和研究,液位仪表的研制得到了长足的发展,以适应越来越高的应用要求。液位的测量在工业生产过程中已经起着相当重要的作用,其类型大概可以分为接触型和非接触型两大类。

超声波液位测量就属于非接触型液位测量的一种,所以它也有不受被测介质影响,不影响被测介质,能适应粘度高、腐蚀性强等特殊介质的测量的特点,能适应的范围比其它的测量手段更广泛。单片机技术和传感器技术的结合使液位测量方法得到了更进一步的发展,精度也有了更佳的提高。

本设计中,采用超声波传感器测距,根据相关计算得到液位高度。本设计可以完成0~20cm水位高度的测量,并可实现10~20cm之间的液位自动调节,该设计可以精确到mm位。结合STM32单片机,加上按键输入控制、OLED显示部分、Lora无线串口、电机等元器件,通过软件程序设计实现了整个系统对于水位的监测、控制的功能。

二、系统设计方案

 

超声波测量控制部分:通过超声波模块反馈的数据通过相应的计算分析处理,得到液面高度,然后将此数据与按键输入设置的期望液面高度进行误差比较,对得到的误差进行PID计算,将计算后结果加到控制电机的PWM波中,以实现对两个蠕动泵进行控制。

当实际液面高度大于期望液面高度时,误差为负,单片机会发送低电平给一个泵,给另一个泵高电平,进而控制两个电机蠕动泵正反转实现抽水,直至实际液面高度达到期望液面高度为止;同理,当实际液面高度小于期望液面高度时,误差为正,合理控制两个电机蠕动泵正反转实现进水。

显示部分:通过软件程序设计,在OLED显示屏上显示实际液面高度、期望液面高度等有效信息,同时采用Lora无线串口,将数据实时传输到电脑上位机端,方便清晰地显示出该测量控制系统的调节过程曲线变化。

三、硬件选型HC-SR04模块

1、HC-SR04模块是一款常用的超声波测距模块,该模块具有性能稳定,测度距离精确,模块高精度,盲区小的优点

工作原理:

(1)采用IO口TRIG触发测距,给至少10us的高电平信号;

(2)模块自动发送8个40khz的方波,自动检测是否有信号返回

(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。

测试距离=(高电平时间*声速(340M/S))/2;

(4)本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。如此不断的周期测,即可以达到你移动测量的值。

2、L298N模块

该驱动板可驱动两路直流电机,两个使能端为高电平时有效,若要对直流电机进行PWM调速,需要设置IN1和IN2,确定电机的转动方向,然后对使能端输出PWM脉冲,即可实现调速。注意当使能信号为0时,电机处于自由停止状态;当使能信号为1,且IN1和IN2为00或01时,电机处于制动状态,阻止电机转动。

四、软硬件设计

1、硬件

电源部分:采用12V锂电池,4500mAH锂电池供电。

稳压部分:通过稳压模块将电压转换到5V对单片机STM32F103C8T6、L298N模块以及超声波HC-SR04模块进行供电。

检测部分:采用超声波HC-SR04模块检测液面高度,单位采用毫米。

控制部分:通过单片机STM32F103C8T6对采集的数据进行分析,并通过PWM脉冲宽度对水泵进行控制,实现水泵的抽水、进水功能。

显示部分:采用OLED液晶显示屏将超声波采集的数据进行输出,以便于人为观察及调试;通过上位机波形显示可得到系统调节稳定过程。

输入装置:通过按键输入数据,以达到手动调节水位的目的。

2、软件

超声波控制水位软件设计:当实际液面高度大于期望液面高度时,设置程序,给单片机电机驱动模块合适的占空比,使泵往容器外抽水,直至实际液面高度达到期望液面高度。

PID反馈控制软件设计:PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分单元I和微分单元D组成。PID控制的基础是比例控制;积分控制可消除稳态误差,过大可能增加超调;微分控制可加快大惯性系统响应速度以及减弱超调趋势。这个理论和应用的关键是,做出正确的测量和比较后,如何才能更好地纠正系统。

PID反馈控制方式:增量式PID控制将当前时刻的控制量和上一时刻的控制量做差,以差值为新的控制量,是一种递推式的算法。
    

五、实验与分析

在搭好硬件之后,开始对液面高度进行标定,在软件设计中,让液面初始高度为10.00cm,贴好标准尺。

通过不断设置期望高度,根据实际液面高度计算公式,得到其与期望高度的偏差,对初步程序进行参数调整(标准高度、PID参数等)。                 

实际液面高度=标准高度-(高电平时间*声速(340m/s))/2

最终设定到较好的参数值,达到课程设计的误差要求。

按照实验要求测量数据:根据要求我们以10mm为间隔,从上升过程和下降过程分别测了16组数据。

每次设定期望高度,相当于给这个系统一个阶跃信号,以超声波模块高电平时间为采样周期,我们可以从上位机变化波形中,得到该系统稳定调节过程,并计算出响应时间和超调量。

实验数据记录

 

实验数据分析

1、超调量: 

上升过程:在初始高度为12.00cm,期望高度设置为14.00cm时,响应时间为18.8s,此时类似于一个二阶系统,对应的超调量为0.7143%。

下降过程:在初始高度为18.00cm,期望高度为13.00cm时,响应时间为20s,对应的超调量为2.308%。示意图如图5。

 

误差分析计算

由得到的上升过程16组,数据计算得稳态误差(相对误差)为0.201%。由得到的下降过程16组,数据计算得稳态误差(相对误差)为0.463%。均符合实验要求的误差小于2%,超声波测量水位实验较为成功,完成实验控制要求。

工程源码分享:

链接:https://pan.baidu.com/s/1o5tF5hN9AbTs-0ETC_vilw 
提取码:scls

物联沃分享整理
物联沃-IOTWORD物联网 » STM32超声波液位测量及控制系统设计

发表评论