基于AT89S52和CPLD的数字转速表设计
2015-07-31 来源:eefocus
1 总体设计
利用AT89S52单片机设计了自动浇花器,针对不同的花卉,此智能浇花器设置为两种方式:一是定时定量浇花,二是利用湿度传感器检测花卉(也可以用于蔬菜等)的湿度,采集的湿度传送到单片机芯片,单片机根据湿度控制是否浇水,如果需要浇水,单片机的一个引脚p2.0置高电平,使继电器线圈通电,敞开触点闭合,打开电磁阀,实现定时定量的自动浇水,设定时间到,电磁阀自动闭合,并且水流时间可调,上面安装了数码管,并有一个按钮根据不同花卉所需水量不同,设置浇花时间长短,在数码管上可以显示浇水时间的长短;如果检测湿度足够,p2.0仍保持为低电平,不打开电磁阀。采用哪种方式是通过按键控制或者红外遥控的,在采用定时定量浇花时,数码管显示时间和流水时间,在选用根据湿度浇花时,数码管显示是目前的湿度。
该技术所采用的技术方案是:利用单片机实现自动控制,首先检测采用何种方式浇花,如果定时定量浇花,就在规定的时间开始浇花,按照设置浇花时间的长短进行浇花;如果是根据湿度控制是否浇水就设置单片机1个引脚为低电平,湿度传感器检测湿度,传送给单片机芯片,当检测到湿度不够时,单片机这个引脚就变为高电平,把继电器吸合,常开触点闭合,使得电磁阀线圈得电,此时电磁阀门有闭合变成断开,水流经过,给花卉浇水。其结构如图1所示。
2 硬件设计
硬件电路由单片机、湿度传感器、继电器、电磁阀、数码管、1302芯片、按键、红外遥控接收等组成。注意,电磁阀如果安放离单片机太近,将会造成无法正常工作,解决方法是:1)电磁阀远离单片机;2)加入电阻电容。这里采用的是加入电阻电容的方法,这样方便把元器件集中,所做控制器也比较小。智能浇花器的原理图如图2所示。
2.1 定时定量浇花方式
定时定量浇花是每天规定的时间开始浇花,设置浇花时长,比如1分钟,1分钟后停止浇花。具体硬件:安装了2个三位共阳数码管和1个两位共阳数码管,用以显示时间和浇花时间的长短。按键控制时间调整和时间设置调整,并有一个按钮根据不同花卉所需水量的不同,设置浇花时间长短,在数码管上显示出来,1302芯片实现时间保持,断电时不影响时间。
这里可假设每天早上7点20分自动给花卉浇水,浇花时间为1分钟,到了早上的7点20分,单片机控制智能浇花器开始浇花,单片机p2.0引脚接继电器,继电器接电磁阀,电磁阀控制水流,到了7点20分,给单片机一个指令,setb 02.0,三级管导通,这样继电器线圈有电流经过,对应的常开触点闭合,使得电磁阀线圈得电,此时电磁阀门由闭合变成断开,水流经过,给花卉浇水,1分钟时间到,给单片机一个指令clr p2.0,这样单片机p2.0引脚输出低电平,三极管截止,继电器线圈没有电流经过,常开触点恢复为断开,电磁阀线圈失电,此时电磁阀门闭合,水流停止。这里的时间是显示在数码管上,通过按键控制,时间可调整,同时浇花的时间也可以通过按键设置,另外浇花时间的长短也可以通过按键调整。同时加入1302芯片,为了断电时不影响时间正常,防止每次断电后都要重新调整是时间。图3为定时定量浇花结构图。
2.2 湿度控制浇花方式
先通过按键设定湿度,这里选用的湿度传感器是LTM8901湿度传感器,LTM8901是一款专门为用户设计自身产品而提供的数字化温湿度探头,其湿度测量量程为1%~99%RH,分辨率为0.5%RH,测量精度为±3.0%RH(典型值);温度测量范围为-25~+60℃,分辨率为0.062 5℃,测量精度为±0.5℃;响应时间典型值为5 s;工作电压范围为4.5~5.5 V。LTM8901将测量结果直接输出为数字信号,通过“一线式总线”串行传送给单片机,不需要进行模数转换,减少了元件,简单方便。利用LTM8901湿度传感器检测到湿度,传送到单片机进行处理,湿度显示在数码管上,当湿度低于设定值时,给单片机一个指令,seth p2.0,继电器线圈有电流经过,对应的常开触点闭合,使电磁阀线圈得电,此时电磁阀门由闭合变成断开,进行浇花,当等于或高于设定值时,clr p2.0,继电器线圈失电,对应常开触点断开,电磁阀线圈失电,阀门闭合,水无法流过,停止浇花。湿度控制浇花结构如图4所示。
2.3 方式设定
可以通过手按按键设定,按奇数次设定浇花方式为定时定量浇花,按偶数次,设定浇花方式为根据湿度浇花。也可通过红外遥控设定浇花方式,发射用电视遥控器,接收电路用三位一体接收器接收信号,三位一体接收器的1脚接地,2脚接电源,3脚(信号脚)与单片机一个I/O引脚相连,信号来时进行解码,做出不同处理,一次接收到信号按定时定量浇花,再次接收到信号根据湿度浇花,根据按的次数,奇数次采用定时定量浇花方式,偶数次采用湿度控制浇花方式,这主要是针对不同的花卉。接收到信号,发光二极管闪烁30 s。蜂鸣器响10 s,用以提示。智能浇花器外部构造如图5所示。
3 程序设计
3.1 程序设计思路
1)方式设定 通过检测按键按下次数来确定工作方式,设按下次数为n,第一次按下n=1,每次按下n加一,加到一定次数1 000,n从0开始,if(n=10000)(n=0);刚开始连接按键的引脚为高电平,一旦按下就变为低电平,通过检测高电平变为低电平的次数来检测是否按下;按下奇数次,采用定时定量浇花,偶数次采用通过检测湿度浇花,if(n%2=0)来判断,如果余数为O,说明偶数次,否则奇数次。
2)定时定量浇花 先写出时间显示程序,再判断是否到了设定的浇花时间以及浇花时间长短。
程序里,c表示时,b表示分,a表示秒,w表示设置的时间长短。首先时间没到的情况下,p2.0引脚为0(P2_0=0),不浇水,当时间到了设定的时间(if(c==7&b==20&0
3)湿度检测浇水 首先启动转换,读取LTM8901检测到的湿度,进行比较判断,最后执行。
3.2 流程图
智能浇花器程序流程图如图6所示。
4 结论
本文介绍了家庭智能浇花器的设计,进行了硬件设计与程序分析,已经做成实物,并且使用效果好。家庭智能浇花器用处较广,改变程序还可作为可定时开关、宿舍灯光系统、温控塑料大棚等使用,此家庭智能浇花器,也可以用在智能浇灌草坪、蔬菜等,把水箱去掉,直接接水龙头即可。系统设计的创新之处在于实现不同方式的自动浇花以及水管的可伸缩有助于改变花盆离水源的距离;在设计过程需要注意的问题是防止电磁阀吸合时使单片机复位,加入电阻和电容加以缓冲,在此系统中选用的电容为耐压400 V的。