灯光控制调节系统()_第1页
灯光控制调节系统()_第2页
灯光控制调节系统()_第3页
灯光控制调节系统()_第4页
灯光控制调节系统()_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、灯光控制调节系统邵慧敏 贾妍妍 刘明宇(哈尔滨工业大学)指导教师:王立欣 随着经济的高度发展,人们对所处的生活环境的要求也越来越高。我国的申奥主题就有“绿色奥运”之说。本项目的研究就是基于人们生存的光环境的“绿色”所开展的。紧扣能源节约与健康的主题。能源与健康是当代社会的几大热门话题之一。节约能源,已经迫在眉睫。环顾我们的周围,能源浪费现象十分严重。就拿我们十分熟悉的校园来说,大家肯定都留心到了这些现象:教室时常是不分白昼黑夜的亮着灯;宿舍断电时,我们常常忘了关掉电源。等到再次来电时,我们又常常不在宿舍,此时灯却依旧亮着,而当时的光线常常不需要开灯。这样不仅浪费电,而且也会缩短灯泡的寿命;另外

2、,我们有时会因光线不好而开灯,可过了一会儿,当光线好起来时,我们又因手头的事不能停下而无法去关灯,这样也导致了能源的浪费。不良的光源会在不知不觉中对眼睛造成伤害。太强或太弱的光对眼睛都是有害的。大量研究表明学生的近视和长期应用不科学照明光源有直接关系。所以一个好的光环境尤为重要。鉴于以上的分析,我们设计了这个便携式的灯光控制调节系统,它与灯泡相连便构成光控电灯。它的意义在于:使用者可通过自己设置的光强通过本系统使室内达到恒定的光强。即达到了节能的目的,又有保护视力的效果。在家居、工作、学习的各个环境中,我们所使用的光源均为固定瓦数的,提供固定光强的电灯。我们计划研制的灯光调节器,能够为人们提供

3、“绿色光源”。我们查阅了大量的资料,结果发现目前市面上还没有此种灯。有些人也研制了一些调节灯,如 HYPERLINK :/ /vote1/htm/A13.asp (东南大学电工电子试验中心)网页上所介绍的调节灯仅能人为手动调节亮度,再附上几个比较器组成的光感报警系统,来提醒人们室内光强超出允许范围,我们研制的调节器能真正意义上的达到自动调节光强的目的。此灯通过传感器采集的光强来控制灯泡的亮度,使室内达到了稳定的光强,此恒定光强也可通过外设键盘自主设定,既减少了经常开关灯的不便,又解决了浪费电能与影响视力的问题。此灯成本不高,可在办公室图书馆等公共场合使用。使人们生活的光环

4、境的质量有了大大的提高,使人们生活在由自己随心所欲控制的光环境下,满足了工作、 学习及家居对光的要求。通过动手实践巩固所学的知识体系,将理论与实践相结合,更好的理解书本上的知识。通过查询相关的课外资料,掌握更加系统的知识体系,开拓视野。在相互协作制作的同时,增强了我们的团队精神。知道怎样分工协作才能达到最高效率。本课题研究的主要内容是如何采光与如何控光。2.1光检方案:方案一:图1所示为英文资料上推荐的光检电路,我们对该电路进行了测试,测试结果如下:图1实验条件:Rf=470K,采用60W的可调台灯照明,台灯亮度从最暗调整到最亮。实验数据:光检电路的输出电压变动范围,电路电流为520uA。实验

5、结论:输出电压不稳定,而且电压太小,无法实现控制。经过计算,将电路参数Rf调整为5M左右,电路输出电压将近3V,但输出电压稳定度下降。 方案二:图2为经过改进的电路图2测试条件与方案一相同。测量结果:电路输出电压范围为,达到设计要求,电压稳定性也比第一种方案好。 通过以上两个试验的测试,决定采用第二种方案。2.2灯控方案:方案一:图3所示方案为采用可控硅调节灯泡的电压,从而调节了灯的亮度。图3方案二:图4所示方案采用CMOS管和光耦来调节灯泡的电压。图4通过对上述两种方案的具体测试,我们发现用可控硅的光控电路控制灯泡时出现闪烁现象。第二种方案在同等控制输入信号频率下,电路工作稳定,灯泡无闪烁现

6、象。分析原因在于第一种方案中可控硅的开关速度达不到设计要求,因而出现闪烁现象。方案一:采用C51单片机采用C51单片机,容易编程,但外围硬件接口电路的设计较复杂。方案二:采用美国TI公司MSP430系列单片机美国TI公司的MSP430系列单片机,内置模块功能较强,接口电路简易,可通过编程直接产生PWM信号,方便地控制灯的亮度。MSP430系列单片机简介:TI公司的MSP430系列是一个特别强调超低功耗的单片机品种。在这个系列中有多个型号,他们是由一些基本功能模块按不同的应用目标组合而成的。特性功能:1定时器中断可用于事件计数、时序发生、PWM等2A/D转换器(10位或更高精度)有8个输入端,可

7、作为恒流源3具有LCD驱动电路4已开发了c-编译器5系统内置模块:LCD驱动、A/D转换、I/O端口、UART、看门狗、定时器、EPROM等64KB公共空间中,有可能实现任意的ROM/RAM混合分配 八位脉宽调制定时器PWM介绍: 用8位定时器计数器,PWM外围模块产生一个占空比可以是0%100%的方波输出。占空比由8位占空比控制寄存器PWMDT来确定。 PWM定时器模块具有以下特性:1可选择8个时钟源;2占空比为0%100%,分辨率为1/254;3可以用正或负逻辑输出。基于课题的设计要求,我们所选用的单片机是MSP430系列的448型号。图5系统原理框图如图5所示,主要包含六个部分:(1)电

8、源部分图6(2)光检电路图7(3)光控电路图8 (4)单片机电路图9(5)按键电路图10 (6)蜂鸣器电路图11图12图13图14图15本作品将光强分为了十个级别,1#、2#、3#键为快捷键。1#键为亮,相当于第十级。2#键为次亮,相当于第五级。3#键为暗,相当于第三级。4#键为级别上升控制键。5#键为级别下降控制键。按动4#键、5#键,光亮便可以一级一级的变动。6#键为显示切换键。按动此键可使液晶的显示值分别显示PWM占空比、光亮等级和采集电压值。 本品是220V电压供电。可采用一个箱体控制灯的光强,也可将多个箱体分散放置于室内以获得较均衡的光强。本作品净成本为300400元,若产品化批量生

9、产,成本可降为100元以内,如果将所使用的单片机换成同系列的较低级的亦可实现本功能,虽然功能扩展难以实现,但成本可降到更低。这样如果将其商品化,既可以用于公共场所,亦可用于家居。它的价值不仅在于节省的电能,而且可以保护人们的视力,这一点是用价钱无法衡量的。由于本系统所使用的单片机性能好,可扩展许多功能,所以本作品有继续开发的价值,最终可将其作为一个智能家电控制系统使用。经过近一年的长时间努力,我们小组终于完成了这个课题,回想这一过程,真是感受颇多。自从2003年9月份组队申报项目开始,到现在完成课题,我们小组的三个人邵慧敏、贾妍妍、刘明宇都为之付出了艰辛的努力。从方案论证,硬件电路设计到软件设

10、计,工作量都非常大,而且我们只有业余时间可以利用。如果我们不能很好的分工合作,是不可能完成这项课题的。我们的小组是由两名大二学生和一名经验丰富的大三学生组成,由于知识上的欠缺,我们在刚刚开始研究课题的时候,由大三的同学刘明宇指导我们在图书馆以及网上查阅下载了相当多的有关资料和一些必备的基本知识。经过了一段时间的学习积累,我们对这个课题有了更为深入地了解。于是我们共同进入了方案的研制测试阶段。我们集中在一起讨论,商定最终的方案,确定硬件电路,软件编程。在这个课题中我们所使用单片机MSP430*448是比较新的产品,我们从来都没有使用过,而且有关的资料很多都是英文,但是这并没有阻碍我们前进的步伐,

11、我们克服重重困难,在实践中积累经验,掌握了这种单片机的基本应用方法,并且成功的将它应用到我们的课题之中。通过本次活动,我们拓宽了思路,开阔了视野,从中学到了许多课本上没有的知识,为以后进入实验室进行更深入的研究奠定了基础。与此同时,我们还学会了许多解决实际问题的方法,巩固了我们所学的基础知识,将课本上的知识与实践结合起来,加强了我们的动手能力。团队合作的精神在这一过程中也得到了充分的展示。我们相互讨论,分工明确,互相帮助,有条不紊的对方案进行修进和调试。一年的时间,我们一起经历风雨,在讨论中互相学习,在失意中相互鼓励,在协作中增强友谊。这种经历无疑将成为我们在今后走向社会时的一种宝贵的财富。可

12、以毫不愧言的说:我们的团队是一个团结,高效,友爱的团队。值此课题完成之际,我们要特别感谢王立欣,齐明老师给予我们的帮助。最重要的是感谢学校给我们提供一次这样的机会,让我们的大学生活过得更加精彩,更加充实。8.1参考文献:MSP430 Family Users Guide 美国TI公司资料8.2单片机源程序:#include unsigned char flashbuffer128;/*void delay(unsigned long i) while(i-);/*unsigned char input3(unsigned char bit)unsigned char temp1;temp1=P

13、3DIR; /读取A口原来的方向属性P3DIR=temp1&(0 xff-(1bit);/设置要设置的位为输入if(P3IN)&(1bit)return(1);elsereturn(0);void output2(unsigned char bit,unsigned char value)unsigned char temp1,temp2/*,temp3*/;/save the value beforetemp1=P2DIR;/读取A口原来的方向属性temp2=P2IN;/读取A口原来的数据P2DIR=temp1|(1bit);/设置要设置的位为输出switch(value)case 1:P2

14、OUT=temp2|(1bit);break;case 0:P2OUT=temp2&(0 xff-(1bit);break;default:break;/end switch / end output2/*float Vchange(unsigned int in_res) float i; i=(float)(3.3*in_res)/4095.0); return(i);/*void pwminit() TACTL = ID1+ID0+TASSEL1 + TACLR; / SMCLK, Clear Tar CCR0 = 4096; / PWM Period CCTL2 = OUTMOD_7;

15、 / CCR2 reset/set CCR2 = 18; / CCR2 PWM duty cycle P2DIR |= 0 x01; / P2.0 output P2SEL |= 0 x01; / P2.0 TA2 otion TACTL |= MC0; / Start Timer_A in up mode/*void usext2(void) SCFQCTL=0 x00; / mudulation enable, and muliplier=0 / if DCOPLUS=0:fDCOCLK=(N+1)*fCRYSTAL else *D-12M FLL_CTL0=0 x80; / not di

16、vided FLL_CTL1=0 x14; / use xt2,MCLK=xt2,SMCLK=xt2/*char *LCD = LCDMEM;char dig_dp4=0 x00,0 x00,0 x00,0 x10;char dig104=0 x11,0 x11,0 x11,0 x00, / 0 0 x10,0 x01,0 x00,0 x00, / 1 0 x11,0 x10,0 x01,0 x01, / 2 0 x11,0 x11,0 x00,0 x01, / 3 0 x10,0 x01,0 x10,0 x01, / 4 0 x01,0 x11,0 x10,0 x01, / 5 0 x01,

17、0 x11,0 x11,0 x01, / 6 0 x11,0 x01,0 x00,0 x00, / 7 0 x11,0 x11,0 x11,0 x01, / 8 0 x11,0 x11,0 x10,0 x01 / 9 ;/*void LCDsegmentON(unsigned char control) switch(control) case 0:LCDCTL&=0 xff-LCDSON;break; case 1:LCDCTL|=LCDSON;break; default:break; /*void selectLCDfre(unsigned char level) switch(leve

18、l) case 1: BTCTL&=0 xff-(BTFRFQ1+BTFRFQ0);break; case 2: BTCTL&=0 xff-(BTFRFQ1);BTCTL|=(BTFRFQ0);break; case 3: BTCTL&=0 xff-(BTFRFQ0);BTCTL|=(BTFRFQ1);break; case 4: BTCTL|=(BTFRFQ1+BTFRFQ0);break; default:break; /*#pragma vector=BASICTIMER_VECTOR_interrupt void basic_timer(void) /P5OUT = 0 x02; /

19、Toggle P5.1 using exclusive-OR unsigned char i; for(i=0;i4;i+) LCDi+15=dig4i; i=i;#pragma vector=PORT1_VECTOR_interrupt void port1(void) /P5OUT = 0 x02; / Toggle P5.1 using exclusive-OR unsigned char i; for(i=0;i4;i+) LCDi+15=dig3i; i=i;static unsigned int results4; /*void write_flash_init(void) WDT

20、CTL = WDTPW + WDTHOLD; / Stop watchdog timer FCTL2 = FWKEY + FSSEL0 + FN0; / MCLK/2 for Flash Timing Generatorunsigned char read_SegA_byte(unsigned char address) char *Flash_ptr; / Flash pointer Flash_ptr = (char *) 0 x1080; / Initialize Flash pointer write_flash_init(); return(*(Flash_ptr+address);

21、 / Write value to flashvoid write_SegA_byte(unsigned char address,unsigned char value) char *Flash_ptr; / Flash pointer write_flash_init(); Flash_ptr = (char *) 0 x1080; / Initialize Flash pointer FCTL1 = FWKEY + ERASE; / Set Erase bit FCTL3 = FWKEY; / Clear Lock bit *Flash_ptr = 0; / Dummy write to

22、 erase Flash segment FCTL1 = FWKEY + WRT; / Set WRT bit for write operation *(Flash_ptr+address) = value; / Write value to flash FCTL1 = FWKEY; / Clear WRT bit FCTL3 = FWKEY + LOCK; / Reset LOCK bitvoid write_SegA (char value) char *Flash_ptr; / Flash pointer unsigned int i; write_flash_init(); Flas

23、h_ptr = (char *) 0 x1080; / Initialize Flash pointer FCTL1 = FWKEY + ERASE; / Set Erase bit FCTL3 = FWKEY; / Clear Lock bit *Flash_ptr = 0; / Dummy write to erase Flash segment FCTL1 = FWKEY + WRT; / Set WRT bit for write operation for (i=0; i128; i+) *Flash_ptr+ = value; FCTL1 = FWKEY; / Clear WRT

24、bit FCTL3 = FWKEY + LOCK; / Reset LOCK bit/ segBunsigned char read_SegB_byte(unsigned char address) char *Flash_ptr; / Flash pointer Flash_ptr = (char *) 0 x1000; / Initialize Flash pointer write_flash_init(); return(*(Flash_ptr+address); / Write value to flashvoid readsegBtobuffer(void) char *Flash

25、_ptr; unsigned char i; Flash_ptr=(char *) 0 x1000; write_flash_init(); for(i=0;i128;i+) flashbufferi=*(Flash_ptr+i); void write_SegB_byte(unsigned char address,unsigned char value) unsigned char i; char *Flash_ptr; / Flash pointer write_flash_init(); readsegBtobuffer(); Flash_ptr = (char *) 0 x1000;

26、 / Initialize Flash pointer FCTL1 = FWKEY + ERASE; / Set Erase bit FCTL3 = FWKEY; / Clear Lock bit *Flash_ptr = 0; / Dummy write to erase Flash segment FCTL1 = FWKEY + WRT; / Set WRT bit for write operation flashbufferaddress=value; for (i=0; i128; i+) *(Flash_ptr+i) = flashbufferi; / Write value to

27、 flash FCTL1 = FWKEY; / Clear WRT bit FCTL3 = FWKEY + LOCK; / Reset LOCK bitvoid write_SegB (char value) char *Flash_ptr; / Flash pointer unsigned int i; write_flash_init(); Flash_ptr = (char *) 0 x1000; / Initialize Flash pointer FCTL1 = FWKEY + ERASE; / Set Erase bit FCTL3 = FWKEY; / Clear Lock bi

28、t *Flash_ptr = 0; / Dummy write to erase Flash segment FCTL1 = FWKEY + WRT; / Set WRT bit for write operation for (i=0; i128; i+) *Flash_ptr+ = value; / Write value to flash FCTL1 = FWKEY; / Clear WRT bit FCTL3 = FWKEY + LOCK; / Reset LOCK bit/*void main(void) float set=0.6; float step=0.08; int j;

29、float a; unsigned char i=0,k; unsigned char displaymode; set=read_SegB_byte(0 x05)/10.0; displaymode=read_SegB_byte(0 x06); WDTCTL = WDTPW+WDTHOLD; / Stop watchdog timer P6SEL = 0 xff; / Enable A/D channel inputs set sampling time ADC12CTL0 = ADC12ON+MSC+SHT0_2; / Turn on ADC12, set sampling time AD

30、C12CTL1 = SHP+CONSEQ_1; / Use sampling timer, single sequence ADC12MCTL0 = INCH_3; / ref+=AVcc, channel = A0 ADC12MCTL1 = INCH_4; / ref+=AVcc, channel = A1 ADC12MCTL2 = INCH_5; / ref+=AVcc, channel = A2 ADC12MCTL3 = INCH_6+EOS; / ref+=AVcc, channel = A3, end seq. ADC12CTL0 |= ENC; / Enable conversio

31、ns ADC12CTL0 |= ADC12SC; / Start conversion LCDCTL = 0 xe5; /static LCD, segments = 0 - 23 BTCTL = BTFRFQ1+BTFRFQ0; / BTCTL ;set fLCD = ACLK / 256 BTFRFQ1 for (i=0; imax) set=max; write_SegB_byte(0 x05,(unsigned char)(set*10); / down if(!input3(4) output2(7,1); while(!input3(4); output2(7,0); delay(

32、delayvalue); set-=max/10; if(set3) displaymode=1; write_SegB_byte(0 x06,displaymode); if(a=set+step) CCR2-; if(CCR2=1) CCR2=1; if(a=4096) CCR2=4096; switch(displaymode) case 1: / CCR2 for(i=0;i4;i+) LCDi+7=digCCR2/1000%10i; for(i=0;i4;i+) LCDi+11=digCCR2/100%10i; for(i=0;i4;i+) LCDi+15=digCCR2/10%10i; break; case 2: / voltage for(i=0;i4;i+) LCDi+7=dig(int)a%10i+dig_dpi; for(i=0;i4;i+) LCDi+11=dig(int)(a*10)%10i; for(i=0;i4;i+) LCDi+15=dig(int)(a*100)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论