设计与开发

基于单片机的水温控制 应用于实时温度控制的单片机设计

小编 2024-11-24 设计与开发 23 0

应用于实时温度控制的单片机设计

目前,水温控制被广泛应用于食品、医药、化工、家电等很多领域,水温控制的好坏直接影响着产品的品质,因此,水温控制具有十分重要的意义。本设计的任务与要求为1 L 水由1 kW的电炉加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。主要性能指标:温度设定范围为25.0~100 ℃,最小区分度为0.1 ℃,温度控制的静态误差小于或等于0.1 ℃,用SMC1602A 液晶显示模块显示实际水温和PID 控制算法中的三个主要参数Kc、Ti、Td 的赋值,用串口调试精灵将PID 控制器的输出和温度采样值显示在PC 机上。

1 系统方案

本设计以STC89C52 单片机为核心,采用了温度传感器DS18B20、RS232 标准接口及PID 控制算法对温度进行控制。

该水温控制系统是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算,到输出控制电炉加热功率以实现水温控制的全过程。本设计实现了水温的智能化控制以及提供完善的人机交互界面及PC 机与单片机通信接口,系统由PC 机与单片机通信模块、温度检测及其显示模块、PID 控制算法等模块组成,其特点在于采用PC 机与单片机通信,系统框图如图1 所示。

2 硬件电路设计

本电路总体设计包括四部分:主机控制部分(STC89C52)、温度采样与显示电路、温度控制电路、PC 机与单片机通信电路。

2.1 主机控制部分

主机控制部分是电路的核心,系统的控制采用单片机89C52.单片机89C52 内部有8 KB 单元的程序存储器以及512 B 的数据存储器,因此,系统不必扩展外部程序存储器和数据存储器,这样就可以大大减少系统硬件部分的复杂度。

2.2 温度采样与显示电路

系统的信号采集与显示电路主要由温度传感器DS18B20和SMC1602A 液晶显示模块两部分组成。

DS18B20 采用独特的单线接口方式,在与微处理器连接时,仅需要一条口线即可实现微处理器与DS18B20 的双向通信。测温范围为-55~+125 ℃,固有测温分辨率为0.5 ℃,工作电源为3~5 V/DC,在使用中不需要任何外围元件,测量结果以9~12 b 数字量方式串行传送,适用于DN15~25、DN40~DN250 各种介质工业管道和狭小空间设备的测温。

SMC1602 液晶显示器以其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。液晶显示器通常可分为两大类,一类是点阵型,另一类是字符型。点阵型液晶通常面积较大,可以显示图形; 而一般的字符型液晶只有两行,面积小,只能显示字符和一些很简单的图形,简单、易控制且成本低。目前,市面上的字符型液晶绝大多数是基于HD44780 液晶芯片的,所以控制原理是完全相同的,为HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD 通常有14 条引脚线( 市面上也有很多16 条引脚线的LCD,多出来的2 条线是电源线VCC(15 脚) 和地线GND.

2.3 温度控制电路

此部分电路主要由光电耦合器、三极管和继电器组成。

光电耦合器的耐压值为400 V,它的输出级经三极管将功率放大后控制继电器常开触点的通断,从而最终达到控制电炉子的目的,100 Ω电阻与0.01 μF 电容组成双向可控硅保护电路。

2.4 PC 机与单片机通信电路

为了使系统具有更好的人机交换界面,在系统设计中我们通过Visual Basic 语言设计了微机控制界面。系统与微机的通信大大提高了系统的各方面性能。

由于单片机89C52 串行口为TTL 电平, 而PC 机为RS232 电平,因此,系统采用了MAX232 电平转换芯片来进行电平转换。

因为系统设计了通信功能,即主系统(89C52)和PC 机的通信,所以在观察PID 控制器的输出时更加明显,很大程度上降低了参数整定的难度。另外,通过可视化窗口能够看到系统的采样值。

3 软件设计

本系统的软件设计主要包括三大部分:PC 机与单片机通信模块的软件设计、温度采样与显示电路模块的软件设计、温度控制模块的软件设计。

3.1 主程序流程图

(1) 初始化:设定各参数的初始值,设定串行口、定时器以及液晶显示模块。

(2) PC 机与单片机通信:此部分程序主要完成数据在PC 机和单片机间的相互发送,其主要通过89C52 单片机的半双工串行口完成,从而完成与微机控制接口RS232 的连接及通信的控制。

(3) 温度采集及其显示:主要完成温度信号的采集及其对转换后的数字量进行处理,进而用字符型液晶显示模块将实时温度进行显示。

3.2 PID 控制算法

PID 算法是此温控系统性能好坏的决定性因素。其一般算式及模拟控制规律表达式如下:

式中,u(t)为控制器的输出;e(t)为偏差,即设定值与反馈值之差;Kc 为控制器的放大系数,即比例增益;Ti 为控制器的积分常数;Td 为控制器的微分时间常数。PID 算法的原理即调节Kc、Ti、Td 三个参数,使系统达到稳定。

由于PID 的一般算式不易与单片机处理,因此,在设计中采用了增量型PID 算法。将式(1)转换成:

式(3)中的u(k) 即输出PWM 波的导通时间。其控制算法如图3 所示。

4 测试方法与测试结果

4.1 测试方法

在电炉子中放入1 L 清水,电炉子和控制系统相连,给系统上电,系统进入准备工作状态。分别设定温度为35.3 ℃、40.2 ℃、45 ℃、60 ℃、74.0 ℃、81 ℃,观察设定温度和实际温度,并记录数据。填写表1,同时观察水温变化的动态情况,并记录温度稳定的时间,填写表2.

4.2 测试结果

设定温度与实测温度的数据对比如表1 所列。表2 所列是温度稳定和时间的关系,表2 中的设定温度为50℃,每隔30 s 记录实测温度。

基于机智云的STC单片机水温智能控制系统的设计与实现

本文设计了一种物联网的水温控制系统,包括机智云物联网平台,DS18B20水温传感器、水温主控制器和通信模块STC单片机、esp8266无线模块等。系统通过采集当前水温的状态和按键的控制状态,采用PID算法得到控制值,输出信息给加热驱动和直流电机模块,实现水温的加热,同时通过并口和通信模块连接,通信模块通过串口和ESP8266连接,ESP8266通过WiFi连接物联网平台,实现温度的远程监测和控制。

1、系统总设计

系统硬件包括STC单片机控制电路、通信电路、液晶显示电路、加热驱动电路、温度均匀搅拌装置和无线WiFi模块组成的系统硬件装置。系统硬件模块连接如图1所示。系统软件主要采用C语言编写,通过C语言和Keil搭建软件编程环境,机智云物联网平台和硬件电路开发板作为调试工具来完成系统设计。

2 关键电路设计

2.1 系统主控模块和通信模块

在智能化控制方案中,系统采用两个STC单片机搭建方案,一个STC单片机作为主控制器,负责信号的处理、显示、输出控制等。另一个STC单片机作为通信控制器和ESP8266无线WiFi连接,解决通信中通信协议数据量大和控制器RAM小的问题。其中ESP8266无线WiFi器件为核心的数据传输模块,连接机智云物联网平台,数据通过通信链路实现传输,在机智云物联网平台上或终端进行数据监测。其硬件原理图如图2所示。

2.2 系统工作电源及最小系统工作原理图

系统工作电源采用直流稳压电源,利用变压器把220V交流变直流,通过桥式镇流、滤波、稳压器件LM7805和LM1117RS-3.3分别得到5V和3.3V的工作电源。直流加热电源采用集成24V/200W的开关电源供电。5V和3.3V的电源分别为STC单片机最小系统和ESP8266无线WiFi模块供电,其中STC单片机最小系统包括电源电路、复位电路、时钟电路及下载电路。硬件原理图如图3所示。

2.3 信号采集及电机搅拌原理图

温度采集采用DS18B20传感器对水温进行采集,加热系统采用直流加热棒进行加热。在整个加热和水温采集环节,发现采集的温度点不一样,得出温度控制参数不一致,经过不断实验和发现,温度在加热过程中存在不均匀现象,会有不同温区存在。为解决水温不均匀的现象,设计一种搅拌装置,在水温加热过程中周期性对加热区的水进行搅拌,使得DS18B20能够采集到较准确的水温值,在整定PID过程中能够得到更为准确的PID参数,进而提高系统稳定性和可靠性。硬件原理图如图4所示。

2.4 信号输出驱动及液晶显示电路原理图

系统采用24V/200W直流电对加热棒进行加热,加热棒的温度直接影响水的温度,因此控制加热棒温度就能控制水的温度。设计一种PWM(脉宽调制)信号对直流加热棒的驱动电压加热时间进行控制,进而控制加热的热能,PWM信号是实际温度与设定温度的差值通过PID计算得到的一个控制值,能够精确控制温度信号。为使控制器的PWM输出能够控制24V/200W的驱动信号,用SSR单项固态继电器设计了输出驱动电路,经反复实验表明,该驱动电路能够满足系统的要求。其显示部分用带中文字库的字符液晶ST7920控制的12864显示温度数据和温度设定,并实现温度曲线的实时绘制和温度控制时间的显示。其硬件原理图如图5所示。

3 软件流程架构及算法

随着通信技术的发展,STC单片机的功能越来越强大,有代表性的编译软件有Keil、IAR、CodeWarrior等。代码语言有汇编语言、C语言、Java语言等。C语言具有良好的逻辑及功能性,本次设计选择STC单片机作为主控制器,编程语言选用C语言,编译软件选用软件Keil。

3.1 系统软件设计总体流程图

整体系统软件设计是由系统中不同功能模块整合在一起实现系统功能。系统中包括PWM输出程序设计、PID温度控制程序、按键扫描程序、液晶显示驱动程序、WiFi模块通信程序、报警电路、DS18B20温度传感驱动程序及电机驱动搅拌装置。根据软件框架图,设计程序流程图,为程序的功能实现、算法编码、软硬件调试、后期维护提供条件。程序总体流程图如图6所示。

图6 程序总体流程图

3.2 系统核心控制和通信算法理论

PID温度控制是一种成熟技术,具有结构简单、易于理解和实现的特点。在工业控制中90%以上的控制系统回路都具有PID结构。PID调节将设定值W与实际值y进行比较构成偏差,并将其比例、积分、微分通过线性组合构成控制量。采用PID控制效果的好坏很大程度上取决于PID三个控制参数的确定。PID控制主要构成如如7所示。

图7 模拟PID控制

PID控制的动态方程为:

其中,Kp为调节器的比例放大系数;Ki为积分时间常数;Kd为微分时间常数。

水温系统的智能控制采用PID增量式算法,根据实验结果和数据,采用先比例再积分,最后微分的实验凑试法进行PID参数整定。比例系数的整定取消积分和微分的作用,采用纯比例控制,将比例系数从小到大调节,观察系统的响应,直到响应速度快且有一定范围的超调,得出比例系数。

积分部分的整定,如果系统的静态差达不到系统要求,这时需加入积分,整定时积分系数由大到小逐渐递减,观察输出,直至系统静态误差减小或消除,得出积分系数。微分系数的整定,如系统通过比例和积分调节都不能达到要求,需加入微分系数,同样,整定时使微分系数从小到大逐渐增加,观察超调量和稳定性,同时微调比例系数和微分系数,观察系统的输出响应、超调量和稳定性。通过不断实验和整定,电源为200W直流加热系统,加热0.5升的纯净水,在温度变化为20℃时,超调量不超过0.1℃,得出PID的比例系数为19,积分系数为0.036,微分系数为0.8,能够使PWM输出达到系统控制要求。

智能水温控制系统,通信部分主要是STC单片机之间的通信、STC单片机和ESP8266 WiFi的通信,以及ESP8266 WiFi和机智云之间的通信。由于STC单片机模拟了PWM的定时输出,如果利用串口进行通信,会出现不稳定现象,为避免这种现象,STC单片机之间的通信采用并行口,结合P15、P16实现并口通信协议,协议内容如表1所示。STC单片机通信控制从P0端口接收到温度控制器传输的数据后,用串口连接ESP8266 WiFi模块,ESP8266 WiFi模块连接当前环境的路由器热点,与机智云服务器建立TCP连接,进行数据传输。

同时,

手机终端或WEB终端发送控制命令,通过命令数据

→机智云服务器

→ESP8266 WiFi

→STC单片机通信控制

→STC单片机控制系统的通信流程,对温度进行远程监控。

4 实验数据结果

根据软硬件测试,系统自检正常,温度显示正常,通信正常。设定STC单片机控制水温在一定范围内,对整体水温控制系统进行测试,在20~60℃范围内实现多组设定,温度控制实验效果如图8所示。

图8 温度控制实验效果

通过实验结果分析,每个测试的目标温度反映实际和误差,在相同测试环境下,将温度计和温度采集模块所测得温度进行比对,将数值记录得到表2,从而得到标度误差。

5 结束语

设计以STC单片机结合增量式PID、PWM脉宽输出、机智云物联网平台,完成了系统软硬件设计,经过综合调试和测试,验证了该远程控制系统软硬件设计结构合理,性能可靠,操作方便。由于时间和实验条件限制,该系统设计仍有一些缺点和不足,没有采用更高性能的处理器来完成硬件和软件设计,未来有待进一步完善。

相关问答

单片机 温度 控制 系统怎么解决?

单片机温度控制系统可以通过以下步骤来解决:选择合适的传感器:选用温度传感器来监测环境温度。连接传感器:将传感器与单片机连接,以便采集温度数据。编写...

单片机 如何让按键 控制 温度加减?

要让单片机通过按键控制温度加减,首先需要连接一个温度传感器来获取当前温度值。然后,编写程序读取按键输入,并根据按键的不同操作进行相应的温度调节操作。例...

单片机 温度和热电偶的接法?

热电偶加一个上拉电阻,直接接到单片机的A/D脚就行了,不需要放大了,每种热电偶都有计算公式的。测量电压的基准就用电源电压就可以了,想精度高就用专门的基准...

基于单片机 数字温度测量仪需要用到热敏电阻吗?

是的,基于单片机的数字温度测量仪通常需要使用热敏电阻。热敏电阻是一种温度敏感的电阻器件,其电阻值随温度的变化而变化。通过测量热敏电阻的电阻值,可以推算...

单片机 内部测温度原理?

内部主要有ROM.RAM和温度传感器。DS18B20是使用一根数据线进行通信,首先你要先向它发送一系列脉冲信号。一般我们用的步骤大致为:初始化--跳过ROM操作--启动温...

单片机 可分为商用,工业用,汽车用以及军用产品,它们的使用温度范围各为多少?

按温度适应能力及可靠性分为四类:商业级(0~70摄氏度)、工业级(-40~85摄氏度)、汽车级(-40~120摄氏度)军工级(-55~150摄氏度)一般区分都是按芯片型号的后...按...

上位机如何接收 单片机 上传的温度值?

串口或usb

51 单片机 温感报警器原理?

本设计由STC89C52单片机电路+数字温度传感器DS18B20电路+按键电路+蜂鸣器报警电路+继电器控制电路+LCD1602液晶显示电路+电源电路组成。1、LCD1602液晶实时显...

单片机 怎么判断温度稳定下来?

去找(购)一只温度传感器,帖在热水器的输出管道壁上,这时就可用它的信号来控制单片机对热水器(电磁阀)进行开关或大小的控制天气量了。再配上适当的显示示和...

请问怎么把 单片机 采集到的温度数据通过串口传到电脑的串口助...

1、制作一条RS232串口线,连接单片机和串口,,单片机如果采到温度数据,,,直接发送即可。2、如果不行,单片机可以外接RS485,也可以。查看原帖>>什么单片机需要...

猜你喜欢