基于单片机技术的自动定量水温控制器的设计方案
1.方案的总体设计与论证
1.1 液位传感器的选择
自制传感器是利用金属导体与水本身的导电特性而制成的。它可以认为的将它防止任何位置都能采集到数据,不存在盲区的问题,而且非常利于对装置的扩展。并且成本比较低。
1.2 温度传感器的选择
DS18B20是把温度信号直接转化成串行的数字信号的一种传感器,并且它的电源和数据线可以直接与单片机的电源及单片机的I/O口相连,使用方便,并且成本比较低。
1.3 水泵与电磁阀比较与选择
对于水泵的选择,由于装置容积较小,要求精度较高,所以采用功率相对较低,既可进行变压变速调节,又可以实现微调的直流水泵。另外,电磁阀的选择与直流水泵一致,同样选择直流控制,实现了统一电源。
1.4 控制方案的比较与选择
本装置的调节可以采用两个水泵控制,也可以采用两个电磁阀的控制。采用前者当温度非常接近预设温度的时候对凉水和热水的流量要求非常低,水泵根本不可能达到要求。如果采用后者,由于电磁阀本身的特性只有两个量(全开和全关),这样只能根据不同的水温对两种水的流量比例进行计算,很难达到预设水温的要求,即使达到了水温的要求也不达到水位的要求,对这两个要求不可能同时满足。
2.设计与论证
首先,用户需要对自己所需液位高度和液体的温度进行设定。
其次,需要对液位和水温进行测量,通过自制的传感器和DS18B20可返回与液位和水温一一对应的电压信号和数字信号,对液位的测量经A/D转换将此电压信号转化为数字电压信号,传入到51单片机中进行处理分析。通过对用户所设液位和温度的比较后,由处理器对直流水泵和直流固态继电器的控制,继而控制水泵与电磁阀的工作状态。当水位和水温与预设的水温相差很大的时候,可以将水泵和电磁阀全开,当水温快要达到预设的要求时,利用水泵本身的特性,采用可调的PWM和PID的相互配合,可以实现快速而且稳定的调节,此时,如果水位还未达到要求的话,可将阀打开,这时水泵就会随着阀的流量变化也随之变化,当所测的液位和高度达到用户的基本要求是装置自动停止工作。如果还未达到要求是装置还会继续调节,这样就构成了自动调节的闭环系统,可使装置达到要求的精度。
3.单元电路设计
3.1 液晶电路的设计
液晶的多数接口均与单片机连接,接入R9、R10两个电位器来调节液晶显示器的清晰度,R9、R10的对比度越高,显示器越清晰。
液晶电路图如图1所示:
3.2 按键电路的设计
4只下拉电阻和4只键盘连接位选线DIG4-DIG7的4只电阻(以下简称位选电阻),应遵从一定的比例关系,下拉电阻应大于位选电阻的5倍而小于其50倍,典型值为10倍;下拉电阻的取值范围是10K-100K,位选电阻的取值范围是1K-10K.在不影响显示的前提下,下拉电阻应尽可能地取较小的值,这样可以提高键盘部分的抗干扰能力。
8155需要以外接的RC振荡电路以供系统工作,其典型值分别为R=1.5K,C=15pF.
当有键按下时,KEY引脚输出变为低电平,此时如果接收到‘读键盘’指令,8155将输出所按下键的代码。键盘代码的定义,如图2所示,图2中的键号即键盘代码,途中代码以10进制表示。如果没有在没有按键的情况下收到‘读键盘’指令,8155将输出FFH(即255)。
3.3 自制液位传感器电路的设计
自制液位传感器是将电信号转化成数字信号,然后将其传入单片机内,如果到达制定的液位时,其单片机内部的累加器的数值发生变化,如果未达到指定的液位是其内部的累加器的数值为0,根据累加器的变化来判断是否达到制定的液位高度,具体设计液位高度电路连接如图3所示。
4.软件设计
主控制芯片为AT89S51,采用汇编语言编程。软件流程如图4所示。
5.系统测试
5.1 测试方法与仪器
首先,利用标准的工业温度计对18B20进行校准。然后在使用该温度计对混合后的温度计进行测量,并与用户设定的温度进行比较。
对于液位的设定是通过标准的米尺来对高度进行设定,将其传感器放置在要求的高度,然后观察是否在预定的高度水泵和电磁阀能够停止工作。
5.2 测试数据及测试结果分析
测试数据如表1所示。
通过数据对比,分析结果表明高度是人为设定的,并且由于传感器本身的特性,一旦水到达所设定的高度就立即会产生电压,并且会迅速把信号传给单片机,然后产生命令立即停止。所以可以对于高度来说基本上不存在误差。
6.结论
本文所提出的方案中设计的自动定量水温控制器以51单片机为主控制器,通过DS18B20温度传感器和自制的高度传感器及A/D转换,对水箱的温度和水位进行采样,通过电磁阀和水泵调解混合水的温度以及液面高度,构成了一个闭环控制系统。经测试结果分析表明该方案的
- 提升单片机技术的五大重要步骤(11-22)
- 基于单片机的光电检测研究(12-09)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)