微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

12-30KW的5档位商用电磁灶工程师设计过程

2013-03-12 09:47 来源:电源网 编辑:兔子

【电源网】显示板采用数码管和中文液晶12864两种方式显示档位以及保护信息。要求显示板通用可代换。

温度探头选用高温热敏电阻,温度控制误差正负1度左右(估计有的童鞋就说啦吹牛!温度误差那么大或者那么小不行会炸机器。或者压根不可能。只是IGBT过温以及风机的开启所以没有必要太精确,再者这个和买到的温度精度有关系。)温度传感器开短路保护,缺相检测(可以准确检测出来到底那一根线没有接。)

语音提醒功能(各个状态除了显示屏显示外还用标准普通话进行提示。) 本人工作方便所以索性开模语音芯片了。找的广播电台主持人配音嘿嘿这个得显摆下。SOP封装直接接喇叭,5V供电。

档位开关采用大家都用的5档磁控开关(市场上买了个里面电路板档位分压电阻重新进行了调整1档1V,2档2V,3档3V,4档4V,5档4.5V。不知道有没有童鞋笑话我不能够做8个档位的,档位信息是采集的AD电压,可以分20个档位也没有问题这里取5个。 )

对于过欠压的保护我没有做原因有二:1.电压过高380V工业电万一中大奖电网电压升到超过500V的情况很少见吧?就是有市场上的电磁炉也早坏了。对于低压保护我认为没有必要。因为电网电压太低的时候你欠压保护了估计用户还抱怨你对电源要求苛刻。中国实在太大啦,电网不是我们这些生活在发达地区人所能够了解到的。不挑电网也是我做的一个特点。哪怕你接220V也可以加热嘛,无非功率小了加热稍慢。电压高了我也可以工作功率稍微大点客户也不会用什么意见。

风扇选择了380V风机,听群里的朋友经常嚷嚷220V的用电容降压容易坏。索性用380V的控制简单还可靠。IGBT温度在50摄氏度的时候就打开风扇,温度降低了就关闭风扇。在保证安全的前提下尽量降低风扇的工作时间。这样有助于风扇的寿命。当温度超过80度的时候就关闭功率输出发送故障代码到显示屏、并且语音提示相应普通话(可做任何国家语言)。只有在温度下降到安全值的时候才会恢复正常并且回到0档位。需要重新人工拨动开关到0档位重新再次操作、(目的是保护,防止没人自己又加热。)

机器的防潮我没有做,只是自己做几个板子玩所以这个工序我也没有条件做,在海尔的时候我们一般选择透明的防水胶浇筑在板子的上面整个密封起来的。个人没有条件就跳过了。

 


 

电流的采样选用了电流互感器,这个小东西很好玩,但是也很简单。详见图片。此处省略20字。

有没有锅和大家一样采用的是电流采样。没有什么好说的。测试过可行还OK。

咱们先做个显示板规定个通讯协议吧。行家一看就知道什么通讯协议的,外行就当看热闹吧。

 

研究了好久终于可以传照片了。我们还是按照套路来吧,先做个原理图。那画了半天就这样了。下面做个板子的外形吧。也许有的童鞋喜欢提前做好,一个人一个干活的方式罢了。

 

接着我们开始给板子完善下弄好定位孔。

 


 

那我们整的差不多了就把元件从原理图中给导进来吧。

 

哇靠一堆乱是不是。别着急我们布局下还能够有点规律漂亮点。不过我布局不咋地将就看吧。

 

布局完成,布线也完成了、漂亮不漂亮和个人审美观念有关系。我画画不行审美观念也差大家将就一看。

代码是给一个朋友的,因为他外语不好、所以尽量少用单词用了不少拼音缩写。每行都有注释方便朋友看的。下面只给出代码的片段,代码是测试某个阶段的你懂得我不可能贴完整的。要不我那朋友得掐死我。

 


 

//这是个商用电磁炉的主控程序版本V2.0 主板上 不带显示部分,需要和外接的显示板进行通讯。外接的显示板有单独的单片机进行控制。

#include

#include

#define uchar unsigned char

#define uint unsigned int

typedef unsigned char INT8U;

typedef unsigned int  INT16U;

#define AD_SPEED 0x40 //0100,0000   1      0     140 个时钟周期转换一次

//---------------------------------------------------------------------

INT8U get_AD_result(INT8U channel);

void delay(INT8U delay_time);       //延时函数

uchar i,lingdangzhixingguo,a,b,z ;

uchar j;              //档位只执行一次用。待机的时候等于0.在X档就为X、

uchar usck;           //U盘时钟

uchar usda;           //U盘数据

uchar youguo;    //检锅 当有脉冲出现的时间就让下降沿出发置1。表示有锅、

uchar dispsck;        //显示时钟包

uchar dispdat;        //显示数据包

uchar dangwei;        //档位

uchar likaiguo;       //锅具离开过、

uchar meiguo;         //没锅++

uchar querenmeiguo;   //确认没锅

 


 

uchar diyicishangdian;//初次上电的状态位,用于档位清零。执行过零档后恢复档位的可操作性。

uint  ad0;            //ad0的采集结果

uint  ad1;            //ad1的采集结果

uint  ad2;            //ad2的采集结果

uint  ad3;            //ad3的采集结果

uint  ad4;            //ad4的采集结果

uint  ad5;            //ad5的采集结果

//**************************************************** 各种延时子函数*******************************************************

void yanshi(uint xms)//延时多久需要计算。

 {

uint x;

for(x=xms;x>0;x--);

 }      

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

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

void delay_10us(uint t)  //延时50微秒的指令。核对过时间很准确

{

uint j;

for(;t>0;t--)

for(j=6;j>0;j--);

}

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

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

void delay_1ms(uint z)   //延时一毫秒的指令。核对过时间很准确

{

 uint x,y;

 for(x=z;x>0;x--)

 for(y=800;y>0;y--);

 


 

//***************************************************以下是各个档位的画面***********************************************

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

void  huamian(uint y)

{

switch(y)

{

case 0:

P1=table[0];

lv=0;//关闭运行指示灯。

hong=1;

break;

case 2:  //档位1画面

P1=table[1];

lv=1;//打开运行指示灯

hong=0;

break;

case 4: //档位2画面

lv=1;//打开运行指示灯

hong=0;

P1=table[2];

break;

case 6: //档位3画面

P1=table[3];

lv=1;//打开运行指示灯

hong=0;

break;

case 8://档位4画面

P1=table[4];

break;

 


 

case 20://散热器温度过高

P1=table[10];  //显示A IGBT温度高

lv=0;//关闭运行指示灯

hong=1;

break;

case 22://风扇发生故障

//write_12864_dat(table20[i]);

break;

case 24: //环境湿度过高

//write_12864_dat(table21[i]);

break;

case 26: //机器锁定咨询客服

//write_12864_dat(table22[i]);

break;

P1=table[14];//缺相 显示F

lv=0;//关闭运行指示灯

hong=1;

break;

case 30:// 锅的温度太高

//write_12864_dat(table26[i]);

break;

case 32:// 线盘传感器开路

代码太站地方了就不贴了。只发截图。下面发主板的制作过程。

 


 

同样还是原理图的绘制是第一步。

 

 

中间考虑了很多问题最后的原理图如下。

 


 

 

也不知道可以看清楚不。行家的话一看就明白了不用太清楚。

 

下面做好的PCB局部。

下面是对应位置的三维视图:

 

另一面三维视图

 

图纸太大为了看清细节只好一开一块截图了

 


 

搭桥的测试完了,烧的油测试了高温保护。尤其是线盘的过温保护,实测温度探头误差可以在正负一度内,采样传感器延时在2-3秒内。达到设计要求。测试线盘12KW-电流1档4A  2档8A  3档12A   4挡16A  5档18A。 对于电路板配套30KW的机器只需要更改软件即可。因为采样控制范围有点宽,单片机控制char变量有0-250有很明显的电流变化。因为0-100就可以达到18A所以30KW可以更改软件在不动硬件的情况下就可以改变功率。(有的亲估计看到这里就糊涂了,肯定问:你的板子上没有电位器么?我们的板子都是可调电流的每次做完都调啊调的)对于电位器我本人不赞成使用,因为电位器的本质就是触电的摩擦所以肯定会有接触不良的问题存在,时间久点还会氧化。所以我把取样控制范围控制的很大。这样不用电位器只需要修改软件就可以。对于同行的你来说软件无非几行代码,代码肯定不会接触不良。这样做还有一个好处那就是适合批量生产不分多少KW的,拿来通用性比较好。不同功率刷不同的程序就可以变成对应的机器、,(量产的机器应客户要求采用软件固定更改取样电阻来改变机型的设置。效果也比较明显,对于大家反映的1档电流大容易糊锅也做了修缮。)减少了库存压力。便于维修和备件的准备。

 

标签:

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

相关阅读

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006