3 消毒液液位检测与控制
本系统在设计中利用探针检测消毒液的液位,并根据检测的状态控制储液罐的电池阀的动作,从而实现自动加液的功能。消毒液的液位检测采用了探针的检测原理,将三根探针安装成不同的高度,当两根之间全浸泡在液体当中时,两者之间的电阻较小,当两者之间没有液体浸泡时,电阻较大。在电路实现中,采用了LM324运放组成的比较电路将液位变化造成电阻变化的信息转换成电压的变化,液位检测与控制电路如图2所示。进水的控制是由单片机的I/O口通过三极管驱动电磁阀进行控制。
图2 液位检测与控制电路图
__ 如果高液位端检测到信号,则停止加液,如果低液位端检测到信号时,开启加液。加液和停止加液之间设置了一个回差值,避免液位在某一点附近来回波动造成液位控制的频繁动作。
4_ 温度检测与控制
4.1 温度检测电路设计
温度检测部分是系统的核心环节之一,直接影响到系统温度测量的精度,因而选择一款合适的温度传感器和设计一个优良的温度检测电路非常重要。常见的温度传感器有电阻式温度传感器、热电偶传感器和集成温度传感器。集成温度传感器如DS18B20测量的精度较高,但测量的过程占用较多的CPU资源,测量温度的范围并不是很宽;对于电阻式温度传感器,有普通的热敏电阻传感器,也有精度较高的铂电阻传感器,从测量的精度和测量的范围分析,铂电阻传感器具有较好的线性度和较宽的温度测量范围,故在本系统选用PT100铂电阻温度传感器。
在0~100oC范围内,PT100铂热电阻的阻值和温度关系近似为线性,其温度阻值关系可近似为:___________
___ Rt≈100×(1+At)= 100×(1+3.90802×10-3t)____ 当0oC<t<100oC时
Rt是温度为toC时PT100的阻值。
图3 温度检测控制电路图
检测电路的设计在传感器检测中也是非常重要,在铂热电阻传感器测量中,采用了电桥加运放的信号检测放大电路,温度检测控制电路如图3所示[4]。
运放的输出的电压的表达式为:
___ 由于温度基本上时在0~100℃之间,2k+Rpt100≈2100,为了简化单片机软件的设计,对可对表达式作近似处理,近似后的表达式为:
____
4.2_ 温度采集与控制
在本系统中,通过PT100温度传感器检测温度数据,经信号放大电路放大后的电压送入单片机,系统没有采用外接A/D转换器的方式,而是采用了ATMEGA8单片机内部的A/D转换器,ATMEGA8单片机内置了8路10位的A/D转换器,通过PC口进行复用[3],通过对内部A/D转换器的相关设置,在AD转换的中断处理程序中读取采集的温度数据,并对采集的温度个数进行计数,采集的温度个数达到十个时设置温度采集完成标志。采用软件滤波的方法,去掉10个数据中的最大值和最小值,对中间的八个数据求平均值,并由此数据回算出温度值。
__________________
图4 温度控制的程序流程图
本系统温度控制中通过比较检测到温度值与设置温度值以决定是否要进行加温控制,同时也决定是否要进行纸币进入的检测。当检测到的温度值低于设定的温度值时,烘干灯管进行加温控制,红色指示灯亮,绿色指示灯灭代表系统还在加温状态,同时关闭纸币进入的检测,此时即使有纸币送入输入口,电机也不转动。当加热温度超过设置的温度值时,烘干灯管停止加热,绿色指示灯亮,红色指示灯灭,代表已到达合适温度,置温度到达标志,并开纸币允许进入的检测,此时若有纸币进入,驱动电机将会运行。根据加热灯管的加热性质,系统采用了比例控制算法,根据设定的温度值与当前温度值的差值,设置对应的加热时间。温度控制的程序流程图如图4所示。
图5 工作温度的变化曲线图
在本温控系统中,以10秒作为加热的控制周期,加热的时间与温差成正比。当前温度低于设置的温度20℃以上时采用100%全速加热,当温差在20℃以内时,采用比例加热方式,如温差为10℃时采用50%占空比进行加热,即加热5秒,停5秒,温差愈小,加热的占空比越小。经过比例控制算法,系统的工作温度虽然在第一次启动时有一定的过冲现象,经过70秒左右的控制过程,烘干温度即可稳定在设置温度±1%范围之内上下波动,较好的实现了温度的控制效果,工作温度的变化曲线图如图5所示。