基于STM32 单片机的恒温箱系统设计
2015-03-25王桔洪梅
王 桔 洪 梅
(长春大学 电子信息工程学院,长春130022)
0 引 言
恒温箱是航空、汽车、家电、科研等领域必备的测试设备,用于测试和确定电工、电子及其他产品及材料进行高温试验的温度环境变化后的参数及性能,是用来在一定的温度下饲养或培养生物或生物的一部分(细胞等)的箱型器具[1]。适合电子、电器、通讯、仪表、车辆、塑胶制品、金属、食品、化学、建材、医疗、航天等制品检测质量之用。
在实验室中,特别是生物实验室,我们为了得到更加准确的实验数据,对于恒温实验环境要求严格。所以针对实验室来说,恒温箱的作用显得相当重要,对于我们实验室的研究过程以及研究结果将产生很大的影响。同时更加准确的研究结果对于我们由此产生的试验成果的实际运用产生积极的作用。
在工业生产中,恒温箱的应用是广泛的,工厂车间的产品以及由此相关的工业生产都是基于恒温环境的后续发展。所以恒温箱的作用在工业中更是处于举足轻重的地位。同时在工业生产过程中我们对于恒温箱的要求也相对更加严格,比如质量的可靠性、恒温箱的维护管理费用、恒温箱的本身价位等,
在医药方面,医用恒温箱主要用于药品,试剂的储存,运输;疫苗,血液的冷藏保温,透析液的加温,生理盐水的加温等。
1 系统设计方案
本系统包括STM32F103 核心板、PT1000 温度传感器、放大电路、4×4 矩阵键盘、声光报警电路、液晶显示屏、驱动电路、继电器控制电路、半导体制冷片及PTC 加热片,如图1 所示。
PT1000 温度传感器输出电压经放大电路放大后送到STM32F103 核心板的模数转换接口,转化成数字量后经STM32F103 单片机处理得到相应的温度信息。在某一时刻箱内如果低于设置温度则通过继电器控制电路使PTC 加热片开始加热,经H 桥驱动电路正向驱动制冷片使半导体制冷片开始加热箱体。当箱内温度高于设置温度时,STM32F103 单片机发出控制指令,经驱动电路反向驱动制冷片使半导体制冷片开始制冷。在液晶显示屏上显示箱内实际温度和设置温度。通过4×4 矩阵键盘输入设置温度,也可以在触摸屏上直接输入设置温度。
2 系统的控制方案
系统采用PID 算法控制单片机输出PWM 的占空比从而控制半导体制冷片的功率。在某一时刻箱内温度如果低于设置温度则PTC 加热片开始加热,经H 桥驱动电路正向驱动制冷片使半导体制冷片开始加热箱体。当箱内温度高于设置温度时,STM32F103 单片机发出控制指令,经驱动电路反向驱动制冷片使半导体制冷片开始制冷。
图1 系统设计方案
PID 是比例控制(P)、积分控制(I)和微分控制(D)的简称。在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID 控制器是应用最广泛的一种自动控制器。PID 调节规律[2]是连续系统动态品质校正的一种有效方法,它的参数整定方式简单,结构形式灵活。控制点包含两种PID 控制算法,分别是:增量式算法,位置式算法[3]。
本设计采用位置式算法,将实际温度与目标温度之差经比例微分积分运算后拟合成PWM 占空比数值的变化曲线,输出给光耦H 桥驱动电路。控制器根据第n 次被控变量采样结果与设定值之间的偏差e(n)计算出第n 次采样之后所输出的控制变量。位置式PID 控制算法的数学表达式为:
其中u(n-1)是第n-1 次采样之后所输出的控制变量。控制变量u(n)的值将决定第n 次采样之后执行器的动作位置。离散化公式:
3 系统的数据处理
常用的数字滤波器算法有中值判断法、算术平均值法、加权滤波法、滑动滤波法[4]。中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的值接近的真实值,从而消除孤立的噪声点。中值滤波对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊[5]。中值滤波的算法比较简单,也易于用硬件实现。算术平均法是求出一定观察期内预测目标的时间数列的算术平均数作为下期预测值的一种最简单的时序预测法。常用的有简单算术平均法和加权算术平均法。滑动滤波法就是把连续取N 个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.把队列中的N 个数据进行算术平均运算,就可获得新的滤波结果。此方法对周期性干扰有良好的抑制作用,平滑度高 适用于高频振荡的系统。
比较几种滤波方法可以得出。如图2 所示,中值判断法更适合恒温箱的软件设计。
4 调试
本系统的调试从传感器的数据输入开始到PWM 的输出再到GPIO 的测试每一步都要经过数据的比对。传感器的数据输入使用的是STM32 单片机的AD 端口,使用ADC 时常常需要不间断采集大量的数据,在一般的器件中会使用中断进行处理,但使用中断的效率还是不够高。在STM32 中,使用ADC 时往往采用DMA传输的方式,由DMA 把ADC 外设转换得的数据传输到SRAM,再进行处理,甚至直接把ADC 的数据转移到串口发送给上位机。
图2 中值判断法
测试使用的端口是ADC1 的通道11,单片机上的引脚为PC1,AD 的转换结果保存在全局变量ADCConvertedValue 中。将放大器的输出端接到PC1 上,打开电源后,将ADC 的测试程序烧写到单片机中,进行在线调试,观察Watch1 窗口中ADC-ConvertedValue 值的变化,如图3 所示。
图3 Watch1 窗口中ADC-ConvertedValue 值
变量ADC-ConvertedValue 的结果与真实值相比误差很小,ADC 端口调试通过。
在STM32 芯片上,I/O 引脚可以被软件设置成各种不同的功能,如输入或输出,所以被称为GPIO(General-purpose I/O)。而GPIO 引脚又被分为GPIOA、GPIOB-GPIOG 不同的组,每组端口分为0~15,共16 个不同的引脚,对于不同型号的芯片,端口的组和引脚的数量不同。
控制LED 就要选定需要控制的特定引脚,配置需要的特定功能,设置GPIO输出电压的高低。
将LED 测试程序烧写到单片机中,如图4 所示,进入调试界面并全速运行,可以观察到LED 灯间隔500 毫秒闪烁,GPIO 端口没有错误,调试完成。
图4 调试界面
PWM 由通用定时器产生。通用定时器是通过可编程预分频器驱动的16 位自动装载计数器构成。它适用于很多种场合,包括测量输入信号的脉冲长度或者产生输出波形[6]。使用定时预分频器和RCC 时钟控制器预分频器,脉冲长度和波形周期可以再几个微妙到几个毫秒之间调整[7]。定时器是完全独立的没有相互共享任何单片机资源。
调试使用的是定时器3 的2 通道,实现KHz 的不同占空比波形。桨测试程序烧写到单片机中,进人在线调试状态,用示波器观察输出端口的波形如图5 所示。
图5 示波器显示的波形图
5 结语
本文提出了基于微型计算机机测量和控制技术的恒温箱系统,STM32F103 单片机作为系统的核心,使用半导体制冷片作为系统的加热、制冷设备,转换效率较高,与使用压缩机的恒温箱相比更节能更环保。
系统初步完成了最初的设计要求并基本实现了总体功能。经过测试,系统的恒温范围在25℃-80℃。超调量为1℃,达到稳定的时间为10min 左右,如图6 所示本设计的实物图。
图6 基于STM32 单片机的恒温箱系统实物图
[1] 徐亚飞,刘官敏,高国章,等.温箱温度PID 与预测控制[J].武汉理工大学学报(交通科学与工程版),2004,28(4):554-557.
[2] 吕芮栋,张志文.以MSP430F149 为核心的温度检测仪的硬件模块和软件设计[J].现代电子技术.,2012,35(1):199-201.
[3] 施春宁,张中华,王涛.谈PID 控制的理论分析[J].山西建筑,2012,38(3):238-240.
[4] 张鹏飞,齐晓慧.基于N 沟道MOS 管H 桥驱动电路设计与制作[J].科技信息,2012(20):147,149.
[5] 廖建兴.基于DB6225 芯片的H 桥电机驱动器[J].研究与设计,2012(1):32-35.
[6] 汪亮亮.温室温度检测及报警器的设计与功能实现[J].电脑知识与技术,2012,8(12):2906-2907.
[7] TomaszKlopot,Jacek czeczot..Flexible function block implementation[J].Energy and Environment,2014,4(4):21-23.