导航:首页 > 操作系统 > 单片机恒温自动控制电路图

单片机恒温自动控制电路图

发布时间:2022-08-16 03:12:57

❶ 简单的温度控制电路怎么做

工作原理是通过温度传感器对环境温度自动进行采样、即时监控,当环境温度高于控制设定值时控制电路启动,可以设置控制回差。如温度还在升,当升到设定的超限报警温度点时,启动超限报警功能。

被控制的温度不能得到有效的控制时,为了防止设备的毁坏还可以通过跳闸的功能来停止设备继续运行。主要应用于电力部门使用的各种高低压开关柜、干式变压器、箱式变电站及其他相关的温度使用领域。

控制方法一般分为两种;一种是由被冷却对象的温度变化来进行控制,多采用蒸气压力式温度控制器,另一种由被冷却对象的温差变化来进行控制,多采用电子式温度控制器。

其采用的模糊控制技术如PID控制,P(Proportional)比例+I(Integral)积分+D(Differential)微分控制。

(1)单片机恒温自动控制电路图扩展阅读:

温控器的分类

一、突跳式温控器

1、双金属片突跳式温控器是一种将定温后的双金属片作为热敏感反应组件,产品主件温度升高时所产生的热量传递到双金属圆片上,达到动作温度设定时迅速动作,通过机构作用是触点断开或闭合。

2、当温度下降到复位温度设定时,双金属片迅速回复原状,使触点闭合或断开,达到接通或断开电路的目的,从而控制电路。

二、液涨式温控器

1、被控制对象的温度发生变化时使温控器感温部内的物质(一般是液体)产生相应的热胀冷缩的物理现象(体积变化),与感温部连通一起的膜盒产生膨胀或收缩。以杠杆原理,带动开关通断动作,达到恒温目的。

2、液胀式温控器具有控温准确,稳定可靠,开停温差小,控制温控调节范围大,过载电流大等性能特点。液涨式温控器主要用于家电行业,电热设备,制冷行业等温度控制场合用。

三、压力式温控器

1、通过密闭的内充感温工质的温包和毛细管,把被控温度的变化转变为空间压力或容积的变化,达到温度设定值时,通过弹性元件和快速瞬动机构,自动关闭触头,以达到自动控制温度的目的。

2、由感温部、温度设定主体部、执行开闭的微动开关或自动风门等三部分组成。压力式温控器适用于制冷器具(如电冰箱冰柜等)和制热器等场合。

❷ 用单片机一个引脚控制加热管加热,达到一定温度停止工作,另一个引脚控制电磁阀。求电路图不要程序。

用什么单片机,你直接购买个温控开关,
型号选择常闭的,温度选择你需要的温度,与加热器串联就可以了。
成本就2元左右一只,简单又方便。
你想可调温度,你就买个电子温度器,功能很强大的,100元以下,
要便宜就用可调温的温控开关,就是可调温电炒锅的那种,也就是1-2元一只。

❸ 单片机温度控制电路图工作原理

可能是一个AC转DC的模块。即将10V AC,通过整流、滤波、稳压,输出一个稳定的直流电源。

❹ 51单片机温度报警器原理图和程序有吗

这个是自动控制温度的一个例子,温度降低到一定程度就启动加热。

//温度传感器:DS18B20
//显示方式:LED
#include <reg51.h>
#define uchar unsigned char
sbit keyup=P1^0;
sbit keydn=P1^1;
sbit keymd=P1^2;
sbit out=P3^7;//接控制继电器
sbit DQ = P3^4;//接温度传感器18B20
uchar t[2],number=0,*pt;//温度值
uchar TempBuffer1[4]={0,0,0,0};
uchar Tmax=18,Tmin=8;
uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xfe,0xf7};
uchar dismod=0,xiaodou1=0,xiaodou2=0,currtemp;
bit flag;
void t0isr() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
switch(number)
{
case 0:
P2=0x08;
P0=distab[TempBuffer1[0]];
break;
case 1:
P2=0x04;
P0=distab[TempBuffer1[1]];
break;
case 2:
P2=0x02;
P0=distab[TempBuffer1[2]]&0x7f;
break;
case 3:
P2=0x01;
P0=distab[TempBuffer1[3]];
break;
default:
break;
}
number++;
if(number>3)number=0;
}

void delay_18B20(unsigned int i)
{
while(i--);
}

/**********ds18b20初始化函数**********************/

void Init_DS18B20(void)
{
bit x=0;
do{
DQ=1;
delay_18B20(8);
DQ = 0; //单片机将DQ拉低
delay_18B20(90); //精确延时 大于 480us
DQ = 1; //拉高总线
delay_18B20(14);
x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败,继续初始化
}while(x);
delay_18B20(20);
}

/***********ds18b20读一个字节**************/

unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delay_18B20(4);
}
return(dat);
}

/*************ds18b20写一个字节****************/

void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay_18B20(5);
DQ = 1;
dat>>=1;
}
}

/**************读取ds18b20当前温度************/

unsigned char *ReadTemperature(unsigned char rs)
{
unsigned char tt[2];
delay_18B20(80);
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0x44); //启动温度转换
delay_18B20(80);
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度
tt[0]=ReadOneChar(); //读取温度值低位
tt[1]=ReadOneChar(); //读取温度值高位
return(tt);
}

void covert1(void)//将温度转换为LED显示的数据
{
uchar x=0x00,y=0x00;
t[0]=*pt;
pt++;
t[1]=*pt;
if(t[1]&0x080) //判断正负温度
{
TempBuffer1[0]=0x0c; //c代表负
t[1]=~t[1]; /*下面几句把负数的补码*/
t[0]=~t[0]; /*换算成绝对值*********/
x=t[0]+1;
t[0]=x;
if(x==0x00)t[1]++;
}
else TempBuffer1[0]=0x0a;//A代表正
t[1]<<=4;//将高字节左移4位
t[1]=t[1]&0xf0;
x=t[0];//将t[0]暂存到X,因为取小数部分还要用到它
x>>=4;//右移4位
x=x&0x0f;//和前面两句就是取出t[0]的高四位
y=t[1]|x;//将高低字节的有效值的整数部分拼成一个字节
TempBuffer1[1]=(y%100)/10;
TempBuffer1[2]=(y%100)%10;
t[0]=t[0]&0x0f;//小数部分
TempBuffer1[3]=t[0]*10/16;
//以下程序段消去随机误检查造成的误判,只有连续12次检测到温度超出限制才切换加热装置
if(currtemp>Tmin)xiaodou1=0;
if(y<Tmin)
{
xiaodou1++;
currtemp=y;
xiaodou2=0;
}
if(xiaodou1>12)
{
out=0;
flag=1;
xiaodou1=0;
}
if(currtemp<Tmax)xiaodou2=0;
if(y>Tmax)
{
xiaodou2++;
currtemp=y;
xiaodou1=0;
}
if(xiaodou2>12)
{
out=1;
flag=0;
xiaodou2=0;
}
out=flag;
}
void convert(char tmp)
{
uchar a;
if(tmp<0)
{
TempBuffer1[0]=0x0c;
a=~tmp+1;
}
else
{
TempBuffer1[0]=0x0a;
a=tmp;
}
TempBuffer1[1]=(a%100)/10;
TempBuffer1[2]=(a%100)%10;
}
void keyscan( )
{
uchar keyin;
keyin=P1&0x07;
if(keyin==0x07)return;
else if(keymd==0)
{
dismod++;
dismod%=3;
while(keymd==0);
switch(dismod)
{
case 1:
convert(Tmax);
TempBuffer1[3]=0x11;
break;
case 2:
convert(Tmin);
TempBuffer1[3]=0x12;
break;
default:
break;
}
}
else if((keyup==0)&&(dismod==1))
{
Tmax++;
convert(Tmax);
while(keyup==0);
}
else if((keydn==0)&&(dismod==1))
{
Tmax--;
convert(Tmax);
while(keydn==0);
}
else if((keyup==0)&&(dismod==2))
{
Tmin++;
convert(Tmin);
while(keyup==0);
}
else if((keydn==0)&&(dismod==2))
{
Tmin--;
convert(Tmin);
while(keydn==0);
}
xiaodou1=0;
xiaodou2=0;
}
main()
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
out=1;
flag=0;
ReadTemperature(0x3f);
delay_18B20(50000);//延时等待18B20数据稳定
while(1)
{
pt=ReadTemperature(0x7f); //读取温度,温度值存放在一个两个字节的数组中
if(dismod==0)covert1();
keyscan();
delay_18B20(30000);
}
}

❺ 基于单片机的恒温控制系统

我刚帮别人做了一个,是按这个要求做的,你可以提出任意修改要求。
程序是汇编的,已经调试通过。

ProteUS仿真文件下载地址:
推荐:70电加热PRE.rar( http://ishare.iask.sina.com.cn/f/7033603.html )

; 设计基于单片计算机的温度控制器。用于控制电加热炉的温度。具体要求如下:
; 1. 温度连续可调,范围为30℃~150℃
; 2. 超调量σ%≤20%
; 3. 温度误差≤±0.5℃
; 4. 人-机对话方便
; 5. 控制算法采用PID或改进的PID或其他算法.

; (我用的是AT89C52的单片机:
; A.电加热炉经由温度传感器测量后,
; 通过V/F变换器的模数转换,
; 将电压或电流量转换为数字信号进入单片机内,
; 然后通过移位寄存器和译码器的信息转换,
; 通过显示驱动器来进行LED数码管的温度显示;
; B.单片机也通过双向可控硅来控制炉内的温度;
; C.用户通过按键来设置温度上限、下限值)

❻ 求基于51单片机自动温度控制系统设计电路图和程序

已发送,请查收,sohu那个

❼ 求基于555定时器和单片机的温度控制电路的电路图

给你一个555时基电路温度控制电路图。给您制作、参考

❽ 要用51单片机做一个饮水机自动控制系统,如何用单片机控制电磁阀来进水。最好能有电路图啊。

如下图示,Out1接单片机引脚,通过三极管驱动继电器,继电器输出端电磁阀。

阅读全文

与单片机恒温自动控制电路图相关的资料

热点内容
收藏网址加密的浏览器 浏览:1000
phpurl问号 浏览:898
什么笔记本电脑可以用python 浏览:135
加密相册如何翻找 浏览:992
泰州地区DNS服务器地址 浏览:849
一种app可以买菜用英语怎么说 浏览:196
中国联通app里面通话详单怎么删除 浏览:505
计算机网络编译软件 浏览:100
程序员说不能说的秘密 浏览:700
在线shell编译器 浏览:102
为什么王者荣耀安卓转苹果成功登不上去 浏览:710
文件加密算法可行性报告 浏览:60
a3双面打印pdf 浏览:270
被命令文言文 浏览:717
c语言编译器在线菜鸟 浏览:215
安卓如何使用华为手机助手 浏览:701
怎么查看域服务器名称 浏览:775
如何把苹果的视频传到安卓手机 浏览:612
接口服务器怎么使用 浏览:62
苹果怎么实现安卓全面屏手势 浏览:977