APP下载

宠物喂食器控制系统的设计

2020-05-04袁战军

关键词:子程序电磁阀供水

王 瑾,袁战军

(1.陕西工业职业技术学院 信息工程学院,陕西 咸阳 712000;2.陕西国际商贸学院 信息工程学院,陕西 咸阳712046)

宠物喂食器可用于小猫、小狗等家庭宠物的喂食和供水,能够为宠物饲养者提供极大的方便.目前市场上已有的宠物喂食器在使用中均存在以下问题:1)用户需要通过手动控制来实现宠物喂食,无法进行定时智能供食;2)需要用手旋转水嘴开关进行宠物喂水,无法根据宠物需求实现自动供水功能;3)当喂养宠物不同时,无法进行实际供食时间、供食量等的调节[1-2].王岳[3]等人对野外自动化鸭舍进行了研究,设计的野外鸭舍实现了早晨自动开门,晚上自动奏乐唤鸭回舍,以及自动关门、自动补料和回舍鸭子数量统计等功能;孔爱菊[4]等人设计的野外鸭舍喂水控制系统,该系统可进行水箱液位检测和水泵驱动,具有水箱低水位自动补水和高水位防止溢出等功能,实现了野外鸭舍喂水的自动控制.

针对现有宠物喂食器存在的问题,并结合野外自动化鸭舍的设计经验,笔者提出了一种基于AT89S52单片机的宠物喂食器自动控制系统设计方案;使用步进电机控制技术实现了宠物的食物供给,采用热释电传感器来检测宠物位置,进而控制电磁阀完成对宠物的自动供水[5].同时,还详细介绍了系统的软、硬件设计方法及试验测试结果.

1 系统结构及工作原理

基于AT89S52单片机的宠物喂食器自动控制系统结构框图如图1所示.该系统主要由语音输出电路、红外感应供水电路、食物供给控制电路、液晶显示电路、按键调节电路和温度采集电路等部分组成.

工作原理如下:每当到达设定的供食时间,系统控制语音输出电路发出音乐,吸引宠物前来进食;由食物供给控制电路控制供食电机旋转,打开供食口档板,使食物流入食物盘中,为宠物供食;当宠物接近供水槽时通过红外感应供水电路,打开电磁阀,为宠物提供饮水;使用温度采集电路采集环境温度并在LCD上进行显示;同时,还可根据喂养宠物的不同通过按键调节电路等灵活地设置宠物供食时间、供食量和自动供水感应范围.

图1 宠物喂食器自动控制系统结构框图

2 系统硬件设计

2.1 语音输出电路语音输出电路的主要功能是每当到达设定的供食时间,系统可控制该电路播放所录制的声乐,吸引宠物前来进食[6-7].由于语音处理芯片ISD1820内含自动增益调节AGC电路和语音专用滤波电路,并具有录放音方便、音质效果好等优点,因此采用该芯片设计了语音输出电路,电路如图2所示.

图2 语音输出电路

图2中,ISD1820的第1脚REC外接K1键,当按下此键,芯片开始录音,且第13脚Recled输出低电平使LED1点亮,直到K1键松开,录音结束;录音驻极体话筒MK1在串接电容C2,C3后,以差分形式接至ISD1820的MIC+,MIC-端;ISD1820的Player端接至单片机的P1.6脚,当此端出现上升沿时,芯片开始放音;ISD1820的SP+,SP-端外接扬声器,用于放音;同时ISD1820的PlayL端接地,关闭电路的电平触发放音模式.当供食时间到时,单片机控制P1.6脚给ISD1820输出一个上升沿脉冲,控制语音输出电路播放声乐,吸引宠物前来进食.

2.2 食物供给控制电路食物供给控制电路可用于宠物的供食控制,当其控制供食电机正转时,打开供食口档板,使食物流出为宠物供食;反之,当其控制供食电机反转时,可关闭供食口档板,停止对宠物供食,电路如图3所示.

为实现供食口挡板位置的精确控制,供食电机选用28BYJ-48型四相八拍步进电机,其供电电压为DC5~DC12 V,步距角α=5.625 °,减速比1∶64[8];步进电机驱动电路选用ULN2003A芯片,其最大驱动电压为50 V,最大输出电流为0.5 A.

图3 食物供给控制电路

图3中,单片机的P2.3~P2.0引脚分别接至ULN2003A的输入端IN1~IN4,供食电机的A,B,C,D端通过插头J1分别接至ULN2003A的输出端OUT1~OUT4;系统工作时,若单片机P2口循环输出控制信号序列0x08→0x0c→0x04→0x06→0x02→0x03→0x01→0x09,使供食电机四相绕组的通电顺序依次为A-AB-B-BC-C-CD-D-DA-A,则电机正转,供食口挡板打开;反之,若单片机P2口循环输出控制信号序列0x09→0x01→0x03→0x02→0x06→0x04→0x0c→0x08,使供食电机四相绕组的通电顺序依次为A-AD-D-DC-C-CB-B-BA-A,则电机反转,供食口关闭[9-10].

2.3 红外感应供水电路红外感应供水电路主要用于检测宠物是否前来喝水,并据此控制电磁阀的通断,实现对宠物的自动供水,包括红外感应电路和供水电路2个部分.

红外感应电路如图4所示.电路采用热释电传感器HC-SR501来检测宠物位置,该传感器的感应距离在0~7 m内连续可调,感应角度为小于100 °锥角;HC-SR501的输出端OUT经三极管8050接至单片机P1.0脚,电位器RL,RT分别用于调节该传感器的感应距离和感应延时时间[11].当检测到有宠物靠近喝水时,HC-SR501的OUT端输出3.3 V高电平,使8050导通,给单片机P1.0脚输入低电平;反之,未检测到宠物时,OUT端输出低电平,给单片机P1.0脚输入高电平.

图4 红外感应电路

供水电路如图5所示.系统供水控制元件采用常闭直动式电磁阀,其工作电压为5 V;当给电磁阀线圈正向通电时(即电磁阀接口J2的IN端输入高电平,OUT端输入低电平),产生电磁力可将活动铁芯吸起,阀门供水口打开供水;当电磁阀线圈非正向通电时,无电磁力产生,活动铁芯封住供水口,阀门关闭[12].

图5中,单片机使用P1.4,P1.5脚控制供水电磁阀;当P1.4脚输出低电平时,三极管Q7,Q6截止,Q5导通,J2的IN端为高电平;反之,当P1.4脚输出高电平时,Q7,Q6导通,Q5截止,J2的IN端为低电平.同理,当P1.5脚输出低电平时,J2的OUT端为高电平;当P1.5脚输出高电平时,J2的OUT端为低电平.经分析可知,只有当P1.4脚输出低电平,P1.5脚输出高电平时,电磁阀线圈才正向通电,阀门打开供水;其余情况,阀门均关闭.

图5 供水电路

3 系统软件设计

宠物喂食器控制系统的软件设计主要包括主程序、供食控制子程序、自动供水控制子程序、温度采集子程序和LCD显示子程序.

3.1 主程序主程序流程如图6所示,其主要功能如下:首先,系统调用初始化子程序,对所用变量和模块进行初始化;调用按键扫描子程序进行按键检测,据此设定供食定时时间、0.1 s供食延时子程序调用次数n等参数值;然后判断是否到达设定的供食定时时间,若到达则调用语音输出子程序,发出声乐吸引宠物前来进食,并调用供食控制子程序为宠物自动供食;检测是否有红外感应信号,当接收到红外感应信号时,调用自动供水控制子程序,使电磁阀线圈正向通电,打开供水口进行供水;最后,执行温度采集子程序,采集宠物进食环境温度,并调用LCD显示子程序显示当前环境温度和系统工作状态.

3.2 供食控制子程序供食控制子程序主要用于控制供食电机的转动方向和转动步数,实现供食口的打开和关闭,完成宠物的供食控制.供食控制子程序流程如图7所示.

其功能如下:首先,在LCD上显示所设定的供食定时时间,并判断是否到达该时间;若已到达,控制单片机P2口输出正向八拍脉冲序列(0x08→0x0c→0x04→0x06→0x02→0x03→0x01→0x09),使供食电机正转,开始打开供食口挡板为宠物供食;当给供食电机输出4×64个正向八拍脉冲序列时,电机正转半圈,供食口完全打开;接着,调用n次0.1 s供食延时子程序,使供食口打开n×0.1 s;最后,控制单片机P2口输出反向八拍脉冲序列(0x09→0x01→0x03→0x02→0x06→0x04→0x0c→0x08),使供食电机反转,关闭供食口挡板;当输出4×64个反向八拍脉冲序列时,电机反转半圈,供食口完全关闭[13].

3.3 自动供水控制子程序自动供水控制子程序流程如图8所示.其功能如下:首先,先读取单片机P1.0引脚的电平状态;其次,判断该引脚是否为低电平,若为高电平,表示无宠物靠近喝水并继续检测;若为低电平,表示有宠物前来喝水,则给P1.4←0,P1.5←1,使电磁阀线圈正相通电,阀门供水口打开;接着,调用100次0.1 s延时子程序,为宠物持续供水10 s;最后,给P1.4←1,P1.5←0,使电磁阀线圈反向通电,关闭供水口阀门.

4 试验结果分析

为了验证所设计宠物喂食器控制系统的性能,对系统进行了红外感应自动供水和定时供食等方面试验测试.

4.1 红外感应自动供水试验试验测试时,首先将热释电传感器HC-SR501固定于宠物喂食器前端;然后,通过调节图4中电位器RL值来设定宠物感应距离;接着,让宠物猫从不同角度和距离靠近HC-SR501传感器,以检测本系统红外感应自动供水功能.

测试结果表明,当宠物在感应角度小于100 °锥角,两边距离l1≤4 m,中间距离l2≤7 m的扇形范围内运动时,系统均可检测到宠物,并能快速地触发自动供水功能,使电磁阀供水口打开,持续为宠物供水10 s,具体的自动供水红外感应范围如图9所示.同时,使用者也可根据喂养宠物的不同,调节电位器RL,改变自动供水的红外感应范围.

4.2 定时供食试验在宠物喂食器定时供食试验测试时,首先将宠物饲料倒入储食桶中,并用供食电机控制储食桶底部的供食口挡板运动;其次,给宠物喂食器设定不同的供食时间,并用秒表PC3860(其计时单位为1/100 s,最大计时时间为10 h),对每次实际供食时间进行测试;接着,用一台DJ-300A型电子天平(其称量范围为0~310 g,精度为0.01 g),对每次供食时流入供食盘中的饲料分别进行称重,获得每次实际供食量wi.测试数据如表1所示.

表1 定时供食测试数据表

所测供食量的最大实际相对误差δ为

对上述试验测试结果分析可知,该宠物喂食器具有较好的自动供水功能,可及时检测到进入自动供水感应范围内的宠物,并能迅速触发自动供水功能为宠物提供饮水,还可灵活地调节自动供水的红外感应范围;同时,还可根据喂养宠物的不同灵活地设定宠物供食时间和每次供食量;在实际宠物喂养中该系统的供食时间准确,供食量稳定、波动小.

5 小 结

提出了一种基于AT89S52单片机的智能宠物喂食器设计方案.重点介绍了如何控制步进电机实现对宠物的食物供给,以及利用热释电传感器HC-SR501和电磁阀进行宠物的自动供水设计.试验测试结果表明,该宠物喂食器具有良好的定时供食和自动供水功能,可根据宠物情况灵活地调节供食时间、供食量和自动供水感应范围,提高了宠物喂食器的自动控制水平.同时,在实际使用中该系统还具有供食时间准确、供食量稳定和调节方便等优点,具有较高的实用价值.

猜你喜欢

子程序电磁阀供水
美国供水与清洁基础设施不足造成每年85.8亿美元经济损失
各地完成农村供水工程建设投资466亿元 农村水利建设再提速
试论无负压供水在建筑给排水中的应用
基于ANSYS Maxwell的比例电磁阀隔磁环仿真分析与优化
低速机电控喷油器电磁阀换热特性计算
数控加工中数控程序的简化
子程序在数控车编程中的创新应用
四会地豆镇加快推进农村集中供水全覆盖
福特6F35变速器的电磁阀控制策略
子程序在数控车加工槽中的应用探索