基于STM32单片机的高精度超声波液位计设计

2020-04-17 06:33吴修广
浙江水利科技 2020年2期
关键词:液位超声波单片机

孙 超,吴修广

(浙江省水利河口研究院,浙江 杭州 310020)

液位测量有接触式和非接触式2种,如接触式的浮子型及压力型,非接触式的微波雷达法、激光法和超声波法等。其中接触式测量在使用中会干扰液位变化,产生较大误差[1]。非接触式测量的微波雷达法技术难度大、成本高,激光法精度高但易受干扰。超声波液位测量具有结构简单、成本低、不受光线、烟雾干扰等优势[2]。但目前的超声波液位测量装置存在精度较低(2.0 mm左右)、测量数据不稳定的问题,限制了它的应用。

本文基于STM32单片机,采用高精度的超声波传感器,配合24位ADC,实现120.0 ~ 1 000.0 mm量程范围内0.1 mm精度的超声波液位测量。

1 误差成因分析与对策

1.1 超声波测距的原理

超声波测距的原理见图1。

图 1 超声波测距原理图

利用已知超声波在空气中传播速度v,超声波换能器垂直向液面发射超声波,声波在水面与气体的分界面发生反射,并回传至换能器,记录传播时间t,即可得到换能器到液面的直接距离L = 0.5vt,继而得到实际的液面高度[3]:

1.2 误差成因分析及器件选择

1.2.1 温 度

超声波的声速与温度有关,一般经验公式为v = 331.5 +0.607t,t为摄氏温度,℃。在超声波传感器实际应用中,应根据环境温度的变化进行补偿,否则将有比较大的误差。本系统使用的传感器内部已经进行温度补偿。

1.2.2 单片机计时量化

从式(1)还可以看到,液位测量的误差和时间t的测量误差有关,而t的测量误差取决于单片机系统计时量化带来的误差[4]。

如果要求误差0.1 mm,假设C = 344 m/s(20 ℃)时,对应的Δt为:

本系统采用STM32F103C8T6单片机,主频为72 MHz,其计时量化时间为0.013 μs,远小于式(3)要求的时间,故其产生的误差可以忽略不计。

ST公司的STM32F103C8T6是一款基于ARM Cortex - M内核的32位的微控制器,程序存储器容量是64 KB,RAM容量是20 KB,工作电压2.0 ~ 3.6 VDC,具有37个GPIO及复用的1个SPI硬件接口、1个I2C接口、3个USART接口、1个USB接口等。

1.2.3 AD采样位数

超声波传感器输出为4 ~ 20 mA,经过转换为0.0 ~ 5.0 VDC,而测量要求是量程0.0 ~ 1 000.0 mm,精度达到0.1 mm,则可以计算出系统电压的最小分辨率需要至少为:

而以2.5 VDC为基准参考电压且单端输入时18位AD的最小分辨率为:

可见采用18位AD采样芯片就可以满足系统精度要求。综合考虑芯片价格、外围电路复杂程度、通道数、采样速率较高时AD有效位数减少等因素,本系统采用TI公司的24位采样芯片ADS1256。

ADS1256是具有8通道极低噪声的24位Δ - Σ型模数转换器,其最高采样频率30 kSPS,采用SPI接口。模拟工作电压5.0 VDC,数字工作电压1.8 ~ 3.6 VDC。

1.2.4 基准参考电压

基准参考电压是AD转换的依据,其精度和稳定性决定系统的精度和稳定性。本系统采用ADR431B芯片产生2.5 VDC基准电压。AD公司的ADR431B是具有3.5 μVp-p噪声、3 ppm/℃温漂的高精度基准参考电压芯片。

1.2.5 超声波传感器

超声波传感器是一种可以把电信号和声能相互转换的装置,可以分为电动式、电磁式、磁滞式和压电式。经过对比各种超声波传感器的性能,本系统选择德国Microsonic公司的压电式超声波传感器pico+100/WK/I,主要性能指标:检测范围为120 ~ 1 000 mm;盲区120 mm;换能器频率200 kHz;工作电压10 ~ 30 VDC;最高分辨率0.069 mm;输出 4 ~ 20 mA。

1.2.6 电流转电压电路

超声波传感器的输出信号是4 ~ 20 mA电流,需要转换为0.0 ~ 5.0 VDC电压才能被ADC采样。转换电路的精度同样决定系统的精度,本系统采用以OPA4227芯片为核心的运放运算电路作为转换电路。

OPA4227芯片是TI公司的4通道高精度低噪声运算放大器,主要性能指标:典型噪声90 nVp-p;输入失调电压±10 μV;工作电压 ±2.5 ~ ±18.0 V。

该芯片需要的正负双极性电压由芯片ICL7660提供。ICL7660是Maxim公司的小功率双极性电源转换器,只需外接一个10 μF的电容就可以将1.5 ~ 12.0 VDC范围内输入的正电压转换为相应的负电压。

2 系统硬件设计

2.1 整体结构设计

硬件系统整体结构见图2。

图 2 硬件系统整体结构图

硬件系统分为3部分:第一部分是电源,先通过开关电源将220.0 V交流电转为12.0,5.0,3.3 V的直流电分给供给超声波传感器、电流转电压电路、ADS1256模块、MAX485模块和STM32单片机模块。另外添加ADR431,以提供基准电压给ADS1256。第二部分是数据收集,超声波传感器将测量数据通过4 ~ 20 mA的电流信号传输给电流转电压电路,该电路将可读的电压信号发送给24位精度的ADS1256模块,再通过SPI将数字信号发送给STM32单片机。第三部分是信号的处理以及发送显示,STM32单片机将得到的数字信号处理后通过串口转485模块,发送给PC显示。

2.2 硬件仿真

4 mA输入仿真结果见图3;20 mA输入仿真结果见图4。

图 3 4 mA输入仿真结果图

图 4 20 mA输入仿真结果图

使用电流转电压电路中的4个OPA4227PA组成的减法器、加法器和放大器,将电流信号转化为可读的电压信号。

3 系统软件流程

软件系统流程见图5。

图 5 系统软件流程图

4 率 定

4.1 率定方法

使用珠江水利委员会生产的高精度光栅式水位仪(0.01 mm绝对精度)测量水位高度,PC端查看系统传回的电压值(见图6)。

图 6 率定及验证示意图

4.2 率定结果

根据率定结果(见图7),当H = 100 cm时得到电压与水位的关系:

图 7 电压-水位关系图

5 验 证

5.1 验证方法

使用高精度水位仪做标准,与液位计实测结果对比(见图8)。

5.2 验证结果

验证结果见图8,误差范围在0.2%以内,绝对误差小于0.1 mm。

图8 验证结果图

6 结 语

本文分析了高精度超声波液位计的误差原理,给出详细的设计方案,最终实现120.0 ~ 1 000.0 mm量程范围内0.1 mm精度的超声波液位设计。

猜你喜欢
液位超声波单片机
一种用于双输入双输出液位控制系统的状态估计控制器的设计
国外储罐防溢油液位的设置
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
蝙蝠的超声波
基于Niosll高精度超声波流量计的研究
蝙蝠的超声波
超声波流量计的研究