智能调光LED灯
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
2014年湖北省电子设计大赛暑期
培训
焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载
智能调光LED台灯
第六组
组 员:张建勋,甘杰,原子桢
指导老师:邵建设,谢伟
摘要
本智能调光LED台灯有自动和手动两种模式可以选择,自动模式下,LED灯可以通过环境光线的强弱来改变亮度;手动模式下,有三级档位可以选择,产生三种模式的亮度,并可在液晶屏上进行显示。采用TI公司的电源芯片TPS40210DGQR作为LED灯的供电芯片,电源采用直流稳压电源的12V输出,通过MSP430F5438A单片机输出PWM来控制LED灯亮度,通过ADC12模块进行AD转换,利用G12864显示屏实时显示当前的模式以及亮度。选用TTP224触摸芯片来选择档位和模式,最终可实现LED灯的智能控制。
关键词:TPS40210;PWM;AD转换;TTP224
目录
目录................................................................ 3 1
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
设计及论证 .................................................... 4
1.1电源芯片的选择 .............................................. 4
1.2显示屏的选择 ................................................ 4 2理论分析与计算 .................................................... 5
2.1电路分析 .................................................... 5
2.2功率及PWM的调整 ............................................ 5 3单元电路设计与计算 ................................................ 6
3.1电源部分 .................................................... 6
3.2 LED驱动部分 ................................................ 7
3.2.1电路参数的计算 ......................................... 8 4程序设计 ......................................................... 11
4.1单片机控制及扩展模块 ....................................... 11
4.2程序流程图 ................................................. 11
4.3程序 ....................................................... 11 5系统测试 ......................................................... 12
5.1测试波形 ................................................... 12
5.2问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
测试及误差分析 ......................................... 12 6 结论 ............................................................ 14 7参考文献 ......................................................... 14 附录............................................................... 15
1方案设计及论证
1.1方案总体设计
从实际出发,智能LED台灯采用直流稳压电源供电,LED功率可能较大,所以需要升压芯片来升压。可以通过单片机产生PWM来控制LED灯的亮度,再由触摸屏选择模式和档位,液晶屏可以实时显示当前模式和光强。系统框图如下:
直流稳压电源升压芯片LED
PWM
触摸按键单片机液晶显示 1.2电源芯片的选择
方案一:采用TI公司推荐电源芯片TPS40210DGQR
优点:TPS40210是宽输入电压(4.5-52V)电流模式异步升压控制器。具有可编程软启动特性,带自动重启的过流保护和可编程的振荡频率。可以用于LED照明、电池电源系统中,带使能端,方便单片机控制。
缺点:价格较贵,芯片引脚小,不容易焊接。
方案二:采用TI公司推荐电源芯片TPS7A4001DGNR
TPS7A4001DGNR是降压线性电源,具有7V~100V输入范围。单输出优点:
低压差线性电压调整器,输出电压1.175V~90V,带使能端,可以用于LED照明电源中。
缺点:同样是TI公司芯片,价格昂贵,且由于是降压芯片,输入电压不容易设计。
方案三:采用PT4115电源驱动芯片
优点:集成度高、性能较好、应用电路简单、价格较平,性价比有优势。
缺点:没有过流保护,DIM引脚复用可能导致控制精度不够。
总结:综上所述,由于TPS40210DGQ是升压电源芯片,具有宽电压的输入范围,输入电压容易调节,且具有过流保护功能,使能端方便单片机控制,因此采用方案一。
1.3显示屏的选择
方案一:选用G12864液晶屏
优点:可显示中文字符,显示范围较宽。
缺点:只能依靠背光显示。
方案二:选用LCD1602液晶屏
优点:字符型液晶,可以显示字符。
缺点:不能显示中文。
2理论分析与计算
2.1电路分析
由于TPS40210芯片具有使能端和PWM输入口,因此可以用单片机来控制输出电流的平均大小。TPS40210输出电流是一个恒流700mA,恒流状态下,LED灯不会产生色差。通过PWM对电流进行调整,一段时间内关闭电流,从而改变LED灯的亮度,实现了多档调光。在自动模式下,选用了较大阻值光敏电阻,通过与另外一个电阻串联,由串联分压的原理,可以得到在分压电阻上的电压,从而可以推得光敏电阻上的电压,送到单片机进行AD转换,以实现自动调光。 2.2功率及PWM的调整
虽然TPS40210DGQR具有宽电压输入特性,但较低的电压输入较高的负载会给芯片带来很大压力,容易烧坏芯片,因此采用12V输入。LED灯的输出功率需要达到1W以上,所以选用了10颗LED,输出功率达到了10W,在实验过程中发现,不同的输入PWM频率会造成LED灯闪烁。通过TPS40210的数据手册可以看到,COMP引脚是TPS40210芯片的误差放大器的输出,在COMP引脚和FB引脚之间会形成一个环路补偿网络,而原理图外部同样外接了一个反馈回路,输入的信号会和COMP引脚的信号相与,最终形成的信号送给TPS40210。在用示波器观察时,发现COMP引脚的输出波形达到了33KHz(图1 COMP口波形)。而PWM输入频率不应超过COMP口的20,。因此,单片机产生的PWM频率也达到了30KHz,由于波形一致,相与得到的结果可以送给芯片使其驱动LED。
3单元电路设计与计算
3.1电源部分
智能LED台灯的驱动电源我们采用直流稳压电源。直流稳压电源是以220V工频电压供电,通过变压器降压,二极管整流,电容滤波,三端稳压器件进行稳
,?9V,?5V六个输出。二极管我们采用1N4001二极管,压,从而产生?12V
三端稳压器件分别采用LM78xx系列和LM79xx系列。
变压器分别产生一个,12V和,12V的输出,在?12V正半周期,二极管D1,D2导通,会产生一个稳定的正向直流电压;在负半周期,二极管D3,D4导通,
图1 COMP口波形
会产生一个稳定的负向直流电压。正负电压输出后,会给滤波电容C4,C7充电,当C4,C7充满之后,C4和C7会缓慢的放电,从而可以减小输出电压的纹波。C4,C7的取值越大,输出的纹波越小。在这里我们选择1000μF。二极管C1,C6的作用则是提高电源抗瞬间脉冲干扰的能力的作用,当电网电压或者负载突变的时候由C2提供充电电流,防止输出电压产生大的瞬间跳变。然后再通过三端稳压器进行稳压,从而产生一个稳定的输出电压。
滤波电容的选择。输出不同则滤波电容相应不同,而且由于是串联稳压电源,所以?12V的输出芯片LM7812和LM7912压力会很大。所以?12V我们选择1000μF电容,?9V的输出选择470μF,?5V的输出选择220μF,电容的材质我们采用铝电解电容。
电路原理图如下:
U1LM7812U9LM7809U10LM780513+12V13+9V13+5VVinVoutVinVoutVinVoutDDDT2NNND1D2GGGFU11N40011N40011C1+12VACC2C25C26222C3C27C31C40.1u/25V0.1u/25V0.1u/25V0.1u/25V470u/25V220u/25V220u/25V1000u/25V+12VACaL2GND-12VACNGNDbPEC5C28C29C6C73C8C30C32470u/25V220u/25V220u/25V0.1u/50V1000u/25V0.1u/25V0.1u/25V0.1u/25V111-12VACD3D4220V/+-12V 50Hz1N40011N400123-12V23-9V23-5VDDDVinVoutVinVoutVinVoutNNNGGGJ1U2U11U12LM7912LM7909LM7905+12V1GND2-12V3
+-12VJ2+9V1GND2-9V3
+-9V
J3+5V1GND2-5V3
+-5V
图2 电源电路
3.2 LED驱动部分
LED驱动电路采用TPS40210芯片。电路输入电压采用输入。通过旁路12V
电容进行滤波,然后通过MOS管的打开关断模式来给电感充放电。MOS管开关频率越快,则电压升的越高。通过TPS40210芯片来控制MOS管开关频率,将得到的输出和设定的频率进行比较,最终使之趋于一致。
电路原理图如下:
D1L1VCC
T_LED10mHB2100C1C2C30.1uF10uF10uFC4C5Q12.2uF2.2uFGDRV_1R1D2MOSFET-N3.01B2100GNDGNDGNDR2R3GNDGNDISNS_1GND1K15m
图3 升压电路
R4
402K
U1C6C7100pF110100pFRCVINGNDC8C90.1uF29BP100pFSSBPGNDP7C10100pFDIS/EN38GDRVDIS/ENGDRV1C11R5100pFCOMP47T_GDRVISNSCOMPISNS14.3KR6R7C12LEDCFB_1FB56R8FBGND100pF1K10K30.1K
11TPS40210GNDR9P8P9GND0.36T_COMPT_ISNS1P10D3D4T_FBR10BP_1GND1KDiode 1N4001
C13100pFQ2COMP_1MOSFET-NGND
GND
图4 TPS40210
3.2.1电路参数的计算
输入电压: V,12V(8V,V,14V)ININ
最大输入功率: P,20WIN
V负载采用10只压降为2.4LED串联,为了避免LED长时间超负
荷工作,确定输出电流为:
I,250mA,I,2AOUTmax输出电压:
V,24V(12V~50V)OUT
开关频率:,结合特征曲线,选取fkHz,400SW
, 。 Rk,,400CpF,100TT
占空比估算:
VVV,,24140.5VVV,,OUTINFD(max) 42.8%D,,,min240.5VVVV,,OUTFD
VVV,,2480.5VVV,,OUTINFD(min) 67.3%D,,,max240.5VVVV,,OUTFD
峰间最大脉冲电流限制在: 30%
I2Aout(max)0.30.31.05A I,,,,,lrip(max)110.428,,D
电感大小 :
V1141VINLDuH,,,,,,,0.42814 minIfAkHz1.05400(max)lripsw
最小饱和电流:
I121OUT(max) 0.7186.5IIA,,,,,,,LpeakRIPPLE(Vinmin)1210.6732,,DMAX
15~20,H这里使用自己的绕的电感,饱和电流大概为6.5A。 整流二极管的选择:正向导通肖特基二极管作为整流二极管,以
减少功耗和提高效率
80%这里降额使用,在二极管上的最小击穿电压为:
VOUT(MAX)1.255062.5VVV,,,, (BR)R(min)0.8
100V为了保险起见选择最大反向击穿电压为,最大整流电流为
2A的B2100肖特基二极管。
输入、输出电容的选择:输出电容的选择必须满足输出纹波和瞬
态响应的要求。
ID,120.6731A,OUT CuF,,,,,,885.3OUTVfVkHz5400(ripple)OUTSW
I11.02AL(ripple) 7CuF,,,,IN4460400,,,VfmVkHzIN(ripple)SW
2.2,F4.7,F实际电容大小在理论计算上有所调整 取一个和COUT
10,F对地并联,输入电容 则是取两个。 CIN
过流保护和电流检测:
V120mVOCP(min) 15.6Rm,,,,ISNS1.1()1.16.50.5,,,,IIAALDrive(peak)
0.1,D0.10.428,MINCpF,,,107 IFLTfRkHzk,,,4001SWIFLT
100pF取, 取。 这里15,RCISNSIFLT
开关MOS管的选择:
11PPVAW,,,,,,,,(1)242(1)2.5 DISSout(total),0.95
考虑到实际情况,直接选用已有的CSD195535kcs N沟道MOS
管。
误差放大器补偿电路参数:
K,g,Z(f),19.1AV,0.146,,2.8COMoutco
11CpF,,,74.2HF,,,,,,,fRkHzk10103014.3LFB
11CpF,,,14.8HF,,,,,,,GBWRMHzk1.514.3FB
1010CnF,,,3.7 FB,,,,,,,fRkHzk223014.3LFB
100pF这里取, 取。 3.3nFCCHFFB
输出电流采样电阻:
VmV700FB R,,,,3IFBImA250OUT
4程序设计
4.1单片机控制及扩展模块
通过单片机产生PWM信号,控制LED灯的亮度强弱。通过触摸按键设置中断,
进而可以切换手动和自动模式,手动模式下触摸按键可以切换档位。然后可通过
G12864显示屏实时对当前模式以及光强进行显示。 4.2程序流程图
开始
系统初始化
当前模式
手动模式自动模式
强光中强柔和弱光
结束
图5 流程图
4.3程序
见附录。
5系统测试
图7 FB 图6 ISNS 5.1测试波形
接通led灯载,测试芯片FB口(图7 FB),可以看到比较平稳的波,说明升压电路正常工作,进行正常的充放电过程。测试MOS管控制口(错误~未找到引用源。错误~未找到引用源。),可以看到频率比较高的脉冲波形,而且波形基本稳定,说明MOS管工作很稳定。测试PWM口(错误~未找到引用源。错误~未找到引用源。),可以看到频率很高并且很有规律的脉冲波,说明芯片内部输出很正常,脉冲波符合要求。测试芯片ISNS口(图6 ISNS),高次谐波和一些频率高的干扰波已经滤去,内部比较器正常工作没有出现过流保护现象。从以上一些图可以看出,经过系统的测试,本次设计基本符合要求,芯片各个口都正常的进入工作,LED灯载在很宽的频域范围内正常工作。
5.2问题测试及误差分析
本次实验出现了一些问题,以下是解决方案。
图11 负载输出 图8 空载输出
由上图可以看出当接入负载时电压被拉低,升压电路未进入正常工作,MOS管有很长一段时间没有进入工作状态,电压输出极不稳定。通过对现象分析,发现MOS管之所以没有进入工作状态是由于芯片进入保护状态对其没有控制抑制(即对其没有高低电平的输出),因此可以排除升压电路的干扰问题,接下来转
图10 负载FB&GDRV 图9 空载FB&GDRV
向对芯片本身的分析。
由上图可以看出证实了是芯片本身或芯片外载电路出现了问题。
由左图可以看出芯片是有输出,
也就可以排除芯片可能被损坏,技术
手册显示,TPS40210本身具有过流
保护功能,所以问题应出在ISNS口。
图12 空载FB&GDRV
图13 COMP&GDRV
图15空载ISNS&GDRV 图14负载ISNS&GDRV
从以上空载ISNS与负载ISNS图,可以看出电路充放电过程是正常的,虽然
效果。而且从波形来看,芯片有相对较长的MOS管工作也正常但是并没有达预期
一段时间没有工作。从芯片内部图来看, ISNS口有一个比较器,当ISNS口输入超过芯片限定电流时就会使芯片进入保护状态(即过流保护)。ISNS口电容的大小会影响滤波的效果,在原电容两端并联一个电容之后再去检测波形,发现MOS管工作所占的时间有了很大的改变。这可能是因为电容量还是不够,ISNS口内部电路还是会让芯片进入过流保护状态。再次并联二个电容(这里值得注意的是,以上所并的电容都是瓷片电容,因为对于一些高次谐波电解电容无法滤掉),会发现MOS管很有规律的进入了工作状态。如上(图14负载ISNS&GDRV)。由于MOS管开启电压一般为8V,而430单片机输出口只有3.3V,所以LED灯会不亮。用三极管来代替MOS管之后。LED灯开始工作。用信号发生器产生一个30KHz脉冲波,改变占空比来控制LED的亮度。最后测定LED占空比工作范围为14%—51%的时候,LED灯载工作正常并且会随着占空比的增大而渐暗。 6 结论
本智能调光LED灯可以实现要求的功能。通过信号发生器模拟,可以最大限度的避免误差的产生。在手动模式下,由PWM对TPS40210输出开关频率进行控制,可以控制LED灯亮度的大小。TPS40210芯片可以对电路产生过流保护作用,电流过大,TPS40210将不会工作。在自动模式下,由光敏电阻阻值大小变化产生中断信号送给单片机,单片机处理之后选择相应的输出。AD转换模块可以实时的显示当前的模式和光强。LED灯的输出功率可达到10W,满足了日常生活的基本要求。自动模式下更能够节能,最大限度的突出了环保的意识。在LED灯主体结构的材料选取上,采用泡沫作为支架,更能体现环保的主题。 7参考文献
[1] TPS40210_datasheet.TEXAS INSTRUMENTS.2008
[2] 曹磊.MSP430单片机C程序设计与实践[M].北京:北京航空航天大学出版社,2007.
[3] 沈建华,杨艳琴,翟小曙.MSP430系列16位超低功耗单片机原理与应用[M].
北京:清华大学出版社,2004.
[4] 谢兴红,林凡强,吴雄英.MSP430单片机基础与实践[M].北京:北京航空航
天大学出版社,2008.
附录
#include"msp430f5438a.h"
#include"Clock.h"
#include "lcd.h"
#include"Port.h"
/*********************************
软件延时
*************************************/
#define CPU_F ((double)16000000)
#define delay_us(x)
__delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
/***************************************
***************************************/
#define uint unsigned int
#define PWM BIT2
unsigned char lcd1[]={"智能调光LED"};
unsigned char lcd2[]={"模式选择:"};
unsigned char lcd3[]={"光强:"};
unsigned char lcd4[]={"第六小组作品"};
uint i,z_b,n=0,m=0;
uint light;
void int_adc()
{
ADC12CTL0 = ADC12SHT02 + ADC12ON; // Sampling time, ADC12
on
ADC12CTL1 = ADC12SHP + ADC12SSEL0_L; // Use sampling
timer,convertion clk srouce select ACLK
ADC12IE = 0x01; // Enable interrupt
ADC12CTL0 |= ADC12ENC;
P6SEL |= 0x01; // P6.0 ADC option
select
}
void aa()
{
if(light>3000)
{
TA0CCR1=249;
hanzi_Disp(2,3,"弱光");
}
if(light<=3000&&light>1800)
{
TA0CCR1=196;
hanzi_Disp(2,3,"柔和");
}
if(light<=1800&&light>1000)
{
TA0CCR1=154;
hanzi_Disp(2,3,"中强");
}
if(light<=1000) {
TA0CCR1=80;
hanzi_Disp(2,3,"强光");
}
}
void int_pwm()
{
P1SEL |=PWM;
P1DIR |=PWM;
TA0CCR0 =530;
TA0CCTL1 =OUTMOD_7;
TA0CTL |=TASSEL_2+MC_1; }
void anjiang()
{
if(n==0)
{
hanzi_Disp(1,5,"手动");
switch(m)
{
case 0:TA0CCR1=80;hanzi_Disp(2,3,"强光");break;
case 1:TA0CCR1=154;hanzi_Disp(2,3,"中强");break;
case 2:TA0CCR1=196;hanzi_Disp(2,3,"柔和"); break;
case 3:TA0CCR1=249;hanzi_Disp(2,3,"弱光");break;
}
}
if(n==1)
{
hanzi_Disp(1,5,"自动");
ADC12CTL0 |= ADC12SC; // Start
sampling/conversion
aa();
}
}
void main()
{
WDTCTL =WDTPW+WDTHOLD;
Init_CLK();
Init_Port();
int_pwm();
int_adc();
lcd_init();
hanzi_Disp(0,0,lcd1);
hanzi_Disp(1,0,lcd2);
hanzi_Disp(2,0,lcd3);
hanzi_Disp(3,0,lcd4);
_EINT(); //中断使能
while(1)
{anjiang();}
}
#pragma vector=PORT1_VECTOR __interrupt void port_1(void)
{
//P5DIR|= BIT7; //开蜂鸣器
//P5OUT^= BIT7;
if(P1IFG&BIT0)
n=!n;
if(P1IFG&BIT1)
{
m++;
if(m>3)m=0;
}
P1IFG &= ~BIT0;
P1IFG &= ~BIT1;
}
#pragma vector = ADC12_VECTOR
__interrupt void ADC12_ISR(void) {
light= (uint)(3.3/4095*ADC12MEM0*1000); }