用单片机制作功率调节器

过零调功器是在交流电压通过零点时刻开启双向晶闸管,利用开通和关断的正弦波个数的变化改变加到电阻负载上的平均功率,特别适合于电烙铁等热惯性较大的电热器具的功率控制,比起通常的改变晶闸管导通角的方法,其最大优点就是不会产生讨厌的射频和谐波干扰。
本文介绍的过零调功器采用的是低档的AVR单片机Atinny2313,虽然该单片机引脚和51单片机2051相同,但是功能却有很大提高。例如它具有2KB的FLASHROM,可以不必使用专门的编程器下载程序(只需要制作一根简单的下载线);它不但具有片内RAM,而且带有可编程的EEPROM便于断电时保存数据,内置的RC振荡器可以在简单应用时省掉外部石英晶体和电容;它还有模拟比较中断等内部资源)加上它采用了RISC结构,没有累加器瓶颈,大部分指令都是单字节的,执行速度很快,这些优点使得它应用日益广泛。
这个调功器,用2313发出控制双向晶闸管的激励脉冲,通过按键改变设定值来调整脉冲通断比,也就调整了设定的功率。例如,在4个周波的时间内,如果在8个零点都有激励脉冲,则双向晶闸管一直导通,负载得到满功率;如果只给出4个激励脉冲,则双向晶闸管仅仅导通2个周波,负载只能得到一半功率,本电路从全关到全开分10级,还可通过外部接点改变高低设定,例如烙铁工作时给它80%功率,搁在架子上给它60%功率。此外,可以用按键保存常用的高低设定以便在通电后立即执行。主要的功能都是通过软件实现,硬件相对简单,体积不大,直按使用“万用板焊装,适合于业余制作。
电路原理
一、硬件
硬件分为电源、单片机、双向晶闸管电路三部分。电源部分如下图所示,220V交流电通过5W小变压器变为双9V,全波整流滤波后加入开关稳压电路稳压。虽然用线性稳压7805最简单,这里稍微复杂点,用了效率高的开关电源,它仅仅比7805多用了个肖特基二极管VD3和电感lA220"H,效率可达到75%以上,比7805高得多,使用的LM2575只要加个小散热片,工作起来也只是微温,要是7805,早就烫手了。这里用的可调型电路,也可以用固定 5V的,更为简单。注意:从变压器次级用VD4取出不加滤波的半波脉冲P作为控制信号,加到单片机,产生和电源同步的中断。
单片机和双向晶闸管电路部分见下图,共阳极显示LED数码管是2位联体的,2个字段电极已经内部并联好,通过晶体管8550轮流选通5ms实现左右显示,左管显“H”或“L”表示右管当前是显示高设定还是低设定。
8550由单片机的PDO和PD1控制。PD2-PD4均设置为带内部上拉电阻的输入。外接的按钮SB1、SB2分别用于储存设定值和改变设定值,S1是外接开关,用于高低设定的切换。例如,S1断开时,用SB2调节数码管显示“H8”,即当前的高输出功率为80%,S1接通时,SB2调节显示“L5”,即现在低输出功率为50%。如果按下SB1,此二数值便存入EEPROM中,下次开机如果S1断开,显示“H8”,否则显示“L5”,单片机的PB口的PB2-PB7加上PD6为输出,给出数码管的显示字段。
而PBO、PB1设置为不带上拉的输入口,而且开启相连的内部模拟比较器和1.IV基准源,从电源来的半波脉冲P经过Rl2和绿色VD1限幅到1.9V加到PB1,每lOms左右就产生一次和电源同步的比较中断,如上图所示。
单片机的PD5设置为输出,其输出的跨交流零点脉冲经红发光管VD2和lk可调电阻Rl5加到光耦触发器MOC3063输入端,由它产生的过零触发脉冲驱动6A6OOV的双向晶闸管BTAO6-600C最终实现通断比的控制。Rl5的作用是保证光藕的输入电流为5mA。光耦和双向晶闸管装在电源插座盒子里面。
为了编程单片机,在RST、PB7、PB6、PB5和电源5V、地等各处焊插针以便从下载线引人编程用的RST、SCK、MISO、MOS1信号。编程时通过断点KDI隔离半波脉冲。单片机插座、数码管、按键等元件焊在一片小万用板上,很容易安装。晶闸管和光耦装在另外一片小电路板上(这里用的废节能灯电路板)二者通过导线和小插头插座连接。这样单片机板上面完全是低压信号,比较安全。
二、控制时序
如下图所示,经VDI限幅的梯形波加在PBI,模拟比较器设置为输入电压变化中断,在tl点,输入电压开始高于内部基准电压1.1V,启动中断处理,开启T/CO定时器来延时5ms(12点)。比较器中断结束(t3)。在t4点,T/CO计时到达5ins,启动定时器溢出中断:停止定时器,关断上次PD5端输出的控制脉冲,然后按照当前的设定值和输出脉冲计数值判断是否输出控制脉冲以决定PD5输出电位高低。再判断是否完成一个控制周期,刷新变量“高输出计数”和“低输出计数”。然后结束T/CO中断(t5时刻)。
在随点,输入电压开始低于基准电压,再次启动比较器中断,重复上述过程。
当“高”“低”输出计数达到设定值后,计数回0,开始下一个触发脉冲控制循环。可见虽然只是用半波触发中断,仍然可以对交流全波加以控制。
三、软件
用WINAVR或CodeVisionAVR的DEMO版编程工具进行C语言编程,后者对初学者比较方便,前者是免费软件。主程序流程如下图(左)所示,包括上电初始化,EEPROM检查,数码管显示,按键处理,设定值存储)其中EEPROM检查是在初始化以后检查EEPROM中是否为存储的高低设定值,如果是,就把它作为开机后的设定值加以显示,如果不是,则置高设定为100%,低设定为0,即S1如果断开,显示“HF”,S1闭合,显示“LO”。
![]() |
![]() |
中断流程如上图(右)所示。按键处理和显示延时相结合,不另外加入延时消抖过程。再就是在程序存储区放置2个数据表,分别是和设定值对应的显示字段表和通断计数设定值表,显示和触发输出都是通过查表进行。全部优化后的HEX代码不到1KB。
制作与调制

评论