家电维修网

 找回密码
 注册
家电维修网 网站首页 维修文章 查看内容

基于单片机的自动浇花系统的设计与制作

2019-4-5 10:15| 发布者: 南召修电视| 查看: 1108| 评论: 0

摘要: 生活中,人工浇灌花木要耗费大量时间,而且土壤湿度不好控制,有时候由于主人长时间外出,家里的花木会因无人浇水而枯死。为了解决上述问题,本文利用单片机,设计了自动和手动浇花系统(如图1所示)。图1 自动浇花 ...
参考程序


       ALARM_LED=OFF;//指示灯熄灭

       PUMP_LED=OFF;

      MANUAL_LED=OFF;

      AUTO_LED=OFF;

 

       BUZZER=OFF;//关蜂鸣器      

      PUMP=OFF;//关水泵

 

       LcdInit();  // 初始化液晶 

       LcdShowStr(0,0, "-Auto watering- "); // 显示系统自检

       LcdShowStr(1,1, "system testing"); //

       ConfigTimer0(10);  // 配置T0 定时10ms

       EA=0;// 关中断

}

/****************************************

函数功能:系统自动运行,故障报警

入口参数:无

*****************************************/

void AutoWork()

{  

       if(staSystem==E_AUTO)

       {  

              Humidity();

              AUTO_LED=ON;

              MANUAL_LED=OFF;

              if(TestVal>96||TestVal<5)

              {

              staSystem=E_ALARM;

              cnt=30;

              EA=1;

              }//故障 

              elseif(TestVal<SetVal)

               {

               PUMP=ON;

               PUMP_LED=ON;

              }

              elseif(TestVal>(SetVal+OFFSET))

              {

              PUMP=OFF;PUMP_LED=OFF;

              }

       }   

     ShowLcd1602();//更新显示   

}

/****************************************

函数功能:系统自检,故障报警

入口参数:无

*****************************************/

void SelfCheck()

{  

       unsignedchar i,k,n;

       unsignedchar temp;

    for(i=0;i<3;i++)

       {

       ALARM_LED=ON;

       PUMP_LED=ON;//抽水指示

       MANUAL_LED=ON;//手动指示

       AUTO_LED=ON;//自动指示

       delayms(500);

       ALARM_LED=OFF;

       PUMP_LED=OFF;//抽水指示

       MANUAL_LED=OFF;//手动指示

       AUTO_LED=OFF;//自动指示

       delayms(500);

       }

       BUZZER=ON;

       delayms(500);

       BUZZER=OFF;

          

       LcdClearScreen();

       LcdShowStr(0,0,"Test Results:");

       for(i=0;i<4;i++)//读取3次测量结果,过高故障报警

       {

              temp=GetADCValue(3);//直接读取0通道

              if(temp>240||temp<10)k++;

       }

       if(k>2)//自检故障

       {

       EA=0;//关中断

       while(1)

       {

              ALARM_LED=ON;

              LcdShowStr(1,10,"ERROR!");

              delayms(550);

              LcdShowStr(1,10,"      ");

              ALARM_LED=OFF;

              delayms(250);

              if(n++<3)BUZZER=!BUZZER; 

              elseBUZZER=OFF;

       }

}     

              LcdClearScreen(); 


最新评论

  • 消毒柜惊魂夜:一个被忽视的家居安全隐患
  • 写一篇关于饮水机故障维修的文章
  • 家电坏了哪里找人维修
  • 卫星机顶盒有信号收不到台什么原因
  • 用户问的是微信收款提示音延迟的原因
  • 燃气热水器一直闪不加热,这是什么造成的?
  • 万家乐热水器不出热水是什么原因?万家乐电
  • 电热水器有哪些常见故障?电热水器故障维修
  • 热水器怎么安装?热水器详细安装教程分享
  • 电热水器通电不加热是什么原因?电热水器故

QQ|门户地图|网站地图|家电维修|手机版|家电维修技术论坛 ( 蜀ICP备14030498号-16 川公网安备51102502000162号 )

GMT+8, 2025-11-29 15:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部