基于单片机实现的调光控制器设计.docx

上传人:b****4 文档编号:11680985 上传时间:2023-03-30 格式:DOCX 页数:13 大小:342.23KB
下载 相关 举报
基于单片机实现的调光控制器设计.docx_第1页
第1页 / 共13页
基于单片机实现的调光控制器设计.docx_第2页
第2页 / 共13页
基于单片机实现的调光控制器设计.docx_第3页
第3页 / 共13页
基于单片机实现的调光控制器设计.docx_第4页
第4页 / 共13页
基于单片机实现的调光控制器设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于单片机实现的调光控制器设计.docx

《基于单片机实现的调光控制器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的调光控制器设计.docx(13页珍藏版)》请在冰豆网上搜索。

基于单片机实现的调光控制器设计.docx

基于单片机实现的调光控制器设计

基于单片机实现的调光控制器设计

一、调光控制器设计思想

  在日常生活中,我们常常需要对灯光的亮度进行调节。

本调光控制器通过单片机控制双向可控硅的导通来实现白炽灯(纯阻负载)亮度的调整。

双向可控硅的特点是导通后即使触发信号去掉,它仍将保持导通;当负载电流为零(交流电压过零点)时,它会自动关断。

所以需要在交流电的每个半波期间都要产生触发信号,触发信号产生时间的长短(触发角的大小)就决定了灯泡的亮度。

调光的实现方式就是在交流电源信号过零点后一段时间触发双向可控硅开关的导通,称这段时间为双向可控硅的触发角。

触发角越大,导通时间越长,可控硅导通的时间越短,灯的亮度就越低;反之,灯就越亮。

这就要求确定交流电源同步信号的过零点,并以此为基础,控制触发信号触发角的大小,达到白炽灯亮度调节的目的。

二、硬件电路部分

  本调光控制器的框图如下:

控制部分:

为了便于灵活设计,选择可多次写入的可编程器件,本设计方案中选用的是ATMEL公司生产的AT89C51单片机。

驱动部分:

由于驱动的对象是交流负载,且为了实现连续调节的目的,本电路中采用了无触点开关元件双向可控硅。

双向可控硅能够对交流电源的导通进行无触点连续控制,以小电流控制大电流,且动作快、寿命长、可靠性高。

负载部分:

本电路的负载是白炽灯(纯阻负载)。

(一)交流电源同步信号

交流电源同步信号的产生如图2电路所示,图中的同步信号就是我们需要的交流电压过零点信号。

各部分波形如图3所示。

图中整流后波形中的水平虚线表示光藕P52l输入二极管的门限电压。

P521是TLP521的简称,下图是其引脚图。

图2同步信号提取电路

图3同步信号波形图

图4P521引脚图

(二)单片机控制部分:

主控单元以AT89C51单片机为核心,交流电压过零点信号提取电路中产生的同步信号SYN接到AT89C5l的INT0,此信号的下降沿将使AT89-C51产生中断,以此为延时时间的起点。

  三个按键只用于控制一路灯:

一个为开关,另外两个分别为提高亮度和降低亮度。

220V交流主电源导通区间、同步信号和触发信号的时序关系如图6所示。

图中的阴影部分表示可控硅的导通区间,它的大小决定了灯的亮度。

改变延时时间可改变触发信号和同步信号的相位关系,也改变了可控硅的导通区间的大小,达到调光的目的。

图5主电源导通区、同步信号和触发信号时序图

图6可控硅接线图

图中,L1_D是单片机输出的触发信号,该信号通过光控可控硅MOC3022去驱动可控硅T435。

受控的白炽灯接在Ll和零线(图中未画出)之间。

MOC3022是DIP-6封装的光控可控硅。

其1、2脚分别为二极管的正、负极:

4、6脚为输出回路的两端;3、5脚不用连接。

如图8所示。

图7MOC3022引脚图

(三)电路整体接线图

(四)元器件的选型

电源回路

名称

规格

个数

变压器

220V/12V/8W

1

二极管

IN4001

4

瓷片电容

0.1uF/25V

2

100uF极性电容

100uF

1

470uF极性电容

470uF/25V

1

稳压器

L7805

1

同步信号回路

名称

规格

个数

30k电阻

30k/2W

2

5.1k电阻

5.1k/0.25W

1

整流器

DF107

1

光耦

P521-1

1

驱动电路

名称

类型

个数

5.1k电阻

5.1k/0.25W

1

270欧电阻

270/0.25W

1

1k电阻

1K/2W

1

180欧电阻

180/2W

1

光耦

MOC3022

1

可控硅

T435-400

1

灯泡

25W钨丝灯

1

(五)相关计算:

1、与可控硅相连的电阻回路计算

当MOC3022导通时,可控硅门极所加电压:

U=180*220/(1000+180)=33.5V

可以驱动可控硅所以选1k

和180

2、光耦MOC3022所在回路相关计算

选择电阻270

的原因:

MOC3022发光二极管侧最小触发电流为10mA,触发电压为1.5V,极限条件下

,所以电阻应该比350小,应该选270

因为MOC3022的发光灯驱动电流是10mA,所以可以驱动MOC3022.

3、5V稳压电源

1)器件参数:

变压器参数:

220/12额定功率8W-12W

l7805cv参数:

输出电压:

4.75-5.25V;最大输入电压:

35V;静态电流:

4.2-8mA;输出噪音电压:

40uV;纹波抑制比:

78dB; 

输出电阻:

17mΩ;输出电压温度系数-1.1mV/°C;

2)稳压电源计算

因为变压器变比是220/12V,所以经过整流桥后电压变为:

7805最大输入电压为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

,而对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

,对3次谐波阻抗为10

,5次谐波阻抗为6.4

,对10次谐波阻抗为3.2

,对100次谐波为0.32

0.1u电容同100u电容效果,不过0.1u对来自负载的1MHZ以上信号有很好滤除。

5、单片机机器周期的计算

晶振频率为12MHz

振荡周期=

状态周期

三、软件部分

要控制的对象是50Hz的正弦交流信号,通过同步信号检测电路,将同步信号送至单片机的中断口。

单片机接收到同步信号后就启动一个延时程序,延时的具体时间由按键来改变。

延时结束后,单片机立即产生触发信号。

触发信号可使可控硅导通,电流经过可控硅流过白炽灯,使灯发光。

延时越长,亮的时间就越短,灯的亮度越暗。

由于延时的长短是由按键决定的,所以实际上就是按键控制了光的强弱。

  理论上讲,延时时间应该可以是0~10ms内的任意值。

在程序中,将一个周期均分成N等份,每次按键只需要去改变其等份数,在这里,N越大越好,但由于受到单片机本身的限制和基于实际必要性的考虑,只需要分成大约100份左右即可,实际采用的值是95。

  可控硅的触发脉冲宽度要根据具体的光耦结合示波器观察而定,在本设计中取20μs。

程序中使用T1来控制这个时间。

对两个调光按键的处理的方式是:

短按只调整一个台阶,长按可以连续调整。

设计流程图

 

设计程序:

#include

typedefunsignedcharunchar;

voidisr_int0(void);//同步信号

voidisr_t0(void);//调光

voidisr_t1(void);//可控硅触发脉冲

sbitsw0=P1^0;//开关

sbitsw_add=P1^1;//亮

sbitsw_sub=P1^2;//暗

sbitsignal=P2^0;//可控硅信号

sbitzsd=P1^7;//开关指示灯

sbitazsd=P1^5;//亮调光指示灯

sbitszsd=P1^6;//暗调光指示灯

uncharcounter;//调光等级计数

bitsw_flag;//开关状态

bitsw_off;

voiddelay_times(uncharm,uncharn);//延时

bitget_key(bit);//按键消抖

uncharjs;

voidmain(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)

{

sw_flag=get_key(sw0);

while(sw0==0)

{}

if(sw_flag==0)//总开关按下

{

sw_off=~sw_off;

zsd=sw_off;

EX0=!

zsd;//控制INT0

delay_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;

}

}

elseif(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;

}

}

}

voidisr_int0(void)interrupt0

{

EX0=0;

ET0=1;

TR0=1;

}

bitget_key(bitx)//开关消抖

{

if(x==1)

return1;

else

delay_times(125,25);//10ms

if(x==1)

return1;

else

return0;

}

voiddelay_times(uncharm,uncharn)//延时

{unchari,j;

for(i=1;i<=m;i++)

for(j=1;j<=n;j++)

{}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1