1、作品介绍:
该项目中的智能恒温箱,由电源系统、控制系统、交互系统组成。电源系统包括220V经变压器转为12V开关电源,以及12V降5V电路。控制系统则是由STC89C52单片机通过控制半导体制冷片的工作方式间接控制箱内的温度;系统还包括控制显示屏和按键。交互系统则是通过LCD显示模式、箱内外的温度和设置的温度,用户可以通过按键进入菜单进行相应的设置,同时也可以用手机通过蓝牙连接恒温箱,实时监控恒温箱的数据,并且可以设置温度。
2、硬件原理图:
半导体制冷片驱动电路中,通过单片机P22和P23改变电流。采用了典型的H桥电路,但是制冷片的工作电压是12V而51单片机的高电平是5V,为了使H桥可以很好地工作在线性区或者截止区,我们在控制端加入了场效应管,用场效应管控制H桥中mos管的工作区。
3、PCB图:
4、程序大致流程图:
5、部分程序:
#include "reg52.h"
#include "lcd12864.h"
#include "ds18b20.h"
#include "key.h"
#include "time.h"
#include "work.h"
#include "E2PROM.h"
#include "stdlib.h"
uchar receive_table[5],i_table=0;
uint num=0;
void Temp_Recovery();
void main()
{
uchar a=0;
Display_Home();
while(1)
{
if(flag_set==0)
{
key1num=0;
menunum=1;
if(flag_ser)
Temp_Recovery();
Display_Init();
Work();
Key_Check();
a++;
if(a==3)
{
a=0;
Ser_Communicate();
}
}
if(flag_set==1)
Key_Scan();
}
}
void Temp_Recovery()//对接收的串口数据进行处理
{
uchar i,j;
int T;
ES=0;
TI=1;
if(receive_table[0]=='m'||receive_table[0]=='M')//判断为模式设置
{
printf("Sucess!\n");
if(flag_mode!=(receive_table[1]-'0'))
{
TR0=1;
flag_mode=receive_table[1]-'0';
flag_mode1=flag_mode;
SectorErase(0x2200);
byte_write(0x2200,flag_mode);
Stop();
printf("Changing mode\n");
printf("Please wait 5 minutes\n");
}
}
else
{
for(i=0;receive_table[i]!='\0';i++)//去掉小数点
{
if(receive_table[i]=='.')
{
for(j=i;receive_table[j]!='\0';j++)
receive_table[j]=receive_table[j+1];
}
}
T=atoi(receive_table);
if(flag_mode==1&&T-Temp_Outbox>300)
T=0,receive_table[0]=1;
if(flag_mode==0&&Temp_Outbox-T>300)
T=0,receive_table[0]=2;
if(T!=0)
{
Work_Temp=T;
printf("Sucess!\n");
SectorErase(0x2000);
byte_write(0x2000,Work_Temp);
}
else
{
for(i=0,j=1;receive_table[i]!='\0';i++)
{
if(receive_table[i]!='0')
j=0;
}
if(j)
{
Work_Temp=T;
printf("Sucess!\n");
SectorErase(0x2000);
byte_write(0x2000,Work_Temp);
}
else
{
printf("Failed!\n");
if(receive_table[0]==1)
printf("Too hot\n");
if(receive_table[0]==2)
printf("Too cold\n");
}
}
}
while(!TI);
TI=0;
ES=1;
flag_ser=0;
}
void Delay_5min() interrupt 1
{
TH0=0x4c;
TL0=0;
num++;
if(num>6000)
{
num=0;
TR0=0;
}
}
void Ser() interrupt 4
{
RI=0;
receive_table[flag_ser++]=SBUF;
receive_table[flag_ser]='\0';
}
6、总结
半导体制冷片,是一种热泵。利用半导体材料的Peltier效应,当直流电通过两种不同半导体材料串联成的电偶时,在电偶的两端即可分别吸收热量和放出热量。该设计就是利用这种原理,将箱内的热量搬运到箱外,实现制冷的目的。如果将制冷片的电流反向就可以实现加热的目的。该项目是一款既能制冷也能制热的小型恒温箱,通过LCD显示屏显示模式、箱内的温度、设置的温度和箱外的温度;用户可以通过按键设置想要设置的温度,设置页面采用的是简单易懂的菜单界面上手及其容易;除此之外用户还可以用手机通过蓝牙连接恒温箱,手机端可以实时接收到箱内的温度、箱外的温度和设置的温度数据,并且可以发送想要设置的温度。