基于AT89C52单片机的液位检测系统
随着现代测量技术的发展,对测量系统提出了越来越高的要求。在自动蒸馏测控系统中,准确及时地检测出蒸馏过程中从冷凝管馏出的第一滴液滴是获取初馏点的前提;实时、准确地测量出量筒中回收液体体积的变化是控制蒸馏过程中不同时段不同蒸馏速度的依据。而目前担负着对冷凝管馏出的液滴进行检测、回收、计量、测速等任务的完成有诸多不尽人意的地方,需要更加完善、合理的液滴、液位检测跟踪控制系统。 从液位测量的方法看,按检测器与液体接触与否分为两大类:一是接触式测量,二是非接触式测量。当需要通过测量液位变化确定体积变化时,一般采用非接触式测量方法。但在大多数非接触式测量中,液位传感器测试范围较大,绝对分辨率均大于0.5ml,因而在体积变化范围为0-100ml,液位变化范围为0-200mm时,要达到0.1ml的分辨率,普通的传感器就难以满足要求。为此,需要研制一种测量普通100ml玻璃量筒中液体体积实时变化的高精度液位检测系统。 针对以上所存在的问题,本文介绍了一种以AT89C52单片机为核心的液位检测系统,实现了对变化的液位进行高精度体积测量的目的。 一、 积测量原理 由于量筒的容积 是确定的,且制作均匀,那么一定体积的液体在量筒内对应的高度也是一定的。传感器与螺杆是相互耦合的,螺杆的顶端与步进电机的中轴是直接相连的,步进电机每走一步,螺杆就跟着转一个小角度。因此,在电机步距和螺杆螺距一定的情况下,量筒的单位高度与电机步数成正比关系。于是,可将量筒内液体的体积直接转换成电机的步进数,即电机每走一步所代表的液体的体积是多少毫升。 体积测量示意图如图1所示。为了确定电机的步进数与确定量筒内液体的体积毫升数之间的换算关系,我们需要对此系统进行校准,具体校准的方法是: 1. 测量体积为10ml液体的电机步进数,将其值设为L1; 2. 测量体积为100ml液体的电机步进数,将其值设为L2;
根据以上步骤记录的数据,计算出电机每走一步所代表的体积毫升数,将其值设为T,则有如下的计算公式:T=90/(L2-L1)。这样就可以很方便地计算出跟踪器所跟踪的液体体积。 二、 硬件电路组成及原理 本系统的基本组成是:红外光电传感器、输入电路、时钟电路、复位电路、显示电路、步进电机及驱动电路、单片机实时处理与控制电路等。 其基本的工作原理是:红外光电传感器检测到的各种信号,经过信号处理电路后,把光信号转换成了电信号,同时把电信号送给单片机进行判断和计算处理后,再发出控制指令,控制步进电机工作,完成对变化液位的检测与跟踪。 该硬件电路原理框图如图2所示:
1、红外光电传感器 红外光电传感器是由红外发射二极管和敏感三极管组成,红外发射二极管发出的红外光的波长和敏感三极管的受光波长相同或相近。当发射管和接受管之间没有障碍物时,敏感三极管由于收到红外光信号而导通,电路输出电平为低电平;当发射管和接受管之间有障碍物挡住时,敏感三极管由于收不到红外光信号而截止,电路输出电平为高电平。 该系统中,对量筒中的液体表面的检测基本上是利用散射原理,在玻璃量筒中液体表面处的液体会发生外延现象或吸附现象而形成一个环形曲面,这个曲面正好供我们检测用。它是由一对红外光电对管组成的,在玻璃量筒中液体表面处的液体会发生外延现象或吸附现象而形成一个环形曲面,由于散射作用,接收管接收不到发射管的红外光信号而截止,电路输出电平为高电平。因此,可以利用其输出电平的高低来检测液面的位置,其输出信号再通过电缆输出到单片机接口电路和显示驱动电路进行处理。为了适应本系统的特殊要求,我们将红外发射、接受管分别装在U形板的两边,两管距离大于玻璃量筒的直径。为了减少外来自然光的干扰,在两管的发射、接受头安装有一定深度的导光孔槽,它一方面减少了外来光的干扰,另一方面可以限制光束直径,以利于提高检测分辨率。 2、步进电机及驱动电路 在步进电机工作中,其电源大多是采用单极性直流电,通过对步进电机的各相绕组按恰当的时序方式通电,就可使其执行步进转动。本系统所用电机为四相电机,当两相绕组通电时,相应的两个磁极就分别形成N-S极,产生磁场,并与转子形成磁路。在磁场的作用下,转子将转动一定的角度,使转子齿与定子齿对齐,从而使步进电机向前“走”一步。因此,控制电机转动主要是按照电机转动方向的要求,由单片机顺序地输出相应的控制信号即可。 下面以正转为例进行说明,正转时,要求按ABCDA的顺序依次输出宽为8ms的正脉冲,且两脉冲之间有一小延时。由此可以往8255的PC0~PC3口依次输出1000、0100、0010、0001、1000等一系列的信号,每一个高电平保持8ms,输出时间间隔为1ms,即可满足控制需要。同理,也可以控制电机反转,只是输出信号的顺序相反。于是在寄存器中的初始控制字可设为00010001B(即11H),电机每走一步,则对此寄存器的内容向左(正转)或向右(反转)循环移一位,然后取出此寄存器的内容并输出,就可以完成对电机的控制。
|