LED照明闭环控制系统.docx
- 文档编号:4841161
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:10
- 大小:299.80KB
LED照明闭环控制系统.docx
《LED照明闭环控制系统.docx》由会员分享,可在线阅读,更多相关《LED照明闭环控制系统.docx(10页珍藏版)》请在冰豆网上搜索。
LED照明闭环控制系统
基于TLC1543LED照明闭环控制设计
摘要:
设计了一个光强采集系统,能实时采集环境光线强度;根据环境光线强度,自动调调节亮度,光强采集采用光敏电阻,采用12个3mm白光LED,组成LED闭环控制照明系统。
LED采用电流驱动,电流步距可调。
通过AD采集光线强度,通过单片机I/O实现PWM功率控制。
关键字:
光敏电阻、LED、AD、PWM
0、引言
随着社会科学技术发展,尤其电子技术发展,给人们生活带来了方便和经济。
现在从单片机控制技术发展到ARM控制技术,但是生活中好多领域仍然有选用单片机技术来开发产品,因为它技术成熟,而且开发成本比较廉价,这使开发部门对单片机向往。
本文所设计是用单片机来控制LED灯亮度变化。
1、LED照明闭环控制系统原理和原理图
LED照明闭环控制系统是通过光敏电阻来采集光线强度,来改变自身电压,从而改变AD输入电压值,AD输出信号来控制单片机,单片机根据AD输出信号进行处理,输出PWM信号来控制三极管基级电压,从而三级管被导通,这个时候电流流经12个LED,把全部点亮,但是亮度强度,由光线强度决定,流经电流通过PWM信号输出决定。
系统电源为+5V。
下图为LED照明闭环控制系统原理图:
LED照明闭环控制系统原理图
2、硬件部分设计
2.1硬件组成
LED照明闭环控制系统硬件主要由A/D转换控制器、三极管、12个
LED、单片机、光敏电阻、MAX232等组成。
2.2元器件选择
⑴光敏电阻
光敏电阻器是利用半导体光电效应制成一种电阻值随入射光强弱而改变电阻器;入射光强,电阻减小,入射光弱,电阻增大。
光敏电阻器一般用于光测量、光控制和光电转换(将光变化转换为电变化)。
常用光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成。
光敏电阻器阻值随入射光线(可见光)强弱变化而变化,在黑暗条件下,它阻值(暗阻)可达1、1OM欧,在强光条件(1OOLX)下,它阻值(亮阻)仅有儿百至数千欧姆。
光敏电阻器对光敏感性(即光谱特性)与人眼对可见光(0.4〜0.76)Um响应很接近,只要人眼可感受光,都会引起它阻值变化。
设计光控电路时,都用白炽灯泡(小电珠)光线或自然光线作控制光源,使设计大为简化。
为了设计方便,光敏电阻统一为5506型号。
⑵三极管
三极管是一种控制元件,主要用来控制电流大小,以共发射极接法为例(信号从基极输入,从集电极输出,发射极接地),当基极电压
UB有一个微小变化时,基极电流IB也会随之有一小变化,受基极电流IB控制,集电极电流IC会有一个很大变化,基极电流IB越大,集电极电流IC也越大,反之,基极电流越小,集电极电流也越小,即基极电流控制集电极电流变化。
但是集电极电流变化比基极电流变化大得多,这就是三极管放大作用。
IC变化量与IB变化量之比叫做三极管放大倍数B(P=AIC/AIB,A表示变化量。
),三极管放大倍数P一般在儿十到儿百倍。
三极管在放大信号时,首先要进入导通状态,即要先建立合适静态工作点,也叫建立偏置,否则会放大失真。
在三极管集电极与电源之间接一个电阻,可将电流放大转换成电压放大:
当基极电压UB升高时,IB变大,IC也变大,IC在集电极电阻RC压降也越大,所以三极管集电极电压UC会降低,且UB越高,UC就越低,AUC=AUBo本文设计要求,LED被电流驱动根据设计原理,本文采用三极管来驱动12个LED,型号统一为8550PNP管。
(3)A/D转换
A/D转化电路。
亦称“模拟数字转换器”,简称“模数转换器”。
将模拟量或连续变化量进行量化(离散化),转换为相应数字量电路。
A/D变换包含三个部分:
抽样、量化和编码。
一般情况下,量化和编码是同时完成。
抽样是将模拟信号在时间上离散化过程;量化是将模拟信号在幅度上离散化过程;编码是指将每个量化后样值用一定二进制代码来表示。
d/a转换器是把数字量转换成模拟量线性电路器件,已做成集成芯片。
由于实现这种转换原理和电路结构及工艺技术有所不同,因而出现各种各样d/a转换器。
目前,国外市场已有上百种产品出售,他们在转换速度。
转换精度。
分辨率以及使用价值上都各具特色。
d/a转换器主要参数:
衡量一个d/a转换器性能主要参数有:
(1)分辨率
是指d/a转换器能够转换二进制数位数,位数多分辨率也就越高。
(2)转换时间
指数字量输入到完成转换,输出达到最终值并稳定为止所需时间。
电流型d/a转换较快,一般在儿ns到儿百ns之间。
电压型d/a转换较慢,取决于运算放大器响应时间。
(3)精度
指d/a转换器实际输出电压与理论值之间误差,一般采用数字量最低有效位作为衡量单位。
(4)线性度
当数字量变化时,d/a转换器输出模拟量按比例关系变化程度。
理想d/a转换器是线性,但是实际上是有误差,模拟输出偏离理想输出最大值称为线性误差。
a/d转换器功能是把模拟量变换成数字量。
由于实现这种转换工作原理和釆用工艺技术不同,因此生产出种类繁多a/d转换芯片。
a/d转换器按分辨率分为4位。
6位。
8位。
10位。
14位。
16位和bed码31/2位。
51/2位等。
按照转换速度可分为超高速(转换时间W330ns),次超高速(330^3.3us),高速(转换时间
3.3'333us),低速(转换时间>330us)等。
a/d转换器按照转换原理
可分为直接a/d转换器和间接a/d转换器。
所谓直接a/d转换器,是把模拟信号直接转换成数字信号,如逐次逼近型,并联比较型等。
其中逐次逼近型a/d转换器,易于用集成工艺实现,且能达到较高分辨率和速度,故目前集成化a/d芯片采用逐次逼近型考多;间接a/d转换器是先把模拟量转换成中间量,然后再转换成数字量,如电压/时间转换型(积分型),电压/频率转换型,电压/脉宽转换型等。
其中积分型a/d转换器电路简单,抗干扰能力强,切能作到高分辨率,但转换速度较慢。
有些转换器还将多路开关。
基准电压源。
时钟电路。
译码器和转换电路集成在一个芯片内,已超出了单纯a/d转换功能,使用十分方便。
由于本文设计需要,釆用TLC1543作为A/D转换。
⑷串口芯片MAX232
MAX232产品是由徳州仪器公司(TI)推出一款兼容RS232标准芯片。
该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。
该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-VTTL/CMOS电平。
每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。
根据需要本设计选用N1AX232作为串口芯片,使之来通信。
⑸单片机SST89E516RD
单片机到底是什么呢?
就是一个电脑,只不过是微型,麻雀虽小,五脏俱全:
它内部也用和电脑功能类似模块,比如CPU,内存,并行总线,还有和硬盘作用相同存储器件,不同是它这些部件性能都相对我们家用电脑弱很多,不过价钱也是低,一般不超过10元即可
用它来做一些控制电器一类不是很复杂工作足矣了。
我们现在用全自动滚筒洗衣机,排烟罩VCD等等家电里面都可以看到它身影!
它主要是作为控制部分核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要是有较强抗干扰能力,较低成本,这也是和离线式计算机(比如家用PC)主要区别。
单片机是靠程序,并且可以修改。
通过不同程序实现不同功能,尤其是特殊独特一些功能,这是别器件需要费很大力气才能做到,有些则是花大力气也很难做到。
一个不是很复杂功能要是用美国50年代开发74系列,或者60年代CD4000系列这些纯硬件来搞定话,电路一定是一块大PCB板!
但是如果要是用美国70年代成功投放市场系列单片机,结果就会有天壤之别!
只因为单片机通过你编写程睜可以实现高智能,高效率,以及高可靠性!
由于单片机对成本是敏感,所以目前占统治地位软件还是最低级汇编语言(近儿年,C语言也开始广泛被应用),它是除了二进制机器码以上最低级语言了,既然这么低级为什么还要用呢?
很多高级语言已经达到了可视化编程水平为什么不用呢?
原因很简单,就是单片机没有家用计算机那样CPU,也没有像硬盘那样海量存储设备。
一个可视化高级语言编写小程序里面即使只有一个按钮,也会达到儿十K尺寸!
对于家用PC硬盘来讲没什么,可是对于单片机来讲是不能接受。
单片机在硬件资源方面利用率必须很高才行,所以汇编虽然原始却还是在大量使用。
一样道理,如果把巨型计算机上操作系统和应用软件拿到家用PC上来运行,家用PC也是承受不了。
目前最常用单片机为MCS-51,是由美国INTEL公司(生产CPU英待尔)生产,89C51是这儿年在我国非常流行单片机,它是由美国ATMEL公司开发生产,其内核兼容MCS-51单片机。
本文采用型号为SST89E516RD单片机输出信号来控制LED亮度。
3、软件部分设计
本文设计所涉及到软件就是对A/D转换输出信号处理从而来控制LED亮度变化。
程序代码如下:
/*关于频率和占空比确定,对于12M晶振,假定PWM输出频率为1KHZ,这样定时中断次数*
*设定为C=10,即0.OlmS中断一次,则THO二FF,TLO二F6;由于设定中断时间为0.01ms,这样*
*可以设定占空比可从1-100变化。
即0.01ms*100=lms
*/
%tx■丄"■丄"■丄"■丄"WX
ttdefineucharunsignedchar
■"■丄"■"■"■丄"■
*%^xkL^■”■丄"■>■["
*THO和TLO是计数器0高8位和低8位计数器,计算办
法:
TLO=(65536-C)%256;*
*TH0二(65536-0/256,其中C为所要计数次数即多长时间产生一次中断;TM0D是计数器*
*工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数
脉冲为65536,最长时*
*间为lms*65536二65.536ms
*
■丄"■丄"■卜■丄"■丄"■丄"■丄"■卜■丄"■丄"■“■卜■丄"■丄"■丄"■丄"■“■丄"■丄"■丄"■丄"%fx
%t^%fx%L^■卜%Lz%tz%fx■丄"%L^%fx
^defineV_TH0OXFF
ttdefineV_TLO0XF6
^defineV_TMOD0X01
^include<1602shiwu・h>ftinclude
ttdefineSUM20ttdefineCSPl_7
ftdefineCLKPl_4
ftdefineDINPl_5
ttdefineSDOPl_6
//增加键
//减少键
/*系统初始化函数*/
ttdefineEOCPl_3sbitSI二P2"4;sbitS2二P2"5;sbitS3二P2"2;
voidinit_sys(void);voidDelay5Ms(void):
voidtimerO(void):
unsignedcharZKB1;
//sbitcs=P3_0:
//sbitrd=P31:
//sbitwr二P33:
//sbitwr二P3_3;
//sbitp=Pl_l;
uchargetdata;
ucharcodetable[]二{"0123456789"};
uinttmpl,tmpO;
floattest;
uintTLC_1543_addr(ucharaddr)
{
uintdate^out^O;
uchark:
uchari;
ucharj;
CLK二0;
CS二0;
for(i二0;i<4;i++)
DIN二(bit)(addr&0x08);
CLK=1;
CLK=0;
addr<<=l;
}
for(j=0;j<6;j++)〃填充6个CLOCK
{
CLK二1;CLK二0;
}
CS=1;
mDelay(5);
CS=0;〃等待AD转换
mDelay(5);
for(k=0;k<10;k++)
date_out<<=l;
if(SDO)date_out+=1;
CLK=0;
}
return(date_out);
}
/*voidstart()
{
wr=l;//mmDelay(100);
wr=0;//mmDelay(100);
wr=l;//mmDelay(100);
}*/voiddisplay_num(unsignedlongintnumx,uintx)
{
WriteChar(table[numx/10000],x,0);//?
?
WriteChar(table[(numx%10000)/1000J,x,1);//?
?
WriteChar(table[((numx%10000)%1000)/100],x,2);//?
?
WriteChar(tablet(((numx%10000)%1000)%100)/10],x,3);//?
?
WriteChar(table[(((numx%10000)%1000)%100)%10],x,4);//?
?
WriteString(z,mV",x,5);
}
charflag;
voiddelayms(unsignedcharms);
voiddelay(unsignedchart);
voidmain(){uinti;
unsignedlonginttmp;
PO二0;
SetCur(NoCur);
whi1e
(1)
{tmpl+二TLC_1543_addr(0x01);//取20次AD转换结果,求平均值
//i--;
//if(i==0)
//{
//tmpl二tmpl/SUM;
tmp=tmp1*49999/1023;
//tmprMtmp;
tmpl二0;
i=SUM;
//EOC「EOC;
//}
//display_num(tmp,1);
//if(!
EOC)
//{
//i=SUM
tmpO+=TLC_1543_addr(0x00);//取50次AD转换结果,
求平均值
//i--;
//if(i==0)
//{
//tmpO^tmpO/SUM;
tmp二tmp0*49999/1023;
//tmp二tmp;
tmpO^O;
i=SUM;
display_num(tmp,1);
WriteString(〃ADC",0);
//}
//}
//EOE;
/*对占空比值限定范围*/
if(ZKB1>99)ZKB1二1;
if(TLC_1543_addr(OxOO)〈二50)ZKB1二5;
if(50 ZKB1二20; if(204 ZKB1二40; if(408 ZKB1二50; if(612 ZKB1二70; if(816 ZKB1二80; if(612 if(1000 *函数功能: 对系统进行初始化,包括定时器初始化和变量初始化*/voidinit_sys(void)/*系统初始化函数*/ { /*定时器初始化*/ TM0D二V_TM0D;//TO定时方式1 TH0=V_TH0; TL0=V_TL0; TRO=1;//启动TO ETO=1;//允许TO中断 EA=1;//开中断 } //延时 voidDelay5Ms(void) unsignedintTempCyc=1000; while(TempCyc--); } /*中断函数*/ voidtimerO(void)interrupt1 { staticucharclick=0;/*中断次数计数器变量 */ THO=V_THO;/*恢复定时器 初始值*/ TLO=V_TLO; ++click; if(click>=100)click=0; if(click<=ZKBl)/*当小于占空比值时输出低电平,高于时是 高电平,从而实现占空比调整*/ S3=0; else S3=l; } 4、结论 通过本文设计能让我更进一步对相关硬件了解和掌,特別是三极管电流驱动,这个三极管驱动不仅仅只适用于驱动12个LED灯,而且也可以用于其它场合,比如电动助力转向系统中就利用桥式三级管电流驱动电动机,从而达到助力转向。 由于水平有限,可能所设计系统存在问题,今后需要做进一步完善。 参考文献: [1]周志敏,周纪海,纪爱华LED驱动电路设计与应用.北京: 人民邮电出版社,2006. [2]周志敏,纪爱华,白光LED驱动电路设计与应用实例.人民邮电出版社,2009.9 [3]武庆生,单片机及其应用,电子科技大学出版社,2000.10.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LED 照明 闭环控制 系统