精品基于msp430的家用太阳能加热控温沐浴系统Word下载.docx
- 文档编号:16014229
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:22
- 大小:270.07KB
精品基于msp430的家用太阳能加热控温沐浴系统Word下载.docx
《精品基于msp430的家用太阳能加热控温沐浴系统Word下载.docx》由会员分享,可在线阅读,更多相关《精品基于msp430的家用太阳能加热控温沐浴系统Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
基于这个立场,我们基于太阳能加热的方案来设计出水温度的系统,利用电机控制冷水和热水的混合来达到控制出水温度的目的。
再则考虑到晚上太阳能水箱热能散失导致温度下降热水供给不足的问题,我们可以需要给予系统加热的功能,解决晚上用户舒适洗澡的问题。
在用户使用这个模块,考虑到用户在使用的时候因为浴室的原因,用液晶显示可能模糊,所以我们选用的是数码管显示输出。
为了便于用户的操作使用,我们采用红外控制,同时作为硬件调试和用户必要时的使用,我们增加用键盘对系统进行直接的控制值设置模块。
考虑到现在的家庭一般都是3人家庭,在水位的设置上面,我们让用户可以对水位进行设定,分别是超低水位,一人,二人和三人水位。
这样既可以节约到加热的时间,同时也可以节约到在晚上的时候热水洗澡而需要的加热热水的电费。
至于电机控制模块,为了达到快,准,稳的要求,我们采用了现在比较老练度PID模块来解决电机控制。
我们利用msp43016x系列内部的DAC模块,用利用数字PID方法算出输出电压,对步进电机来进行速度和方向的控制。
从而达到了用户出水水温的快,准,稳。
2.系统方案
系统总框图:
系统的总体构造思想是:
用户可以在任意时候设定需要的目标值,例如水位,热水箱的温度,以及出水时候的温度。
而对于系统,我们的做法是:
水位超过的时候不给予进水,低于最低水位的时候为了保护系统必须关闭出水强行进水同时关闭加热控制。
加热控制和水位控制并行操作,可以为用户节约时间。
在超低水位时进行过热保护等措施。
为了让洗澡时候的供水温度稳定,只有水位和热水温度到了设定的参数才准许用户开水洗澡。
在出水控制这一模块,为了更好地获得稳定快速的输出,我们会采用现在较为老练的PID算法对在出水控制这一块电机输出进行控制。
最后,为了方便用户控制,我们同时采用红外和按钮键盘的方式给系统设定参数。
用红外的方式可以更好的让用户进行控制。
而按钮键盘则为了更容易对系统进行调试以及在应急情况下对系统进行控制。
3.系统硬件设计
以下是对系统的各个子系统的硬件设计进行简要说明:
水位控制模块:
水位控制框图:
Y
N
水位控制模块思想比较简单,只关心水位是否达到设定要求。
没有的时候就进水,有的时候就停止进水,节省用水。
设计这一块的时候为了防止因为水位过低而引起的热水箱损坏,设计时候我们设计了超低水位,用来对水箱进行保护。
当水位过低的时候,强行关闭热水阀,没有热水供出。
同时加水,烧水,到了安全情况的时候才可以继续正常使用。
热水加热模块:
加热模块框图:
YN
Y
加热模块设计思想是:
为了可以快速地达到设定的水温同时可以稳定的控制水温,我们设定两种加热模式:
快速加热模式和慢速加热模式。
假设那个温度点我们设在设定温度的70%那里,那么在设定温度的70%以下的时候,我们把加热模式设置为快速加热模式;
在超过的时候,我们设置在慢速加热模式。
当温度小于设定温度,则用慢速加热。
淋浴供水输出模块框图:
电机控制的主要思想是:
首先判断是否用户是否需要淋浴且机器情况正常。
机器不正常或者用户不需要都会关闭冷水阀,禁止冷水流出。
符合条件之后,电机控制冷水的进出来控制输出的水温。
用这种方法的好处是当用户不需要进水的时候或者出现突发情况时候,系统可以很及时地做出相应,而且电机的寿命可以得到延长。
同时,鉴于市面上的水阀控制,采用PID算法来控制可以得到更加平稳的调温效果和比较快捷的目标时间。
PID控制模块:
采用位置式的PID算法,控制系统如下:
设定出水温度
+
淋浴水温输出-
用户输入模块:
用户输入模块框图:
用户输入模块分为红外和键盘两部分。
都采用中断的方式,可以及时对单片机内部的参数赋值,然后让系统按照新的参数进行调节。
漏电保护模块:
如下图所示:
作为一个沐浴系统所必需的安全保护系统中最重要的漏电保护系统。
一旦出现漏电现象,立即关闭所有工作(软件控制)并切断电源(硬件电路控制)。
4.系统软件设计
详细介绍算法设计与算法流程图(不得大量复制源代码)
系统软件的设计上,在主程序开始之前,是参数的设定,有目标热水温度(aim_hot_temp),目标出水温度(aim_temp),目标水位设置(aim_water_level),用户是否使用(use)。
主程序开始部分是对各个端口的设定,以及关闭watchdog,开启各个中断模块的标识。
对单片机的资源分配如下:
P1.0~P1.6键盘输入
P1.7红外输入
P2.0~P2.3水位检测
P3.0,P3.1数码管显示
P4.0DAC步进电机电机电压控制输出
P4.1步进电机电机转向控制输出
P4.2冷水紧热水箱阀门
P4.3淋浴热水放出阀门
P4.4淋浴冷水放出阀门
P5.3P5.4热水加热模块(低速高速)
P6.0P6.1接ds18b20温度检测模块接收温度
以下是主程序的while
(1)模块:
while
(1)
{
intTime=40;
//延时部分
{inti;
for(;
Time!
=0;
Time--)
{
for(i=0;
i<
123;
i++);
}
}
if(P2IN&
0xf0==0xf0)
{
water_level=0;
//这里是水位监测部分。
高八位=1111时候是超低水位
elseif(P2IN&
0xf0==0xe0)
water_level=1;
//1是低水位
0xf0==0xc0)
water_level=2;
//2是一人水位
0xf0==0x80)
water_level=3;
//3是二人水位
0xf0==0x00)
water_level=4;
elsewater_level=8;
//(异常处理)
now_temp=Do1Convert();
//Do1Convert()是ds18b20检测出水水温的传递函数
hot_temp=Do2Convert();
//Do2Convert()是ds18b20检测水箱热水水温的传递函数
initdisplay();
//对显示模块初始
display(now_temp);
//显示现在的出水温度
if(use)
aim_water_level-=1;
use=0;
if(water_level>
=aim_water_level)//p42=1是冷水阀门开否则关闭p43=1是热水阀开,否则关闭
P4OUT&
=~BIT2;
P4OUT|=BIT3;
else
P4OUT|=BIT2;
=~BIT3;
if(hot_temp<
=0.7*aim_hot_temp)//加热判断,符合上述框图的条件就开启或者关闭热水加热.
P5OUT|=0x0c;
elseif(hot_temp<
aim_hot_temp)
P5OUT|=0x04;
//p53=1
P5OUT&
=0xf7;
//p54=0
=0xf3;
if(hot_temp>
aim_hot_temp-3)//当热水温度低于目标热水温度3摄氏度的时候可以淋浴
{P4OUT|=BIT3;
P4OUT|=BIT4;
if(P4OUT&
0x04==0x04)//如果热水阀开了控制电机
temp_distant=PID_Caculate(aim_temp-now_temp);
if(temp_distant>
=0)//电机部分
P4OUT|=0x02;
//正向
DAC12_Set0((int)temp_distant);
//电压控制转动,下面亦然
=0xfd;
//反方向
DAC12_Set0((int)-temp_distant);
else
=~BIT4;
以下是while
(1)的流程图:
电机控制的部分我们采用PID算法。
PID算法的控制如下:
PID控制算法框图如下:
输入
++
输出结果
输出
输出结果会直接反馈到DAC环节里里面,用电压开控制步进电机驱动来达到控制步进电机的目的。
为了防止在水温变化环境异常,比如热水箱收到破坏而造成温度骤降,以及让温度控制系统调节的时候超调量幅值较小,在这个环节里面,我们在积分环节和输出环节都采用限幅环节。
有限幅环节的PID算法会更加平稳,安全性更高,在工业现场的应用也相对广泛。
PID算法代码如下:
intPID_Cac
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 基于 msp430 家用 太阳能 加热 沐浴 系统