智能水温控制系统

  • 格式:doc
  • 大小:325.50 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能水温控制系统

摘要:为了实现水温控制系统的设计要求,通过对各个模块电路方案的比较和论证,最后确定了以STC89C52单片机为核心的硬件电路,选用DS18B20温度传感器测量水温。该系统具有实时显示、温度测量、温度设定并能根据设定值对水的温度进行调节和控温的目的以及达到上限温度的报警功能,控制算法是基于数字PID算法,在设定温度发生突变时,可自动打印水温随时间变化的曲线。

关键词:AT89C52单片机、PID算法、温度测量和控温

随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。本设计论述了一种以STC89C52单片机为主控制单元,以DS18B20为温度传感器的温度自动控制系统。该控制系统可以根据设定的温度,通过单片机控制继电器开启和关闭,从而控制水泥电阻的加热和停止。硬件电路主要包括STC89C52单片机最小系统、稳压电路、DS18b20测温电路、键盘电路、锁存器SN74HC573、MT05011AR数码管显示电路、继电器电路,加热模块电路等。系统程序模块主要包括主程序控制模块,温度处理子程序模块、按键处理程序模块、锁存器控制模块、数码管显示模块。

一、设计任务

设计并制作一个水温自动控制系统,控制对象为500ml净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。

1)温度设定范围为20~70o C,最小区分度为1o C,标定温度≤1o C。

2)用十进制数码管显示水的实际温度。

3)采用适当的控制方法,当设定温度突变(比如:由50o C提高到60o C)时,减小系统的调节时间和超调量。

4)温度控制的静态误差≤1o C(达到发挥部分的要求)

5)在设定温度发生突变时,自动打印水温随时间变化的曲线。

二、

整个系统分为以下几个部分:温度采样部分、控制电路部分、加热装置以及串口通信部分。

2.1温度采样部分

采用温度传感器DS18B20,测温范围-55o C ~ +125o C,采用独特的单线接口方

式,仅需一条口线即可实现微处理器与DS18B20的双向通讯,且在使用中不需要任何外围元件;可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出远端引入。此器件具有体积小、质量轻、线形度好、性能稳定等优点其各方面特性都满足此系统的设计要求。

采用STC89C52单片机作为主控芯片。STC89C52是一个超低功耗,高性能的51内核的CMOS 8位单片机,片内含8KB空间的可反复擦写1000次的Flash只读存储器,具有512bytes的随机存取数据存储器(RAM),32个I/O口,两个16位可编程定时计数器。且该系列的51单片机支持串口下载和串口调试。

所以我们选择了方案2。

2.3键盘显示部分

控制与显示电路是反映电路性能、外观的最直观部分,所以此部分电路设计的好坏直接影响到电路的好坏。

设计的系统中,共三个按键:菜单键和温度设定的“+”、“-”控制键。对菜单键按键一次,进入温度设定状态,通过连按“+”、“-”控制键来设定温度,数码管显示设定的温度值;对菜单键连按键两次,进入温度测量状态,数码管显示当前的实际水温。

2.4加热装置的选择

采用螺旋加热管。可将螺旋加热管固定到容器内部,通电加热时能使水在容器内形成对流,加热功率相对较高,加热较均匀,使得测量误差较小。对温度控制的精度要求较高

2.5串口通信部分

UART通信,是异步串口通信,在通信时只需要数据线,只需要知道发送数据的波特率,编程时设置好位长度即可。

UART通讯编程简单,通讯速度远比IIC快,可以直接使用RS485延伸通讯距离达到1km,通讯速度很容易做高。所以本实验中,采用UART通信将数据传输给电脑。

2.6软件算法的选择

采用经典PID控制算法和根据实验数据分区间控制的算法,对于温度系统来说,被控对象没有精确的数学模型。用螺旋加热器加热使得水温具有热惯性,采用补氧设备往水里加入空气,使水的上下温差变得非常小,故检测的实时数据基本能完全体现500ml水的实际温度,所以经典PID控制算法中的P能满足设计要求,但必须根据实验数据进行调整。

三、系统总体方案设计

此方案采用STC89C52单片机系统实现,键盘输入温度设定值,用数字温度传感器DS18B20采集准确的温度,数码管显示设定温度值和水温实测值,加热装置采用固态继电器控制,当水温超过设定值时蜂鸣器报警。

图1 温度控制系统框图

四、硬件电路设计

4.1温度采集电路

一种电路是采用单线数字温度传感器DS18B20,可直接输出数字量,单线器件和单片机的接口只需一根信号线,所以本设计的硬件电路十分简单,容易实现。使用读取温度暂存寄存器的方法能达到0.1o C以上的精度。18B20连接电路图如图2所示

图2 温度采集电路

4.2加热装置模块

由于本系统要控制加热管,功率较大,因此要借助功率电路。使用继电器可以很容易的通过较高的电压和电流,在正常条件下,工作十分可靠。使用电磁继电器电路的实现十分简单,而且还可以实现较为精确的控制,是比较好的一种方式。DS18B20测温芯片传送温度数据单片机的I/O口P2.5。

对加热管通断的控制采用SSR固态继电器,SSR是半导体继电器,所以较小的驱动功率即可使SSR工作。它的使用非常简单,且响应时间短,对系统干扰小。只要在控制台端加上一个TTL、CMOS电平或光耦,即可实现对继电器的开关。其

电路图如下所示。

图3 图4

4.3按键控制和显示模块

图5

系统上电后,数码管全部显示为当前所测温度值,根据按KEY1次数,若按键一次,进入温度设定状态,通过连按“+”、“-”控制键来设定温度,数码管显示设定的温度值;若连按两次,进入温度测量状态,数码管显示当前的实际水温。

由于温度变化范围是40~70o C ,所以选用两个数码管显示温度。数码管采用共阳极,经过1K Ω的电阻限流后与单片机连接,由单片机I/O 口P3对数码管进行位选。

4.4蜂鸣报警电路

蜂鸣器通过一个三极管来驱动,这里选用PNP 型三极管,电路图如下

6