首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
单片机控制的高频调光台灯
来源:本站整理  作者:佚名  2011-11-28 18:33:00



  青少年近视的产生可能与照明灯的频闪有着一定的关系。通常接入单相交流电路的日光灯发出的光的波动达55%;白炽灯由于钨丝的热惯性较小,钨丝温度随着交流电发生周期性的变化,灯光也会以每秒100次的频率闪烁,只是其光的波动要小得多,仅为5%一13%。对于那些使用电子整流器的日光灯或电子节能灯,当交流整流电路部分使用的滤波电解电容器容量较小或失效时,其频闪也是很明显的。由于白炽灯的频闪很小,所以用白炽灯作台灯对保护视力有利。通常使用的调光台灯通过晶闸管改变50Hz交流电的导通角来调节亮度,当交流电的导通角较小时频闪就比较明显了,如下图所示。

  本文介绍的单片机高频调光台灯把220V5OHz交流电转换为2000Hz的脉冲直流电点亮灯泡,通过改变脉冲直流电的占空比来调节灯光的强度,由于脉冲周期远远小于灯泡钨丝的冷却时间,灯泡发光强度不会有周期性的变化。因此从根本上消除了视觉频闪的现象,对眼睛起到保护作用。

  硬件电路设计传统的调光台灯典型电路见下图。

  主电路由开关S、灯泡H、双向晶闸管VS、电感L等组成。

  电位器RP、电阻R1、电容C1和双向二极管VD组成双向晶闹管触发电路。当C1上的充电电压达到双向二极管VD的导通电压阈值时,触发双向晶闸管VS导通;当电压过零时VS自动关断。

  调整电位器RP的阻值可调整C1的充电速率,即调整双向晶间管的导通角,从而调节灯的亮度。

  从上面传统调光台灯的原理我们可以看出,其本质就是通过改变灯泡通、断电的时间比来改变灯的亮度。受此启发,我们如果在灯泡上加上直流脉冲电压,通过调节直流脉冲电压的占空比同样可以改变灯的亮度。本文介绍的单片机高频调光台灯就是采用了这样的原理,它采用两个按键来调节灯的亮度。电路见下图,由单片机电路、输出电路和电源电路等部分组成。

  单片机使用 ATMEL 公司的ATmega8L(以下简称M8L),因采用内部RC振荡器作时钟源,使其外围电路变得很简单。由于M8L的工作电压直接从300V直流高压降压获得,为了减小降压电阻的功耗,必须设法降低M8L的工作电流,方法一是降低工作电压,取工作为 3V;方法二是降低时钟频率,采用内部RC振荡器lMHz的最低时钟频率。采取这两个措施后实测M8L的工作电流约为 2.3mA。

  电路的工作原理是这样的:由M8L的PBI输出PWM信号经VTI反相并变换电平幅度后推动场效应功率管VT2,使灯泡H点亮发光。VTI输出高电平时VT2导通,灯泡通电 VTI输出低电平时VT2截止,灯泡断电。因此脉冲信号占空比改变时灯泡通电和断电的时间比也跟着变化,调节脉冲信号占空比就可以调节灯的亮度,达到了调光的目的。当接下S1 时,PBI输出PWM信号占空比减小,VTI输出的PWM信号占空比增加,灯泡亮度增加;反之,按S2灯泡亮度减小。

  由于220V交流电经整流后,C2可以得到约300V的直流电压,因此VT1输出的PWM 占空比不能调到接近100%,否则额定工作电压为220V的灯泡加上近300V的直流电压会很快烧毁。为了防止这一现象的发生,在程序上采取了措施,使得接下S1时占空比最大只能调到55%,这时灯泡的功率和接在220V交流电上的功率一样。

  软件设计程序使用ICC AVR C语言编写,由主函数、外部中断0函数、外部中断1 函数和延时函数等部分组成。

  源程序代码如下:

# include < iom8v. h>

    #define uchar unsigned

char

    char k;

    void DelayM s (char i ) //

延时函数,参数 i为延时时间  (ms)

    { char j ;

    for ( ; i ! = 0 ; i-- )

{ for ( j = 143 i j ! = 0 ; j --

) ; }}

    #   p   r   a   g   m   a

Interrupt_handler    INT_0:2

//外部中断0 函数

    void  INT_0 (void)

    { if ( k ! = 140)

    k= k+ 5 ;

    OCRIA=k;//设置PWM参数

    DelayM s ( 2 0 0 ) ; }

   #   p   r  a   g   m   a

Interrupt_handler    INT_1;3

//外部中断 1函数

    void  INT_1(void)

    { if (k!= 5)

    k= k-5 I

    OCRIA=k;//设置PWM参数

    DelayM s ( 2 0 0 ) i }

    void main(void)//主函数

    ( DDRD= Ox0 O ;

    PORTD= Oxff;//设置 PD 口

为带上拉电阻的输入口

    DDRB= Oxf f ;

    PORTB= Oxff;// i殳置 PB 口

为推挽 1 输出

    SREG=Ox80://开全局中断

    GICR=OxcO;//开外部中断

    TCCRIA= OX c1 ; / / 8 PWDI,

向上计数置位OCIA,向下计数清零

OCIA

    TCCRIB= OxOl://时钟 1 分

频,p附 信号频率为 IM/512 ~~ 2kHz

    for ( k= 5 : k ! = 115 : k= k+ 5 )

//软起动到初始亮度

    { OCRIA= k; / / -i; I PWM 

    Delays ( 100 ) ; )

    whi le ( 1 ) ; }

程序的键盘处理采用了外部中断的方式,外部中断0函数用来处理接下S1 引发的中断,外部中断 1 函数用来处理接下S2引发的中断。因为 PD 口被设置为带上拉电阻的输人口,所以两个中断输入端PD2(INTO)、PD3(INTI)可以不外接上拉电阻。
  程序中用到的与外部中断函数有关的寄存器有两个:1.状态寄存器SREG,它的位7-I是全局中断允许,这里取SREG=Ox80即可打开全局中断;2.通用中断控制寄存器GICR,它的位7一INTI是外部中断1使能,位6一INTO是外部中断0使能,因此这两个位均取1即取GICR=OxcO即可打开这两个中断。在每个中断函数中都加了0.2s的延时,这样当按钮按住不放时每过0.2秒就执行一次中断,PWM信号的占空比就发生一次改变。
  程序使用16位定时器/计数器1-T/C1的PWM模式从PBI脚输出PWM信号。为了获得较高的PWM输出频率,T/C1取8位PWM方式,分频系数取1。由于输出的PWM信号经VTI变换电平幅度时被反相了,因此输出比较模式设置成逆向PWM。这里OCRIA取的最大值为140,是OCRIA能取的最大值255的55%,使得VTI输出的脉冲信号的占空比最大为55%。
  主程序中还加了软起动开灯部分,使得打开电源后用2秒多的时间将灯泡由晴到亮逐渐点亮,即灯泡上所加的脉冲电压的占空比逐渐增大,OCRIA最终取值为115,这时初始亮度为最大亮度的约80%。这样做一方面可以使眼睛有一个适应过程,另一方面减小了通电时灯泡在冷阻状态下的瞬间大电流,延长了灯泡的使用寿命。
  安装调试
  单片机要选用工作电压范围为2.7V-5.5V的ATmega8L,不能选用工作电压范围为4.5V-5.5V的ATmega8。VTI用场效应功率管SKAO6N6O,参数为6A6OOV,也可以用参数接近的其他型号的场效应管代替。所有电阻均使用金属膜电阻。其余元器件的参数见图3。
  电路板安装好后将编译好的程序目标文件tgtd.hex用软件写入ATmega8L,内部RC振荡器时钟频率设置等有关配置位设置见下图。
  因为整个电路直接和交流电相连,所以调试过程中要特别注意安全。为保险起见,可先用外接的3V直流电源作单片机的工作电源,用示波器观看PBI 的输出波形,输出波形的占空比应随着按动 S1、S2发生变化。如果没有示波器,可用万用表测量PBI的输出电压,其输出电压也会随着按动S1、S2发生变化。调试正常后再接上交流电源就可以正常工作了。

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:64,904.30000 毫秒