|
DIY PWM调光小夜灯
作者:温正伟
原载:无线电201002
|
相关讨论链接:
http://www.cdle.net/bbs/dispbbs.asp?boardid=2&id=32875&page=1&star=1
代码说明:本代码为共享,可以任意复制修改,但不得直接使用于商业用途。 本文所提供的实例程序:cdle100001.rar
经常夜里用电脑,或写作、或上网,要是开着没有调光功能的工作台灯,40W的白炽灯似乎有点明亮了,总会感觉有点防碍了思考,但是关了灯又会感觉周围暗暗的,连键盘都没法看清。于是自己DIY了一个PWM调光的小夜灯。这个电路实现长按开关电路、具有8级调光、低功耗等功能,可以用作夜晚的弱光照明、设备的背光、小功率调光手电等等。对于年少的小朋友,夜里看书、玩电脑最好还是打开台灯或房间的吸顶灯,足够明亮的光线才不会影响视力的发育。 先来了解一下PWM英文全称为Pulse Width Modulation即脉冲宽度调制,是一种利用数字输出对模拟电路进行控制的一种十分有效的技术,非常广泛应用到功率控制、电机调速、通信等各种电子技术培领域中。PWM简单来说就是把模拟信号进行量化,使其变为数字编码方便调控。PWM信号只有“高”和“低”,也可以看作“1”和“0”这2个二进制数字,在直流供电中的任何时刻只表示“通”与“断”。图1是2种占空比信号,分别是占空比为10%和90%的PWM输出。假设信号供电电源为10V,方波以一定频率进行10%占空比输出时,信号10%的时间是通的,90%的时间是断的,输出信号则对应一个电压幅值为1V的模拟信号,如果点空比为100%时,方波则变为高电平,则对应为10V的模拟信号。可能你还是没搞明白是PWM信号到底指什么,那可以看看图2的例子。
 |
| 图1 占空比示意图(点击放大) |
图2是一个电灯的控制电路,也是一个可以用PWM控制的电路,如果电池电压为12V,把开关按下50毫秒灯泡就亮50毫秒,这段时间内灯泡得到的电压12V,下一个50毫秒断开开关这时灯泡的电压为0V,1秒内进行10次这样开关,灯泡亮度看起来就像用6V电压供电一样,而6V正是12V的50%,这种情况就是调制频率为10Hz,占空比为50%的PWM。
 |
| 图2 实例说明图(点击放大) |
同样的占空比,调制频率越低,负载效率就越低,可以设想一下,10Hz就是灯泡不断亮50毫秒灭50毫秒,这样人眼看起来是有点闪烁的,如果在一个周期内把12V供电灯泡点亮.5秒然后再断开5秒,这样就是0.1Hz,这时的占空比依然是50%,但是所得到的效果就更差了,光亮度看起来就5秒全亮,然后紧接着5秒全暗,根本就不可能相当于12V的50%(6V)供电的效果了。要想取得像调光灯一样的效果,就需要把调制频率提高,通断循环周期与负载对开关状态变化的响应时间相比必须足够短。大多数负载的PWM应用的调制频率一般是1K-200KHz。
了解了PWM的基本原理,我们就可以用硬件电路去实现了。笔者的这个制作里选用了ATMEL公司的Attiny13单片机生成PWM信号,它是一个只有8引脚的低功耗AVR单片机,除了基本的单片机功能外,还有一个具有8位PWM功能的定时器,能在PB0(OC0A)、PB1(OC0B)两引脚输出2路独立的PWM信号。本制作的电路图如图3。
 |
| 图3 电路图(点击放大) |
制作中用到2颗“食人鱼”白光LED(eagle-eye led或piranha LED),其外形像食人鱼,所以得其名,所封装的支架为4引脚,提高了散热性能,还具有比较大的发光角度,一般为120度。笔者选用的是5mm的白光“食人鱼”,标称导通电压约为3.6V,电流30mA。制作中直接使用电脑USB取电,电压为5V,PWM信号从PB0输出,通过R3、R4使Q1基极得到电流从而对Q1发射极电流进行控制,总电流控制在最大60毫安左右。R1、R2则起到限流作用。SW1为功能按键。ATtiny13使用内部9.6MHzRC振荡电路不对系统时钟进行8分频,使其工作在9.6MHz的频率中,使用内部复位电路,使电路最简化。
|