1、可控白光LED照明灯报告可控LED照明灯电子设计大赛培训一期组长:毕聪组员:邵远航 喻红1作品摘要介绍2 总体设计方案2.1总体设计方案介绍2.2系统控制方案2.3总体硬件组成框图3 主要系统硬件设计3.1光照部分的制作3.2光度计的制作3.3 显示模块的使用4系统的软件设计4.1系统的软件流程4.2核心程序的介绍5系统调试5.1测试使用的仪器仪表5.2系统调试的方法6实验心得7分工合作可控白光LED照明灯1. 作品摘要介绍:我们组设计的高效可控白光LED照明灯及其检测装置,用TI的TPS61062芯片驱动45只白光LED进行照明。2.总体方案设计: 本系统采用单片机MSP430为系统控制的核
2、心,此系统主要包括TPS驱动模块,光度计的制作模块等。2.1总体设计方案的介绍: 本作品的设计思想是通过TI的TPS61062芯片驱动45只白光LED进行照明,并能对输出到LED上的功率进行测量、显示和对输出到LED上的电流进行预置、控制。用光敏器件制作一个照度检测仪,它可以将检测到的照度显示。2.2系统控制方案: 用MSP430实现系统控制。MSP430内部自带ADC12转换模块,ADC12模块主要有以下特点:AD转换为12位,数据的测量精度高;采样速度快;片内参考电压的产生可以有软件编程选择,也可以由软件选择内部参考还是外部参考;可以选择转换的转换时钟源;具有单通道单次转换,单通道多次转换
3、,序列通道单次转换和序列通道多次转换4种转换模式;具有中断矢量寄存器;16位的转换结果存储寄存器。2. 3总体硬件组成框图 3主要系统硬件的设计为使作品测量的精确度更高,并且使总体设计更具有模块化,我们对系统的硬件做了精心设计,模块具体设计如下:3.1光照部分的制作方案一:使用恒流源电路进行控制,控制过程中只要控制输入电压即可控制输出电流(电路如图),由于题目要求0.1mA步进电流,但输入电压要求用单片机的DA转换进行输入确切电压,M430F149没有DA转换,所以此方案放弃。方案二:利用TPS61060芯片驱动4-5只LED照明,采用5V单电源供电。下面我们介绍TPS61062芯片。TPS6
4、1062与LED的链接如下:在实际使用过程中,如图所示的VIN引脚应直接接IO口,用IO口输出的PWM波进行亮度控制。3. 2光度计的制作:方案一:使用硅光电池做光度计。晶体硅光电池有单晶硅与多晶硅两大类,用P型(或n型)硅衬底,通过磷(或硼)扩散形成Pn结而制作成的,生产技术成熟,是光伏市场上的主导产品。采用埋层电极、表面钝化、强化陷 光、密栅工艺、优化背电极及接触电极等技术,提高材料中的载流子收集效率,优化抗反射膜、凹凸表面、高反射背电极等方式,光电转换效率有较大提高。单晶硅光电池面积有限,目前比较大的为10至20cm的圆片,年产能力46MWa。目前主要课题是继续扩大产业规模,开发带状硅光
5、电池技术,提高材料利用率。国际公认最高效率在AM1.5条件下为24,空间用高质量的效率在AM0条件约为13.518,地面用大量生产的在AM1条件下多在1118之间。以定向凝固法生长的铸造多晶硅锭代替单晶硅,可降低成本,但效率较低。优化正背电极的银浆和铝浆丝网印刷,切磨抛工艺,千方百计进一步降成本,提高效率,大晶粒多晶硅光电池的转换效率最高达18.6。方案二:利用光敏电阻做光度计。光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻变小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光
6、敏电阻器,它是由半导体材料制成的。光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达110M欧,在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.40.76)m的响应很接近,只要人眼可感受的光,都会引起它的阻值变化。设计光控电路时,都用白炽灯泡(小电珠)光线或自然光线作控制光源,使设计大为简化。出于制作难易考虑,本实验选用光敏电阻做光度计来测量LED的发光强度。3.3 显示模块的使用出于熟练度以及所拥有的例程的实际情况,决定使用诺基亚5110的显示屏幕。由于例程中不包含动态数字的显示,故添
7、加如下子函数以完成此功能:/*-LCD_write_shu: 显示6(宽)*8(高)点阵列数字字母符号等半角类输入参数: c:显示的字符;6*8-*/void LCD_write_shu(int row,int page,int c) /row:列 page:页 c:字符 int i; LCD_set_XY(row*6,page); / 列,页 row*8 for(i=0;i6;i+) LCD_write_byte(font6x8ci,1); (其中c为变量)4.1系统的软件流程软件分为5个部分:PWM波输出,AD转换检测电压,按键控制PWM波,5110的显示,功率的计算4.2核心程序的介绍#
8、include #include nokia_5110.h#include BoardConfig.h#include Key.h#include Delay.htypedef unsigned int uint;typedef unsigned char uchar;#define Num_of_Results 32static uint resultsNum_of_Results; /保存ADC转换结果的数组 void Trans_val(uint Hex_Val); int zhaodu=0,gonglv=0;uint i = 0,j = 0,dir = 0;uint flag = 0,
9、speed = 0; /*主函数*/ void main(void) unsigned char Key; /char z; /*下面六行程序关闭所有的IO口*/ /P1DIR = 0XFF;P1OUT = 0XFf; /P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0X00; WDTCTL = WDTPW + WDTHOLD; /关闭看门狗 /*-选择系统主时钟为8MHz-*/ /BCSCTL1 &= XT2OFF; /打开XT2高频晶
10、体振荡器 /do / / IFG1 &= OFIFG; /清除晶振失败标志 / for (z = 0xFF; z 0; z-); /等待8MHz晶体起振 / /while (IFG1 & OFIFG); /晶振失效标志仍然存在? /BCSCTL2 |= SELM_2 + SELS; /MCLK和SMCLK选择高频晶振 /P6DIR |= BIT2;P6OUT |= BIT2; /关闭电平转换 /P5OUT &= BIT7; P2DIR = 0xff; /*pwm P1DIR = 0xff; / P2端口设置为输出 P1OUT = 0xff; / 关闭其他LED P1SEL |= BIT6 +
11、BIT7; / P2.3和P2.4连接内部模块,使用的是第二功能作为TimerA的比较输出。 CCR0 = 200; /CCTL1 = OUTMOD_7; / CCR1 reset/set /CCR1 = flag; / CCR1 PWM duty cycle CCTL2 = OUTMOD_7; / CCR2 reset/set CCR2 = flag; / CCR2 PWM duty cycle TACTL = TASSEL_1 + ID_2 + MC_1; / ACLK/8, up mode P6DIR |= BIT2;P6OUT |= BIT2; /关闭电平转换 *adc P5DIR|=
12、BIT5;P5OUT&=BIT5; /关闭数码管显示 P6DIR|=BIT6;P6OUT&=BIT6; /半闭数码管显示 P6DIR|=BIT5;P6OUT&=BIT5; /半闭数码管显示 Key_INIT(); LCD_init(); /初始化液晶 LCD_clear(); P6SEL |= 0x01; / 使能ADC通道 ADC12CTL0 = ADC12ON+SHT0_15+MSC; / 打开ADC,设置采样时间 ADC12CTL1 = SHP+CONSEQ_2; / 使用采样定时器 ADC12IE = 0x01; / 使能ADC中断 ADC12CTL0 |= ENC; / 使能转换 A
13、DC12CTL0 |= ADC12SC; / 开始转换 _EINT(); while(1) /p3.2-p3.4为调整pwm波的板载按键,占空比分别加2、4、6 Key=Key_Scan(); if(Key!=0) switch(Key) case 1: flag=flag+2; break; case 2: flag=flag+4; break; case 3: flag=flag+6; break; default : break; else delay_ms(10); if(flag=200) flag=0; CCR2 = flag; / CCR2 PWM duty cycle /*函数
14、名称:ADC12ISR功 能:ADC中断服务函数,在这里用多次平均的 计算P6.0口的模拟电压数值参 数:无 返回值 :无*/#pragma vector=ADC_VECTOR_interrupt void ADC12ISR (void) static uint index = 0; resultsindex+ = ADC12MEM0; / Move results if(index = Num_of_Results) uchar i; unsigned long sum = 0; index = 0; for(i = 0; i = 5; /除以32 Trans_val(sum); /*函数名
15、称:Trans_val功 能:将16进制ADC转换数据变换成三位10进制 真实的模拟电压数据,并在液晶上显示参 数:Hex_Val-16进制数据 n-变换时的分母等于2的n次方 返回值 :无*/void Trans_val(uint Hex_Val) int row=0,page=0; unsigned long caltmp; uint Curr_Volt; uchar t1,i; uchar ptr4; caltmp = Hex_Val; caltmp = (caltmp 5) + Hex_Val; /caltmp = Hex_Val * 33 caltmp = (caltmp 3) +
16、(caltmp 12; /Curr_Volt = caltmp / 2n ptr0 = Curr_Volt / 100; /Hex-Dec变换 t1 = Curr_Volt - (ptr0 * 100); ptr1 = t1 / 10; ptr2 = t1 - (ptr1 * 10); /ptr3 = 0; /shuzi表中第10位对应符号. /在液晶上显示变换后的结果 for(i = 0;i 3;i+) LCD_write_shu(row+i,page+2,ptri); 5.1测试使用的仪器仪表万用表。5.2系统调试的方法并入电路测量电流,并调试PWM波的占空比,使按键每次按下变化的占空比令电流步进0.1mA。6实验心得按键的电路逻辑不清晰,在编程时由于初次使用M430F149程序的初始化多是来自例程,端口定义模糊且混乱。在对按键使能及执行的模块程序中不能执行,即不能实现。主函数中没有while语句,导致函数不能反复执行,而是死循环在AD的中断中,不能执行按键中断或执行按键判断函数。照度计由于电路简单,所以测出的亮度最后一位的数字变化快,值不稳定。经修改,按键改变电流和亮度已经实现,但由于发光二极管的U-I曲线为非线性,开始的步进为0.1mA,之有增大迹象。7分工合作毕聪:方案拟定、平台选择、电路设计邵远航:电路制作、软件程序、实验报告喻红:电路分析、软件程序、实验报告
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1