最初这个想法是源于周工网上的一期嵌入式对话中——TI的LED解决方案。
本作品参加:第三届全国大学生节能减排社会实践与科技竞赛
虽然实用性不强,不过本人确实是做了不少事情,传上来分享一下!
摘要:本研究设计了一款情景可调的LED节能灯,该灯具利用TNY279P设计出高效率开关电源,使用低功耗微控制器LM3S1138控制PWM输出,从而调节电源输出和SN3350的驱动电流大小,最后实现了LED亮度可调、颜色可变的多情景节能灯具。通过实验表明,该情景可调的LED节能灯可大大提高能源的使用效率,降低能耗。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
关键词:LED节能灯;情景可调;SN3350驱动芯片;PWM调节
作品简介
通过实验设计了一款情景式LED节能灯具,情景照明的LED驱动线路工作于交流220V市电,主电路采用离线式反激降压拓扑结构,隔离的输出方式有利于提高照明灯具的使用及操作安全性。采用低功耗微控制器LM3S1138控制PWM输出调节电源输出以及SN3350的驱动电流大小实现LED亮度可调、颜色可变,同时微控制器监测电路中电压和电流当驱动电流不足预先设定的值时自动调节TNY279P的电源输出恢复至原来调节的状态。微控制器不用于调节时自 动进入Sleep模式直到用户再次调节时唤醒MCU,做到低功耗控制。
本实验设计的情景照明LED驱动线路设计以白光LED驱动为主,以彩色LED驱动为辅,驱动输出白光LED功率为10W,驱动输出三基色LED功率为3×4W,能满足对彩色情景照明的一般要求。本情景照明的LED驱动线路设置两个主按钮和一个情景模式选择轻触按钮,两个主按钮分别用于主白光LED亮度调节和彩色LED亮度的调节,情景模式选择轻触按键开关用于切换照明情景模式,三个辅按钮用于微调混合色色调或者个人偏好的色调。
1 研制背景及意义
LED具有寿命长、节能、安全、绿色环保、色彩丰富等显著优点,随着科学技术的发展,LED的光效逐年提高,LED照明将成为照明技术的发展主流已成为共识。然而通过调查发现还没有一款LED灯具具有颜色可调的功能而且调光普遍采用电位器调节,能耗大。因此我们研制了一款通过微控制器来达到情景可变、颜色可调的LED节能灯具。
情景式LED节能灯,适应于形势、时代的要求,首先考虑的是高效率,驱动的高效率才能充分体现和发挥LED节能高效的优势,其次驱动线路实现以人为本,按需调亮,在不影响正常照明照度的同时,极大限度地节约能源,保护照明灯具。调光节能,随心所欲极大限度地按需控制能源,在照度和节电率间获得最佳平衡。
情景式LED节能灯可以按照人们的意愿调节LED灯光的色调、色彩,从而可实现单个光源能轻易创造变化的照明情景。夏天天气比较炎热,如果家里的灯光属于暖色调的,无疑给人感觉更加热,从而是人的内心烦躁不安,容易引起发脾气等,而冬天正好相反,由于天气严寒,而家里的灯具属于冷色调的,就会使空间显得更加的冷清,也会影响人的情绪的,LED情景照明可满足人们能随时随心调节灯光色温、色调的需要,创造出一个使人们更舒适的照明环境。
2设计方案
情景照明的LED驱动线路工作于交流220V市电,主电路采用离线式反激降压拓扑结构,隔离的输出方式有利于提高照明灯具的使用及操作安全性。采用低功耗微控制器控制PWM输出,调节电源输出和SN3350的驱动电流大小,实现LED亮度可调颜色可变。当微控制器不用于调节时自动进入Sleep模式,直到用户再次调节时才唤醒,做到低功耗控制。
2.1控制电路
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
图1 控制电路框图
由图1可见,控制部分选取低功耗的单片机作为主控电路的核心,本设计中选取TI公司的LM3S1138微控制器。配置LM3S1138输出四路PWM,TPY279P开关电源的输出电流用于控制主照明LED的亮度,三路SN3350的ADJ控制端用于控制彩灯的颜色和亮度。键盘模块设有一键情景式选择按钮和每一路PWM的调节按钮。
2.2电源和LED驱动部分
图2.电源和驱动电路框架图
由图2可见,通过LM3S1138输出一路PWM控制主电源芯片TNY279P的电压输出,采用光电耦合器隔离避免不必要的干扰。同时低功耗微控制器两路差分AD采样分别采集主电路中的电压和电流,实时监测。当驱动电流不足预先设定的值时自动调节TNY279P的电源输出恢复至原来调节的状态。不但有保护LED的功能同时也做到了智能化调节。
情景照明的LED驱动线路设计以白光LED驱动为主,以彩色LED驱动为辅。驱动输出白光LED功率为10W,驱动输出三基色LED功率为3×4W,三基色可以组合千变万化的绚丽色彩。本情景照明的LED驱动线路设置两个主按钮和一个情景模式选择轻触按钮,以及三个辅助按钮。两个主按钮分别用于主白光LED亮度调节和彩色LED亮度的调节,情景模式选择轻触按键开关用于切换情景模式,三个辅按钮用于微调混合色色调或个人偏好的色调。
3工作原理及性能分析
3.1工作原理
(1)电源电路模块
情景照明LED驱动线路设计,主电路选用PI公司TinySwitch-III系列的一个器件TNY279P,电路结构相对简单,并有较高电源效率。在满功率输出时,电源效率为89%。电路采用反激式转换器模式,隔离输出,保证了使用操作的安全性,电路总输出功率为24W。整流桥选取低压降的肖特基二极管,提高了电路效率。
TNY279P的EN/UV端通过光电耦合器隔离连接至LM3S1138的一路PWM输出同时用AD监测输出主干路上的电流电压值随时通过按钮调节电源输出。
图3.TNY279NP电源电路
(2)LED驱动电路模块
LED驱动采用矽恩公司的SN3350,SN3350 是一款DC/DC 高效率LED 驱动,输入电压为6V~40V,输出电流典型值为330mA,效率高发热少。提供两种封装形式,SOT23-5 封装应用于350mA输出电流,SOT89-5封装应用于700mA 输出电流。本研究选取SOT89-5配置输出电流为350mA。通过反复实验选取合适的外围元件参数最终确定电路如下:
图4.LED驱动电路
(3)核心控制电路:
图5 核心控制部分
控制电路采用TI公司的LM3S1138作为核心控制器,配置四路可调PWM输出和两路差分AD输入。由于主电路中电压高于AD采样的最大值,所以采用运放来调节电压至适当范围,另一路差分AD采集主电路中的电流。当调节LED的亮度时,MCU会记录下此刻回路中的电流,此后不论什么原因导致主电路中电流变化,都会自动调节PWM输出来维持LED亮度不变,不但有保护LED的功能同时也做到了智能化调节。
3.2性能分析
对SN3350驱动电路按图5搭建测试电路,各个外围元件参数见图中标注。用实验电源供给恒压13.5V作为输入,测得数据记录分析如表1-3所示。
图6 四只白光LED串联外围元件参数
表1 四只白光LED串联测试输入参数
输入参数 | 高级输入参数 | ||
电源电压(VIN) | 13.5V | 环境温度 | 25oC |
LED的数目 | 4 | HL延时 | 50ns |
LED正向电压 | 3.4V | LX电压上升时间 | 20.0ns |
二极管正向压降 | 0.30V | LX电压下降时间 | 30.0ns |
当前敏感电阻 | 0.3? | 开关管的开关电阻 | 0.9? |
线圈电感 | 47uH | 封装热阻 | 45oC/W |
线圈电阻 | 0.25? | ADJ引脚电压 | 1.2V |
表2 四只白光LED串联测试输出数据
时间信息 | LED电流信息 | ||
打开时间 | 6.5us | 最大LED电流 | 371.2mA |
关闭时间 | 0.98us | 最小LED电流 | 318.9mA |
占空比 | 0.9 | 峰峰值纹波电流 | 148.3mA |
开关频率 | 125.7K | 平均LED电流 | 344.8mA |
表3 四只白光LED串联测试功率统计
输出功率 | 6.2W | 在二极管的功率损耗 | 26.2mW |
芯片电源电流 | 480.5uA | 检测电阻的功率损失 | 66.3mW |
开关功率损耗 | 345.3mW | 在线圈功率损耗 | 110.3mW |
开关电源损失 | 9.5mW | 理论效率 | 91.9% |
芯片功耗 | 358.4mW | 输入电流 | 329.6mA |
由表1-3的统计结果可见,用SOT89-5封装的SN3350通过更改外围元器件的参数可以使驱动效率达到91.9%,相比SOT23-5封装的SN3350可使驱动电流由以前的330mA提高到350mA,可为本研究选取的LED提供最佳驱动电流,从而达到极佳的照明效果。
5 创新点及应用
本设计有以下创新之处:
(1)采用TNY279P构成PWM恒流控制的开关电源供电效率可达到85%以上且体积小、重量轻、方便安装。
(2)采用Ti公司低功耗微控制器(LM3S1138)控制PWM输出调节电源输出以及SN3350的驱动电流大小实现LED亮度可调、颜色可变,同时一键切换选择情景式照明。当微控制器不用于调节时自动进入睡眠模式(Sleep)直到用户再次调节时才唤醒,做到低功耗控制。
(3)情景照明的LED驱动线路可以按照人们的意愿调节LED灯光的色调、色彩,实现单个光源能轻易创造变化的照明情景。通过驱动线路对不同色彩LED输出的调整,来弥补白光LED其显色性指数(CRI)偏低的问题,使LED照明在白光应用中保持很高的显色指数(CRI),满足人们对高质量灯光照明的需求。
(4)微控制器(LM3S1138)及时采集主电路中的电压和电流当驱动电流不足预先设定的值时自动调节TNY279P的电源输出恢复至原来调节的状态。不但有保护LED的功能同时也做到了智能化调节。
LED是由无毒的材料制成,不像荧光灯含水银会造成污染,同时LED也可以回收再利用.情景式LED节能灯可以按照人们的意愿调节LED灯光的色调、色彩,情景式选择按钮提供七种照明情景。相信情景式LED节能灯,一定可以创造非常好的市场
参考文献
[1] 周志敏,周纪海,纪爱华. LED照明技术与应用电路[M]. 电子工业出版社.2009:125—176
[2] 陈大华. 绿色照明LED实用技术[M]. 化学工业出版社.2009:19—43
[3] 刘胜利. 高亮度LED照明与开关电源供电[M]. 电子工业出版社.2010:67—109
附图(完整电路和实物图)
附部分程序:
控制器是LM3S1138,以后会移植到MPS430上去,听说MPS430的功耗可以设置的很低。
(1)情景式选择:
Void Select ()
{
Int i="0";
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOA);
// 使能LED所在的GPIO端口
GPIOPinTypeOut(GPIO_PORTA_BASE, GPIO_PIN_0|GPIO_PIN_1| GPIO_PIN_2); // 设置LED所在的管脚为输出
SysCtlPeriEnable(KEY_PERIPH); // 使能KEY所在的GPIO端口
GPIOPinTypeIn(KEY_PORT, KEY_PIN); // 设置KEY所在管脚为输入
if (GPIOPinRead(KEY_PORT, KEY_PIN) == 0x00) // 如果按下KEY
{
i++;
GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_0|GPIO_PIN_1| GPIO_PIN_2, i);
if(i>7)
{
i="0";
}
}
SysCtlDelay(10 * (TheSysClock / 3000)); // 延时约10ms
}
GPIOPinWrite 函数说明——向指定管脚写入一个值
a函数原型:
GPIOPinWrite(unsigned long ulPort,
unsigned char ucPins,
unsigned char ucVal)
b参数:
ulPort是GPIO端口的基址。
ucPins是管脚的位组合(bit-packed)表示。
ucVal是写入到指定管脚的值。
c描述:将对应的位值写入ucPins指定的输出管脚。向配置用作输入的管脚写入一个值不会产生任何影响。
(2)深度睡眠模式:
Void Sleep Status ()
{
// 允许Timer1模块在深度睡眠模式下继续工作
SysCtlPeriDSlpEnable(SYSCTL_PERIPH_TIMER1);
// 允许Buzzer所在的GPIO端口在深度睡眠模式下继续工作
SysCtlPeriDSlpEnable(SYSCTL_PERIPH_GPIOG);
// 允许KEY所在GPIO端口在深度睡眠模式下继续工作
SysCtlPeriDSlpEnable(KEY_PERIPH);
// 允许在深度睡眠下外设采用寄存器DCGCn配置时钟
SysCtlPeriClkGating(true);
// 置位DSLPCLKCFG寄存器中的IOSC位,将来进入深度睡眠模式后,系统时钟改由IOSC提供
HWREGBITW(SYSCTL_DSLPCLKCFG, 0) = 1;
// 延时一段时间,此时Timer模块的时钟由PLL提供
SysCtlDelay(2500 * (TheSysClock / 3000));
// 进入深度睡眠,等待按键唤醒,PLL被禁止,Timer模块的时钟改由IOSC/16提供
SysCtlDeepSleep(); // 蜂鸣器发声约150Hz,低沉
}
(3)电压采集:// ADC初始化
void adcInit(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_ADC); // 使能ADC模块
SysCtlADCSpeedSet(SYSCTL_ADCSPEED_500KSPS); // 设置ADC采样速率
ADCSequDisable(ADC_BASE, 1); // 配置前先禁止采样序列
// 采样序列配置:ADC基址,采样序列编号,触发事件,采样优先级
ADCSequConfig(ADC_BASE, 1, ADC_TRIGGER_EXTERNAL, 0);
// 采样步进设置:ADC基址,采样序列编号,步值,通道设置
ADCSequStepConfig(ADC_BASE, 1, 0, ADC_CTL_D | // 差分输入采样
ADC_CTL_CH0); // 差分通道0:ADC0和ADC1
ADCSequStepConfig(ADC_BASE, 1, 1, ADC_CTL_D | // 差分输入采样
ADC_CTL_CH1 | // 差分通道1:ADC2和ADC3
ADC_CTL_END |
ADC_CTL_IE);
ADCIntEnable(ADC_BASE, 1); // 使能ADC中断
IntEnable(INT_ADC0); // 使能ADC采样序列中断
IntMasterEnable(); // 使能处理器中断
ADCSequEnable(ADC_BASE, 1); // 使能采样序列
}
Void DataGet ()
{
iVal = adcSample(); // ADC采样
iVal = iVal - 0x1FF; // 转换成差分数值
iVal = (iVal * 3000) / 1024; // 转换成电压值
sprintf(cBuf, "ADC0 = %d(mV)\r\n", iVal); // 输出格式化
SysCtlDelay(1500 * (TheSysClock / 3000)); // 延时约1500ms
}
用户847065 2013-6-22 15:33
用户174417 2010-5-5 21:50