一.硬件方案
智能热水器主要实现的功能是可以对水位进行设置并加水,先设置好需要加水的水位段数,单片机会根据这个数判断是否需要加水,同时还可以测量并显示水温、设置水温范围,若水温超过或低于所设置的水温范围,则会报警。
其主要设计功能如下:
- 采用LCD1602液晶显示、DS18B20防水型温度传感器测温,液晶显示当前的温度、温度上下限值和预约时间(单片机内部定时器)。
- 带有红外遥控和手动按键双输入设置参数,更加方便快捷实用。可以显示和设置预约时间(min),可以随意设置预约多少分钟后开启热水器系统控制,这样更加智能和节能。按键可以设置水温的控制范围,五个按键功能:设置、加、减、确定、单独的是复位按键
- 当温度低于下限的时候继电器吸合,待温度高于上限的时候继电器断开,继电器可以接负载;(默认没有负载,可以接加热管。)
- 采用两个水位传感器和LM393电压比较器检测上、下水位功能,水少不加热并启动水位控制继电器(上)吸合模拟加水,当水加至水位上限时,继电器断开停止加水 。
- 热水器工作加热和加水时有相应的指示灯(红灯代表缺水,黄灯代表加水,绿灯代表加热),整个系统有蜂鸣器提示音,实现声光提示;
二.设计电路
整体电路主要由51单片机最小系统,LCD1602显示屏电路,按键电路,加热继电器电路,DS18B20温度传感器,蜂鸣器报警电路,状态指示灯,遥控电路等组成;
原理图如图:
Protues仿真图如下:
三.软件设计
主程序源码
void main()
{Init1602();EA=1;//打开中断总开关IT1=1;//下降沿有效EX1=1;//外部中断1开ET1=1;//打开允许开关TMOD=0x01;//设置工作方式TL1=0x3c;TH1=0xb0;//赋初值TH0=0;//T0赋初值TL0=0;TR0=0;//t0开始计时check_wendu();delay(1000);bjd=99;bjx=0; //这两个变量的作用就是,防止温度大范围跳动造成加热设备误动作while(1){ check_wendu();if(Mode==0){ Display_1602(c,ds,sx,xx);if((xia==1)&&(shang==1)) //低于下限{que=1;shui=0;jdq=1;}else{que=0;}if((shang==0)&&(xia==0)) //高于上限{shui=1;if(flag_BJ==0)flag_BJ=1;}if((shang==0)&&(xia==1)) //错误{shui=1;jdq=1;Feng=0;que=1;}if(flag==0){if((w<bjd)&&(w>bjx)){if(w>=sx){jdq=1;if(flag_BJ==0)flag_BJ=1;}else if((w<xx)&&(que==0)) {jdq=0;if(flag_BJ==0)flag_BJ=1;}else{flag_BJ=0;flag_off=1;}bjd=w+5;bjx=w-5;}}}Key();Alam();}
}
资料链接:https://pan.baidu.com/s/1eNvA3yXGEE65jYjc5VElGQ?pwd=rend
提取码:rend