基于单片机实现调光控制器设计_第1页
基于单片机实现调光控制器设计_第2页
基于单片机实现调光控制器设计_第3页
基于单片机实现调光控制器设计_第4页
基于单片机实现调光控制器设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机实现的调光控制器设计一、调光控制器设计思想在日常生活中,我们常常需要对灯光的亮度进行调节。本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。所以需要在交流电的每个半波期间都要产生触发信号,触发信号产生时间的长短(触发角的大小)就决定了灯泡的亮度。调光的实现方式就是在交流电源信号过零点后一段时间触发双向可控硅开关的导通,称这段时间为双向可控硅的触发角。触发角越大,导通时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。这就要求确定交流电源同

2、步信号的过零点,并以此为基础,控制触发信号触发角的大小,达到白炽灯亮度调节的目的。二、硬件电路部分本调光控制器的框图如下:控制部分:为了便于灵活设计,选择可多次写入的可编程器件,本设计方案中选用的是ATMEL公司生产的AT89C51单片机。驱动部分:由于驱动的对象是交流负载,且为了实现连续调节的目的,本电路中采用了无触点开关元件双向可控硅。双向可控硅能够对交流电源的导通进行无触点连续控制,以小电流控制大电流,且动作快、寿命长、可靠性高。负载部分:本电路的负载是白炽灯(纯阻负载)。(一)交流电源同步信号交流电源同步信号的产生如图2电路所示,图中的同步信号就是我们需要的交流电压过零点信号。各部分波

3、形如图3所示。图中整流后波形中的水平虚线表示光藕P52l输入二极管的门限电压。P521是TLP521的简称,下图是其引脚图。图2 同步信号提取电路图3 同步信号波形图图4 P521引脚图(二)单片机控制部分:主控单元以AT89C51单片机为核心,交流电压过零点信号提取电路中产生的同步信号SYN接到AT89C5l的INT0,此信号的下降沿将使AT89-C51产生中断,以此为延时时间的起点。三个按键只用于控制一路灯:一个为开关,另外两个分别为提高亮度和降低亮度。220V交流主电源导通区间、同步信号和触发信号的时序关系如图6所示。图中的阴影部分表示可控硅的导通区间,它的大小决定了灯的亮度。改变延时时

4、间可改变触发信号和同步信号的相位关系,也改变了可控硅的导通区间的大小,达到调光的目的。图5 主电源导通区、同步信号和触发信号时序图图6 可控硅接线图图中,L1_D是单片机输出的触发信号,该信号通过光控可控硅MOC3022去驱动可控硅T435。受控的白炽灯接在Ll和零线(图中未画出)之间。MOC3022是DIP-6封装的光控可控硅。其1、2脚分别为二极管的正、负极:4、6脚为输出回路的两端;3、5脚不用连接。如图8所示。图7 MOC3022引脚图(三)电路整体接线图(四)元器件的选型电源回路名称规格个数变压器220V/12V/8W1二极管IN40014瓷片电容0.1uF/25V2100uF极性电

5、容100uF1470uF极性电容470uF/25V1稳压器L78051同步信号回路名称规格个数30k电阻30k/2W25.1k电阻5.1k/0.25W1整流器DF1071光耦P521-11驱动电路名称类型个数5.1k电阻5.1k/0.25W1270欧电阻270/0.25W11k电阻1K/2W1180欧电阻180/2W1光耦MOC30221可控硅T435-4001灯泡25W钨丝灯1(五)相关计算: 1、与可控硅相连的电阻回路计算 当MOC3022导通时,可控硅门极所加电压:U=180*220/(1000+180)=33.5V可以驱动可控硅所以选1k和1802、光耦MOC3022所在回路相关计算选

6、择电阻270的原因:MOC3022发光二极管侧最小触发电流为10mA,触发电压为1.5V,极限条件下,所以电阻应该比350小,应该选270。因为MOC3022的发光灯驱动电流是10mA,所以可以驱动MOC3022.3、 5V稳压电源1)器件参数:变压器参数:220/12 额定功率8W-12Wl7805cv参数:输出电压:4.75-5.25V;最大输入电压:35V;静态电流:4.2-8mA; 输出噪音电压:40uV; 纹波抑制比:78dB;输出电阻:17m; 输出电压温度系数-1.1mV/°C;2)稳压电源计算因为变压器变比是220/12V,所以经过整流桥后电压变为:7805最大输入电

7、压为35V,所以符合7805的输入要求。经稳压电路出来后最终测的电压是5.02V.误差率是:=0.4%4、各部分电容的计算分析1)470u电阻计算:电容阻抗计算:,470u电容对50HZ的工频阻抗为6.7,对1MHZ(20000次谐波)信号阻抗为3×10,对高频信号有很好滤除作用。470u电容的分析:9V电压经过470u的电容后,电流为1.3A,可以通过整流桥的另一个二极管。换成与470u容值相差不大的电容也可以,如果电容太小会对工频产生很大阻抗,则可能无法通过整流桥的另一个二极管。下面的0.1u电容可以证明。2)0.1u电容计算:电容阻抗计算式,对于1MHZ的波行对应的阻抗为1.6

8、,而对50HZ工频对应的阻抗为32K,流过0.1u电容的电流为0.28mA,不利于通过整流桥的另一个二极管,所以有必要在前面加一个470u的电容。当然0.1u的电容比470u的电容有更好的滤除高频信号能力。设变压器2次侧电压为,设经过电容后平均电压为U:U=2*,为负载电阻,由于T=0.02,空载时=,则空载时电容后的电压为1.414倍电压,加上负载后就得用公式计算,一般估算为1.2.3)7805后面2个电容计算:经过7805后,100u的电容电流主要成分就是直流了,加100u的电容有进一步稳压的效果,再者可以防止来自负载上电压冲击,避免流进稳压管7805。100u电容对工频信号阻抗为32,对

9、3次谐波阻抗为10,5次谐波阻抗为6.4,对10次谐波阻抗为3.2,对100次谐波为0.32。0.1u电容同100u电容效果,不过0.1u对来自负载的1MHZ以上信号有很好滤除。5、单片机机器周期的计算晶振频率为12MHz振荡周期=状态周期三、软件部分要控制的对象是50Hz的正弦交流信号,通过同步信号检测电路,将同步信号送至单片机的中断口。单片机接收到同步信号后就启动一个延时程序,延时的具体时间由按键来改变。延时结束后,单片机立即产生触发信号。触发信号可使可控硅导通,电流经过可控硅流过白炽灯,使灯发光。延时越长,亮的时间就越短,灯的亮度越暗。由于延时的长短是由按键决定的,所以实际上就是按键控制

10、了光的强弱。理论上讲,延时时间应该可以是010ms内的任意值。在程序中,将一个周期均分成N等份,每次按键只需要去改变其等份数,在这里,N越大越好,但由于受到单片机本身的限制和基于实际必要性的考虑,只需要分成大约100份左右即可,实际采用的值是95。可控硅的触发脉冲宽度要根据具体的光耦结合示波器观察而定,在本设计中取20 s。程序中使用T1来控制这个时间。对两个调光按键的处理的方式是:短按只调整一个台阶,长按可以连续调整。设计流程图NYNY按键消抖NYYNY返回几乎uCounter-1动作Counter-1亮动作返回返回延时到返回初始化自检调用调光开关On指示灯亮开关启动int0设计程序:#in

11、clude<reg51.h>typedef unsigned char unchar;void isr_int0(void) ;/同步信号void isr_t0(void) ;/调光void isr_t1(void) ;/可控硅触发脉冲sbit sw0=P10; /开关sbitsw_add=P11; /亮sbitsw_sub=P12; /暗sbit signal=P20; /可控硅信号sbitzsd=P17 ; /开关指示灯sbitazsd=P15; / 亮 调光指示灯sbitszsd=P16; / 暗 调光指示灯unchar counter; / 调光等级计数bit sw_fla

12、g; /开关状态bitsw_off;void delay_times(uncharm,unchar n);/延时bit get_key(bit); / 按键消抖uncharjs;void main(void) EA=1; IT0=1; ET0=1; ET1=1; TMOD=0X11;sw_flag=1; sw0=1;sw_add=1;sw_sub=1;zsd=1;azsd=1;szsd=1;counter=18;signal=1;sw_off=1; /T0初始化 TH0=-500/256; TL0=-500%256;/T1初始化 TH1=-20/256; TL1=-20%256;while(1

13、) sw_flag=get_key(sw0);while(sw0=0) if(sw_flag=0) / 总开关按下 sw_off=sw_off;zsd=sw_off; EX0=!zsd;/ 控制INT0delay_times(250,counter);signal=0;delay_times(5,2) ;signal=1; if(sw_off=0) if(get_key(sw_add)=0) while(sw_sub=0) if(counter<=0)continue;else counter-;azsd=azsd;js=counter; else if( get_key(sw_sub)=0) while(sw_sub=0) if(counter>=19)continue;else counter+;szsd=szsd; js=counter; EX0=!zsd;if(EX0=1) delay_times(250,counter);signal=0;delay_times(5,2) ;signal=1; void isr_int0(void) i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论