tag 标签: led

相关日志
电位器控制三色LED单片机PWM驱动的简单程序
weitongguo 2015-9-22 19:09
朋友问能否用模拟量控制PWM,这么简单当然easy了,我用STC15W408AS的DIP20脚的单片机,因为这种单片机具有AD输入通道和PWM输出,很快做好了一个单通道的实验,完事想这个单片机有三个PWM输出,我可以驱动三色LED进行显示玩玩,用三个电位器控制三色LED的亮度变化就可以输出各种颜色了: 硬件很简单,就是三个10K电位器对电源5V分压,调整端电压进三个AD:P1.0,1.1,1.2,PWM输出在P3.5,3.6,3.7,三色LED红蓝绿正极接一起接5V正极,三个LED负极分别接1K电阻进三个PWM输出,调整电位器分别控制PWM输出驱动LED亮度变化,不同组合就是不同颜色。 C程序如下,大部分摘录自STC的下载工具里面的范例,大部分选项参数并没有清理,原汁原味,当然也有一点错误给予修正: //STC15W408AS DIP20 11.0592MHz 串口115.2K比特率   //本程序电位器输入三个模拟量,AD结果送串口,同时输出三个PWM驱动三基色LED //PWM移动到第二输出口,以便让开AD三个输入通道 //PWM设定为8bit输出,AD只取高八位,刚好对应   #include "reg51.h" #include "intrins.h"   #define FOSC    11059200L #define BAUD    115200   typedef unsigned char BYTE; typedef unsigned int WORD;   #define     URMD    0           //0:使用定时器2作为波特率发生器                                 //1:使用定时器1的模式0(16位自动重载模式)作为波特率发生器                                 //2:使用定时器1的模式2(8位自动重载模式)作为波特率发生器   sfr T2H   = 0xd6;               //定时器2高8位 sfr T2L   = 0xd7;               //定时器2低8位   sfr  AUXR       =   0x8e;       //辅助寄存器                                 sfr ADC_CONTR   =   0xBC;           //ADC控制寄存器 sfr ADC_RES     =   0xBD;           //ADC高8位结果 sfr ADC_LOW2    =   0xBE;           //ADC低2位结果 sfr P1ASF       =   0x9D;           //P1口第2功能控制寄存器   #define ADC_POWER   0x80            //ADC电源控制位 #define ADC_FLAG    0x10            //ADC完成标志 #define ADC_START   0x08            //ADC起始控制位 #define ADC_SPEEDLL 0x00            //540个时钟 #define ADC_SPEEDL  0x20            //360个时钟 #define ADC_SPEEDH  0x40            //180个时钟 #define ADC_SPEEDHH 0x60            //90个时钟   sfr P_SW1       = 0xA2;             //外设功能切换寄存器1   #define CCP_S0 0x10                 //P_SW1.4 #define CCP_S1 0x20                 //P_SW1.5   sfr CCON        =   0xD8;           //PCA控制寄存器 sbit CCF0       =   CCON^0;         //PCA模块0中断标志 sbit CCF1       =   CCON^1;         //PCA模块1中断标志 sbit CR         =   CCON^6;         //PCA定时器运行控制位 sbit CF         =   CCON^7;         //PCA定时器溢出标志 sfr CMOD        =   0xD9;           //PCA模式寄存器 sfr CL          =   0xE9;           //PCA定时器低字节 sfr CH          =   0xF9;           //PCA定时器高字节 sfr CCAPM0      =   0xDA;           //PCA模块0模式寄存器 sfr CCAP0L      =   0xEA;           //PCA模块0捕获寄存器 LOW sfr CCAP0H      =   0xFA;           //PCA模块0捕获寄存器 HIGH sfr CCAPM1      =   0xDB;           //PCA模块1模式寄存器 sfr CCAP1L      =   0xEB;           //PCA模块1捕获寄存器 LOW sfr CCAP1H      =   0xFB;           //PCA模块1捕获寄存器 HIGH sfr CCAPM2      =   0xDC;           //PCA模块2模式寄存器 sfr CCAP2L      =   0xEC;           //PCA模块2捕获寄存器 LOW sfr CCAP2H      =   0xFC;           //PCA模块2捕获寄存器 HIGH sfr PCA_PWM0    =   0xf2;           //PCA模块0的PWM寄存器 sfr PCA_PWM1    =   0xf3;           //PCA模块1的PWM寄存器 sfr PCA_PWM2    =   0xf4;           //PCA模块2的PWM寄存器   void InitUart(); void InitADC(); void SendData(BYTE dat); BYTE GetADCResult(BYTE ch); void Delay(WORD n); void ShowResult(BYTE ch);   void main() {      // ACC = P_SW1; //    ACC = ~(CCP_S0 | CCP_S1);      //CCP_S0=0 CCP_S1=0 //    P_SW1 = ACC;                    //(P1.2/ECI, P1.1/CCP0, P1.0/CCP1, P3.7/CCP2)        ACC = P_SW1;   ACC = ~(CCP_S0 | CCP_S1);      //CCP_S0=1 CCP_S1=0   ACC |= CCP_S0;                  //(P3.4/ECI_2, P3.5/CCP0_2, P3.6/CCP1_2, P3.7/CCP2_2)   P_SW1 = ACC;   //   //  ACC = P_SW1; //  ACC = ~(CCP_S0 | CCP_S1);      //CCP_S0=0 CCP_S1=1 //  ACC |= CCP_S1;                  //(P2.4/ECI_3, P2.5/CCP0_3, P2.6/CCP1_3, P2.7/CCP2_3) //  P_SW1 = ACC;    CCON = 0;                       //初始化PCA控制寄存器                                     //PCA定时器停止                                     //清除CF标志                                     //清除模块中断标志     CL = 0;                         //复位PCA寄存器     CH = 0;     CMOD = 0x02;                    //设置PCA时钟源                                     //禁止PCA定时器溢出中断     PCA_PWM0 = 0x00;                //PCA模块0工作于8位PWM     CCAPM0 = 0x42;                  //PCA模块0为8位PWM模式     CCAP0H = CCAP0L = 0x00;         //PWM0的占空比初值       PCA_PWM1 = 0x00;                //PCA模块1工作于8位PWM     CCAPM1 = 0x42;                  //PCA模块1为8位PWM模式     CCAP1H = CCAP2L = 0x00;         //PWM1的占空比初值       PCA_PWM2 = 0x00;                //PCA模块2工作于8位PWM     CCAPM2 = 0x42;                  //PCA模块2为8位PWM模式     CCAP2H = CCAP2L = 0x00;         //PWM2的占空比初值   CR = 1;                         //PCA定时器开始工作   InitUart();                     //初始化串口     InitADC();                      //初始化ADC     while (1)     {         ShowResult(0);              //显示通道0     CCAP0H = CCAP0L = GetADCResult(0);//PWM0输出AD0通道的值         ShowResult(1);              //显示通道1     CCAP1H = CCAP1L = GetADCResult(1);//PWM1输出AD1通道的值         ShowResult(2);              //显示通道2     CCAP2H = CCAP2L = GetADCResult(2);//PWM2输出AD2通道的值 //        ShowResult(3);              //显示通道3 //        ShowResult(4);              //显示通道4 //        ShowResult(5);              //显示通道5 //        ShowResult(6);              //显示通道6 //        ShowResult(7);              //显示通道7 // Delay(10);     } }   /*---------------------------- 发送ADC结果到PC ----------------------------*/ void ShowResult(BYTE ch) {     SendData(ch);                   //显示通道号     SendData(GetADCResult(ch));     //显示ADC高8位结果   //    SendData(ADC_LOW2);           //显示低2位结果 // Delay(20);   }   /*---------------------------- 读取ADC结果 ----------------------------*/ BYTE GetADCResult(BYTE ch) {     ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;     _nop_();                        //等待4个NOP     _nop_();     _nop_();     _nop_();     while (!(ADC_CONTR ADC_FLAG));//等待ADC转换完成     ADC_CONTR = ~ADC_FLAG;         //Close ADC       return ADC_RES;                 //返回ADC结果 }   /*---------------------------- 初始化串口 ----------------------------*/ void InitUart() {     SCON = 0x5a;                //设置串口为8位可变波特率 #if URMD == 0     T2L = (65536 - (FOSC/4/BAUD));   //设置波特率重装值     T2H = (65536 - (FOSC/4/BAUD))8;     AUXR = 0x14;                //T2为1T模式, 并启动定时器2     AUXR |= 0x01;               //选择定时器2为串口1的波特率发生器 #elif URMD == 1     AUXR = 0x40;                //定时器1为1T模式     TMOD = 0x00;                //定时器1为模式0(16位自动重载)     TL1 = 0xd8;                 //设置波特率重装值     TH1 = 0xff;                 //115200 bps(65536-18432000/4/115200)     TR1 = 1;                    //定时器1开始启动 #else     TMOD = 0x20;                //设置定时器1为8位自动重装载模式     AUXR = 0x40;                //定时器1为1T模式     TH1 = TL1 = 0xfb;           //115200 bps(256 - 18432000/32/115200)     TR1 = 1; #endif }   /*---------------------------- 初始化ADC ----------------------------*/ void InitADC() {     P1ASF = 0xff;                   //设置P1口为AD口     ADC_RES = 0;                    //清除结果寄存器     ADC_CONTR = ADC_POWER | ADC_SPEEDLL;     Delay(2);                       //ADC上电并延时 }   /*---------------------------- 发送串口数据 ----------------------------*/ void SendData(BYTE dat) {     while (!TI);                    //等待前一个数据发送完成     TI = 0;                         //清除发送标志     SBUF = dat;                     //发送当前数据 }   /*---------------------------- 软件延时 ----------------------------*/ void Delay(WORD n) {     WORD x;       while (n--)     {         x = 5000;         while (x--);     } }    
502 次阅读|0 个评论
(多图)实现LED路灯网络的智能监控
shenzhenghao1984_379129130 2015-3-25 10:01
城市道路照明越来越多采用LED照明技术代替传统的照明技术,其目的是为了降低对电能的消耗。由于LED使用低压直流电源,便于附加检测与控制电路,这对路灯网络的智能化管理,进一步节能降耗带来了方便。对于路灯网络的管理与控制,既可以采用电力载波通信技术,也可技术的快速发展,使得短距离无线通信技术在应用成本、可靠性与通信速率等方面均已优于电力载波通信技术,例如Zigbee短距离无线通信技术。本文提出一种解决方案,采用短距离无线通信技术构建LED路灯无线传感网络,能对LED路灯网络任意单盏灯或多盏灯或全网络所有灯进行开关、调光等控制,进行发光亮度、电流参数等检测,从而实现对LED路灯网络的智能化管理。作为无线传感网络,其体系结构应该包含四个基本层次:物理层和数据链路层、网络层以及应用层。LED路灯无线传感网络采用IEEE 802.15.4标准作为其物理层和数据链路层的技术标准,网络层与应用层集成在一起,采用单跳、双跳以及变跳3种接力通信模式作为网络协议的基础。本文围绕LED无线传感网络的体系结构,以网络拓扑及通信节点的组成为基础,论述了网络层的协议包格式、路由工作原理,以及节点通信的设计流程。 1 网络体系 LED无线传感网络的网络体系是网络层实现路由的基础,包括节点组成及网络拓扑结构。 1.1 LED路灯传感网络节点的组成 LED路灯网络由间隔均匀的若干盏路灯组成,每一盏LED路灯均为网络的一个通信节点,用来构建无线传感网络。图1所示,为构建无线传感网络LED路灯节点的组成,除了照明部分的电路外,还附加了对LED电流的采样、LED发光亮度的检测、以及对LED发光亮度的PWM控制等电路。每一盏LED路灯既是传感器节点也是网络路由节点;每一个节点包含一个微控制器(MCU,如cc2530),都具有射频通信功能,既能发送信号也能接收信号;每一个节点具有32bit(位)的唯一ID号。通过在物理层和MAC层采用IEEE 802.15.4协议标准,结合网络层与应用层的协议,所有这些节点有机地组合在一起,便构成了LED路灯无线传感网络。由于现有的一些网络层与应用层协议如Zigbee、RF4CE等并不是很适合LED路灯传感网络应用,因此,需要重新设计网络层与应用层协议。 图1 LED路灯节点的组成 1.2 网络拓扑 根据LED路灯的分布规律,每盏LED路灯作为网络节点构成无线通信网络,其拓扑结构如图2所示,(a)是信号逐点(单跳)接力传送拓扑结构图,(b)是信号隔点(双跳)接力传送拓扑结构图。为便于下文网络应用协议的设计与讨论,作出如下定义: (1)所有节点可分为2类,即LED路灯节点(简称LED节点,如a1 a2 … an , b1 b2 … bn)和路灯控制器节点(简称控制节点,如a,b); (2)相邻节点之间的距离均为L,每个节点的无线信号覆盖半径大于等于2L; (3)根据节点的相对位置,节点可分为前驱节点与后继节点,离控制器近的是前趋节点,离控制器远的是后继节点。例如a1是a2前驱节点,a3是a2后继节点;同理b2是b4前驱节点,b6是b4后继节点,以此类推。 图2 网络拓扑结构示意图 (4)控制节点与LED节点之间,LED节点相互之间,只要无线信号可以覆盖到,都可以相互通信,不需要设基站或专门的路由协调装置。 (5)每个节点的32bit唯一ID号由两部分组成,分别为网络ID和节点地址(编号),均为16bit。同一路灯网络所有节点的网络ID相同;从控制节点开始,节点地址由小到大顺序编排。 【分页导航】 第1页: LED路灯无线传感网络体系 第2页: LED路灯传感网络协议包格式 第3页: LED路灯传感网络路由协议 第4页: LED无线网络节点工作流程 2 网络协议 LED路灯传感网络协议包括协议包的定义与路由协议的定义,其设计目标是简单、实用,易实现。 2.1 网络协议包格式 LED路灯传感网络协议传输的信息包共有3种类型,分别为命令包、参数包以及应答确认包。 图3 网络协议包格式 (1)命令包 图3(a)所示,为控制器节点对LED路灯节点下发的命令包格式。命令有三种类型:针对整个网络所有LED节点的广播命令、针对部分LED节点的群组命令以及针对单个LED节点的单点命令。 命令包各字段定义如下: 包类型:为1; 目的地址:为指定LED节点的地址; 包序列号:为向指定节点发送的包编号; 接力模式:为1时,表示单跳模式;为2时,表示双跳模式偶链;为3时,表示双跳模式奇链; 命令字段的定义方法见表1,表1只列出了部分命令,实际中可以根据需要增加命令; 表1 命令包命令字段定义 命令参数字段:用来表示调光的亮度,数值越小LED发光亮度越低,耗电越少,数值为 0时表示关灯; 跳数:命令传送到目的地址所需经过的节点数,最大值为路灯网络所有LED节点的数量。传送命令包时,每经转发一次则跳数减1,当跳数值为0时,命令包不再被转发。 (2)参数包 图3(b)所示,为LED路灯网络节点上传的参数包格式。控制节点可采用定时轮询或即时查询方式获取网络内各LED节点的状态参数,如电流值、发光亮度值等,各LED节点只有在接到读取参数的命令后才会向控制节点发送参数包。参数包各字段定义如下: 包类型:为2; 源地址:为上传参数LED节点的地址; 包序列号:为上传参数LED节点发出的参数包编号; 接力模式:由于只有在节点收到读取状态参数命令后才会发送参数包,因此,参数包的接力模式由命令包的接力模式确定; 状态标志:为0,表示对应LED节点无故障;为1,表示对应节点有故障;为2,表示对应节点及后继节点有故障; 状态参数1-3:为LED节点的有关参数,如电流值、电压值以及LED的发光亮度值等。 (3)应答确认包 图3(c)所示,为应答确认包格式。为了实现可靠传输,每个节点在收到命令包或参数包后需要发送应答确认信息包。如果信息包的发送(转发)方在设定的时间内没有收到应答确认包,则会启动对该信息包的重新发送。应答确认包各字段的数值定义如下: 包类型:为3; 节点地址:发出确认应答包节点的地址。 确认类型:收到信息包的包类型; 确认号:为节点收到信息包的包序列号; 【分页导航】 第1页: LED路灯无线传感网络体系 第2页: LED路灯传感网络协议包格式 第3页: LED路灯传感网络路由协议 第4页: LED无线网络节点工作流程 2.2 网络路由协议 LED路灯传感网络路由协议的核心是各节点对信息包的转发机制。由于每一个节点的信号覆盖范围有限,其信息只能向邻近的节点发送,如要将信息送往远处节点则只能依赖中间节点的多次转发。根据前述1.2定义的条件,节点转发信息包可以分为三种模式,即单跳接力模式,双跳接力模式和变跳接力模式,各LED节点将根据信息包中接力模式字段的定义进行选择。 2.2.1 单跳接力模式 图2(a)所示,为单跳接力模式的拓扑结构图。它是一个比较简单的转发模式,要求每个节点无线信号覆盖的半径范围大于节点间距L即可,信息包只需往邻近的前驱节点或后继节点转发。在这种模式下,节点处理收到信息包的方法如下: ①节点接收一个命令包(如图3(a))后,向前驱节点发送接收确认应答包;将命令包中的跳数减1;比较节点自身地址(NA)与命令包中目标地址的大小,相等则执行包中的命令且无须转发命令包,不等则向后继节点转发该包;如果是广播命令(目标地址值为0xffff),既在本节点执行该命令同时也向后继节点转发该命令包。转发时的路由地址为:NA+1。当命令包传送到网络中的最后一个LED节点时,跳数减1后将为0,包将不再被转发。 ②节点接收到参数包(如图3(b))后,只需向后继节点发送接收确认包和向前驱节点转发,转发参数包的路由地址为:NA-1。 ③节点收到命令包或参数包后,必须发送接收确认包(如图3(c)),当收到命令包时,确认类型值为1,发送应答确认包的路由地址为NA-1;当收到参数包时确认类型值为2, 发送应答确认包的路由地址为NA+1。 2.2.2 双跳接力模式 图2(b)所示,为双跳接力模式的拓扑结构图。这种模式要求每一个节点的无线信号覆盖半径范围≥2L。从图2可知,双跳接力模式每次跨越两个节点,传送信息包到指定节点的转发次数比单跳接力模式要少一半,因此其传送时延也要小。在双跳接力模式下,将整个网络所有LED节点按照其地址值的奇偶性分成2个接力链,即奇地址节点链和偶地址节点链。控制节点发送广播命令时,需要针对奇地址节点链和偶地址节点链分别发送,命令信息包分别在奇地址节点链和偶地址节点链上同时传播。在双跳接力模式下,节点处理收到信息包的方法如下: ①节点接收到命令包后的处理方法与单跳接力模式基本相同,但包转发时的路由地址变为:NA+2。 ②同样节点接收到数据包后的处理方法也与单跳接力模式基本相同,只是在包转发时的路由地址变为:NA-2。 ③节点收到命令包或参数包后,必须发送接收确认包,当收到命令包时,确认类型值为1,发送应答确认包的路由地址为NA-2;当收到参数包时确认类型值为2, 发送应答确认包的路由地址为NA+2。 无论是单跳接力模式还是双跳接力模式,节点发送命令信息包或参数信息包后,在规定的时间内未收到确认信息包,则需要重发,重发次数一般不超过3次。 2.2.3 变跳接力模式 变跳接力模式实际上是单跳接力模式和双跳接力模式的一种补充,主要用于下一跳节点出现通信故障时。在单跳接力模式或双跳接力模式工作时,如果在多次重发后仍收不到下一跳节点的应答确认信息包,说明下一跳节点出现了通信故障。这时通过改变接力模式,由单跳变双跳或者由双跳变单跳可以绕开下一跳有通信故障的节点,继续信息包的接力传送。同时,将故障节点的相关信息反馈到控制节点。变跳接力模式要求每一个节点的无线信号覆盖半径范围≥2L。变跳接力模式分为两种情况: (1)初始传送为单跳接力模式 设LED节点i的地址为NAi,当LED节点i以单跳模式转发命令包(或参数包)时,即使重发,仍然收不到LED节点i+1(或i-1)的确认包,于是断定下一跳节点出现故障。这时如果传送的是命令包则从①开始执行,如果传送的是参数包则执行②,因为故障节点在传命令包时已遇上,传送参数包时遇故障节点无须重复报告故障信息。 ①LED节点i向控制节点报告故障节点信息。此时,节点i向控制节点发送参数包,包的状态参数置为1,源地址为故障节点的地址,即NAi+1,发送参数包的路由地址为NAi-1。 ②改变接力模式为双跳模式,将信息包转发给节点i+2(或i-2),以绕开故障节点,路由地址为NAi+2(或NAi-2),若能收到应答确认包,则本节点转发完成,否则说明遇上了两个或两个以上连续故障节点,需继续执行③。 ③如果此时传送的是命令包,则LED节点i需向控制节点报告故障节点状态信息,状态参数包的状态标志置为2,源地址为故障节点的地址,即NAi+2,发送参数包的路由地址为NAi-1。随后,转发中止。 (2)初始传送为双跳接力模式 当LED节点i(地址为NAi)欲以双跳接力模式转发命令包(或参数包)时,必须对包进行分析,根据接力模式字段的值为2或3,可以判定当前为偶地址链或奇地址链接力模式。当NAi的值为奇数,跳变模式为奇链,或者NAi的值为偶数,跳变模式为偶链时,执行如下步骤①;当NAi的值为奇数,跳变模式为偶链,或者NAi的值为偶数,跳变模式为奇链时,执行如下步骤②; ①节点i以双跳接力模式转发命令包(或参数包),路由地址为NAi+2(或NAi-2),如果收不到应答确认,则下一跳节点出现故障。如果这时转发的是命令包,则需向控制节点报告故障,往其前驱节点i-2发送故障信息参数包,路由地址为NAi-2,故障信息参数包的源地址(即故障节点的地址)为NAi+2,状态标志为1。同时,改用单跳接力模式将信息包转发给节点i+1(或i-1),以绕开故障节点,转发的路由地址为NAi+1(或NAi-1);若能收到确认包,则本节点转发完成,否则执行③; ②节点i改为单跳接力模式转发命令包(或参数包),路由地址为NAi+1(或NAi-1),若能收到确认包,则本节点转发完成,否则,再改用双跳接力模式转发,将信息包转发给节点i+2(或i-2),以绕开故障节点,转发的路由地址为NAi+2(或NAi-2);若能收到确认包,则本节点转发完成,否则执行③; ③说明遇上了两个或两个以上连续故障节点,LED节点i需向控制节点报告故障节点信息。此时,节点i向控制节点发送故障参数包的状态标志为2,源地址为故障节点的地址,即NAi+1,发送参数包,路由地址为NAi-1。随后转发中止。 上述变跳接力模式能解决分散的单个通信故障节点接力传送问题。但当网络中出现连续2个或2个以上通信故障节点时,则只能报告故障节点位置而不能再继续接力传送。若要解决连续多故障节点的问题,既需要改变接力算法,也需要各节点的无线信号覆盖半径范围更大。 【分页导航】 第1页: LED路灯无线传感网络体系 第2页: LED路灯传感网络协议包格式 第3页: LED路灯传感网络路由协议 第4页: LED无线网络节点工作流程 3 网络节点工作流程与协议实现 LED路灯传感网络上的每一个节点,既是命令执行与状态参数采集的终端节点,也是路由协调工作节点。各节点除了接收到信息包进入处理流程外,其余时间几乎都处在监听查询状态,检查是否收到信息包。图4所示为LED路灯传感网络节点的工作流程,它是网络协议在节点上实现过程的描述。 图4 LED传感网络节点的工作流程 4 结束语 通过网络体系、网络协议、网络节点工作流程与协议实现等几个部分的详细介绍,析构了LED路灯无线传感网络的组成,希望能为LED路灯无线传感网络的应用起到抛砖引玉的作用。LED路灯无线传感网络构建的基础是点到点的通信技术,命令信息要覆盖全网络需要点到点的通信技术来完成,良好的网络协议是组建传感网络的关键所在,简易可行的网络协议是实用化的前提。实际应用表明,上述方法构建的LED路灯无线传感网络具有良好的实时性,能稳定、可靠地工作,能满足对LED路灯网络的智能化管理要求。 【分页导航】 第1页: LED路灯无线传感网络体系 第2页: LED路灯传感网络协议包格式 第3页: LED路灯传感网络路由协议 第4页: LED无线网络节点工作流程
174 次阅读|0 个评论
美国能源部(DOE)提出新的LED测试规则
cpalcy_660794846 2014-8-5 10:32
  去年四月,美国能源部(DOE)发布了一份有关LED灯测试程序的提议规则制定预通知(NOPR)。此后,陆续发布了两份补充通知(SNOPR)。测试程序的这类规则制定变化将为美国的强制性EISA效率要求的修订奠定基础,该要求包括在美国境内销售的照明产品。 初始NOPR针对的是与照明灯(灯泡)相关的下列衡量标准的测试程序: 流明输出 输入功率 相关色温(CCT) 额定寿命 6月3日,第一份SNOPR发布。通过支持联邦贸易委员会(FTC)标签法规和DOE普通照明灯节能标准的实施,该通知对测试程序进行了修订。此外,6月3日发布的SNOPR包含了对测量流明输出、输入功率、相对光谱分布以及计算寿命的增强定义。SNOPR还增添了灯泡发光效率和演色指数(CRI)的新计算方法。 6月26日,发布了第二份SNOPR,进一步定义了用于确定使用寿命和失效时间的计算方法,使其与美国的能源政策与节能法案相匹配。 如果提议的测试方法获得批准,美国其他的效率监管机构(如能源之星)将必须采用此方法来确定照明灯是否符合其要求。 对最新SNOPR的意见征询日期截止到2014年8月4日。如有任何意见方反馈,请发送电子邮件至:LEDLamps-2011-TP-0071@ee.doe.gov(请在主题行注明文件编号EERE-2011-BT-TP-0071)。或者,您也可以访问联邦电子规则制定门户网站:www.regulations.gov,并按照操作说明提交意见反馈。  
303 次阅读|0 个评论
【博客大赛】Nexys3学习手记5:流水灯在线运行
热度 8 ilove314_323192455 2013-8-16 11:26
Nexys3学习手记5:流水灯在线运行          在进行第一个工程实例前,顺便提一下设计工具相关资源的获取。从特权同学接触的几家FPGA开发工具来看,Xilinx在这方面做得应该算是最人性化的了,其设计资源可谓唾手可得。如图1所示,当我们开启ISE软件后,主窗口便会显示这样一个带有介绍和引导链接的页面。这里我们主要提一下它的Documentation。 图1 ISE设计资源引导界面          点开Documentation,如图2所示,其实是直接打开了Xilinx的一个客户端小工具Documentation Navigator(简称DocNav)的下载页面。这是一款不错的Xilinx设计文档在线浏览工具,非常推荐各位下载并安装。 图2 Documentation页面          如图3所示,打开DocNav软件的首页,可以看到各类开发相关的归类文档,这个小工具让Xilinx的各类文档一目了然,极大的方便了设计者对文档资源的索取和阅读。这么大的一个文档资源库,恐怕花个一年半载的都未必能够通读一遍,实际上压根个也没有这个必要。一般来说,建议设计者对这些文档的基本用处有所了解即可,而在遇到一些设计小问题的时候脑子里能够灵光一现,想起来大概哪个文档里会有解决问题的办法,而后再过来翻看也就足够了。 图3 DocNav首页          再说每个软件都有Help,ISE中点开菜单栏的HelpàHelp Topics…,便如图4所示。记得特权同学大三那年一个被认为牛的不行的留过洋的微波课老师第一次和我们提Project,还让我们用 Matlab画smith圆图,那时对专业英文一知半解的我们才发现原来Help里面要啥有啥,真可谓大百科全书。所以捏,同学们都要好好利用Help这玩意,不懂就问,最简单快捷的问法就是Search。 图4 ISE Help页面 好了,那么下面我们要简单的做个ISE工程的范例,写个流水灯的小代码下载到FPGA中看看效果。 双击打开桌面的快捷方式“Xilinx ISE Design Suite 13.3”,点击菜单栏的FileàNew Project…。出现如图5所示的新工程设置界面,输入工程名并定位好工程存储文件夹位置,完成后点击Next进入下一步。 图5 工程名与存储设置          器件与工程属性设置如图6所示。设置完毕再Next便Finish。 图6 器件与工程属性设置          此时我们看工具左侧窗口,选中Design便如图7所示。Hierarchy下只有工程名和相应器件显示,可谓设计文件一片空白,咱要来此拓荒了。首先,我们需要添加源代码文件到工程中。 图7 Design窗口          在Hierarchy窗口的空白处右键点击New Source…,如图8所示。这里可以选择新建各类源文件,包括IP核、基于处理器的系统、verilog或VHDL源文件以及测试脚本等等。我们需要新建一个verilog源代码文件,所以选择Verilog Module,给模块命名,通常顶层代码源文件名建议和工程名一致,免得后面一串麻烦事。 图8 新建源文件          新建的源代码.v文件会自动添加到Hierarchy下,并且直接在主窗口中打开源文件如图9所示。 图9 源代码文件          此时需要编写一段流水灯测试代码,如下所示: module test1led(             clk,rst_n,             led         );   input clk;      //100MHz input rst_n;    //低电平复位信号   output led;    //分频信号,连接到蜂鸣器   //--------------------------------------------------- reg cnt;   //分频计数器   always @ (posedge clk or negedge rst_n) //异步复位     if(!rst_n) cnt = 23'd0;     else cnt = cnt+1'b1;   //寄存器cnt循环计数   //---------------------------------------------------- reg ledr;  //LED流水灯   always @ (posedge clk or negedge rst_n)     if(!rst_n) ledr = 8'd1;     else if(cnt == 23'h7fffff) ledr = {ledr ,ledr }; //大约每80ms让led左移一次   assign led = ledr;   endmodule          接下来需要对管脚进行分配,如图10所示,Hierarchy中需要先选中顶层代码文件testled.v,然后双击Processes下的User ConstraintsàI/O Pin Planning(PlanAhead) – Post-synthesis(或者I/O Pin Planning(PlanAhead) – Pre-synthesis,两者的区别在于在分配管脚时是否synthesis了,一般是无关紧要的)。 图10 PlanAhead启动          Xilinx的工具做得真是独具匠心啊,打开PlanAhead后的欢迎界面不得不让我们发出“设计文档无处不在”的感慨。如果想深入了解PlanAhead工具,不妨好好拜读下这里罗列的PlanAhead User Guide。 图11 PlanAhead的欢迎界面          如图12所示,参照原理图NEXYS3_sch.pdf,在PlanAhead的I/O Ports中对该实例的管脚进行分配。其中rst_n使用了拨码开关SW1,板级验证的时候注意将SW1朝板子内侧拨动即处于正常运行状态。分配完成后保存设置即可退出PlanAhead。 图12 管脚分配          回到ISE中,双击图10的Processes下Generate Programming File进行编译生成.bit下载文件。然后使用上节提到的Adept工具,在Config功能项中加载并烧录工程文件夹下生成的test1led.bit文件。接着,我们就可以看到在线烧录到FPGA器件中的代码运行起来了,SW1拨码开关处于内侧时,8个流水灯跑的很欢。    
个人分类: Nexys3学习手记|1833 次阅读|8 个评论
美国环保署(EPA)发布最新版能源之星照明灯规范草案
cpalcy_660794846 2013-5-6 16:26
本月初,美国环保署(EPA)分发了能源之星照明灯规范第1版(ENERGY STAR Lamps Version 1)最新草案。新规范从2011年年中开始制定,现在仍在制定之中,它的目的是替换现行的CFL和LED能源之星能效规范。 第4稿与上一稿相比包括许多变化: 更新了闪烁、流明维持率、全向灯、半定向灯、定向灯和装饰灯的定义 新增了闪烁指数、百分比闪烁和周期频率的定义 更新了可调光灯的测试要求 调整了可接受的闪烁指数范围 LED灯的大部分要求在新草案中都保持不变,它们包括调光器性能、功率因数(5 W以上照明灯为0.7或更高)以及发光效率(如表1所示)。尽管曾有利益相关者要求降低CRI* ≥ 90的照明灯的效率,但这一要求被EPA拒绝,因为测试数据显示市场上目前销售的照明灯能同时满足高CRI及高发光效率要求。 表1. 所有照明灯的最低发光效率(资料来源:能源之星) 灯泡额定 功率(W) 灯泡最低 发光效率 (初始,lm/W) 全向灯 15 55 ≥15 65 定向灯 20 40 ≥20 50 装饰灯 15 45 15≤ W 25 50 ≥25 60 如果某款照明灯在市场宣传中声称是具有切相调光性能的可调光灯(例如,使用在大多数家庭都能看到的标准可控硅调光器),那么必须使用至少来自两家制造商的十款调光器来测试其兼容性。至少其中一款调光器必须宣称能兼容CFL或LED灯。 在新规范的制定过程中,闪烁问题始终是讨论话题之一。EPA已经调整了可接受的闪烁指数范围,并引入了一个频率依赖性方程式以解决与驱动器级中的PWM电路相关的问题(见下面表2)。 表2. 所有LED灯的最低闪烁效率(资料来源:能源之星) 灯具类型 能源之星要求 所有标示为可调光的 照明灯 照明灯必须具有一个 ≥120 Hz的周期波形周期频率,并且闪烁指数必须小于等于下表中的值(在调光器的设置和已调光条件下进行评估)。  光波形  周期频率  (单位Hz) 闪烁指数 120-800 (周期频率乘以0.001) 大于800 不适用 频率未定的照明灯必须有个百分比调光值≤30%。 80%的照明灯/调光器组合都必须满足此要求。 未来版本的照明灯规范可以考虑照明灯集成了额外的耗能功能(wi-fi)、兼容Zhaga标准的LED灯引擎以及改进了照明灯的调光体验、色彩带质量和一致性。 Lamps Version 1规范将于最终要求发布12月后生效。有关第4稿规范和测试方法的详细信息,请 单击此处 。如想报名参加将于5月13日举行的旨在探讨修订提议的网络研讨会,请发送电子邮件至 lamps@energystar.gov ,并在主题行注明"Lamps Draft 4 webinar"字样。请务必在邮件中提供您的姓名、公司名、电话号码和电子邮件地址。 *CRI = 演色指数
608 次阅读|0 个评论
恒流源LED 驱动器
yueleilei2004_790049340 2013-3-28 21:45
介绍一个很有用的恒流源驱动LED的电路。 原理图如下:     可以用分立器件来搭这个电路或者用类似BCR401的集成元器件来做。   附件为BCR401的规格书。
个人分类: 硬件电路|397 次阅读|0 个评论
天逸按钮 西安销售处 LA42 LA423
j85225391 2013-3-9 14:18
上海天逸按钮 西安销售处  联系电话:薛瑞变 13119112560 LA42(B)P-11/R LA42(B)P-11/G LA42(B)P-11/Y LA42(B)P-11/W LA42(B)P-11/S LA42(B)P-11/B LA42(B)P-22/R LA42(B)P-22/G LA42(B)P-22/Y LA42(B)P-22/W LA42(B)P-22/S LA42(B)P-22/B LA42(B)PS-11/R LA42(B)PS-11/G LA42(B)PS-11/Y LA42(B)PS-11/W LA42(B)PS-11/S LA42(B)PS-11/B LA42(B)PS-22/R LA42(B)PS-22/G LA42(B)PS-22/Y LA42(B)PS-22/W LA42(B)PS-22/S LA42(B)PS-22/B LA42(B)PF-11/R LA42(B)PF-11/G LA42(B)PF-11/Y LA42(B)PF-11/W LA42(B)PF-11/S LA42(B)PF-11/B LA42(B)PF-22/R LA42(B)PF-22/G LA42(B)PF-22/Y LA42(B)PF-22/W LA42(B)PF-22/S LA42(B)PF-22/B LA42(B)PSF-11/R LA42(B)PSF-11/G LA42(B)PSF-11/Y LA42(B)PSF-11/W LA42(B)PSF-11/S LA42(B)PSF-11/B LA42(B)PSF-22/R LA42(B)PSF-22/G LA42(B)PSF-22/Y LA42(B)PSF-22/W LA42(B)PSF-22/S LA42(B)PSF-22/B LA42(B)PJ-11/R LA42(B)PJ-11/G LA42(B)PJ-11/Y LA42(B)PJ-11/W LA42(B)PJ-11/S LA42(B)PJ-11/B LA42(B)PJ-22/R LA42(B)PJ-22/G LA42(B)PJ-22/Y LA42(B)PJ-22/W LA42(B)PJ-22/S LA42(B)PJ-22/B LA42(B)PSJ-11/R LA42(B)PSJ-11/G LA42(B)PSJ-11/Y LA42(B)PSJ-11/W LA42(B)PSJ-11/S LA42(B)PSJ-11/B LA42(B)PSJ-22/R LA42(B)PSJ-22/G LA42(B)PSJ-22/Y LA42(B)PSJ-22/W LA42(B)PSJ-22/S LA42(B)PSJ-22/B LA42(B)PD-11/R LA42(B)PD-11/G LA42(B)PD-11/Y LA42(B)PD-11/W LA42(B)PD-11/S LA42(B)PD-11/B LA42(B)PD-22/R LA42(B)PD-22/G LA42(B)PD-22/Y LA42(B)PD-22/W LA42(B)PD-22/S LA42(B)PD-22/B LA42(B)PSD-11/R LA42(B)PSD-11/G LA42(B)PSD-11/Y LA42(B)PSD-11/W LA42(B)PSD-11/S LA42(B)PSD-11/B LA42(B)PSD-22/R LA42(B)PSD-22/G LA42(B)PSD-22/Y LA42(B)PSD-22/W LA42(B)PSD-22/S LA42(B)PSD-22/B LA42(B)PDF-11/R LA42(B)PDF-11/G LA42(B)PDF-11/Y LA42(B)PDF-11/W LA42(B)PDF-11/S LA42(B)PDF-11/B LA42(B)PDF-22/R LA42(B)PDF-22/G LA42(B)PDF-22/Y LA42(B)PDF-22/W LA42(B)PDF-22/S LA42(B)PDF-22/B LA42(B)PSDF-11/R LA42(B)PSDF-11/G LA42(B)PSDF-11/Y LA42(B)PSDF-11/W LA42(B)PSDF-11/S LA42(B)PSDF-11/B LA42(B)PSDF-22/R LA42(B)PSDF-22/G LA42(B)PSDF-22/Y LA42(B)PSDF-22/W LA42(B)PSDF-22/S LA42(B)PSDF-22/B LA42(B)PDJ-11/R LA42(B)PDJ-11/G LA42(B)PDJ-11/Y LA42(B)PDJ-11/W LA42(B)PDJ-11/S LA42(B)PDJ-11/B LA42(B)PDJ-22/R LA42(B)PDJ-22/G LA42(B)PDJ-22/Y LA42(B)PDJ-22/W LA42(B)PDJ-22/S LA42(B)PDJ-22/B LA42(B)PSDJ-11/R LA42(B)PSDJ-11/G LA42(B)PSDJ-11/Y LA42(B)PSDJ-11/W LA42(B)PSDJ-11/S LA42(B)PSDJ-11/B LA42(B)PSDJ-22/R LA42(B)PSDJ-22/G LA42(B)PSDJ-22/Y LA42(B)PSDJ-22/W LA42(B)PSDJ-22/S LA42(B)PSDJ-22/B LA42(B)X2-11/R G B LA42(B)X2-22/R G B LA42(B)X3-22/R G B LA42(B)X2F-11/R G B LA42(B)X2F-22/R G B LA42(B)X3F-22/R G B LA42(B)X2J-11/R G B LA42(B)X2J-22/R G B LA42(B)X3J-22/R G B LA42(B)Y2-11 LA42(B)Y2-22 LA42(B)Y3-22 LA42(B)Y2F-11 LA42(B)Y2F-22 LA42(B)Y3F-22 LA42(B)Y2J-11 LA42(B)Y2J-22 LA42(B)Y3J-22 LA423PF-11 LA423PF-22 LA423DF- LA423JF LA423PDF-11 LA42H-40 — 点此查看更多 — XB10502 XB10503 XB10504 XB13001 XB13501 XB13502 XB13503 XB16501 XB20001 DB10502 DB10503 DB10504 DB13001 DB13501 DB13502 DB13503 DB16501 DB20001 QB10502 QB10503 QB10504 QB13001 QB13501 QB13502 QB13503 QB16501 QB20001 F10502(ABS) PF10502(PC) F10503(ABS) PF10503(PC) F10504(ABS) PF10504(PC) F13001(ABS) PF13001(PC) F16501(ABS) PF16501(PC) JD90B-L02F0208S122 JD90A-L02Y024 JD90B-L02F0208R024 JD70A-L02S024 JD70A-SO2R024 JD50A-L02R024 JD50A-S02G024 JD50CA-L02G024 JD50CA-S02S122 JD701-L02R024 JD702-F0208B024 JD701-L02Y024 JD702-F0108B122 JD701-H01G122 JD701-H01W122 JD701-H01S122 JD701-X04R024 JD701-X04Y024 JD701-X04G024 JD501-L02Y024 JD501-L02G024 JD501-L02Y024 JD501-H01G122 JD501-H01Y122 JD501-H01S122 JD502-F0108B024 JD501-X04G204 JD501-X04Y024 JD501-X04S024 JD503 JD503B JD901 JD902 JD90C JD90E JD150A JD150B JD36E3-L01GYR024 JD36F3-L01GYF0106B024 JD50E3-L01RGY024 JD50E3-L01RGY024 JD150PA JD150PC JD150PB JD110P JD90F JD90F(B)
91 次阅读|0 个评论
加州的LED灯规范已取得重大进展
cpalcy_660794846 2012-12-17 15:04
两个月前,我就加州能源委员会(CEC)发布的一份LED灯规范提议稿进行了报道(参见 为用户友好型的LED灯泡所实行的退税计划是否即将来临? )。该规范旨在确保LED灯满足某些最低性能和效率水平标准,以便能符合电力退税计划的要求。 该规范一直以研讨会的形式进行讨论,在会中对详细信息做出报告、与会者提供反馈意见并与能源之星的同类规范进行比较*。 就在几天前,CEC发布了 该规范的最终稿 。除了发布规范外,CEC还计划于 12月12日的业务会议 中探讨该规范的采用可能性。 会议信息 能源委员会业务会议 - 日程安排 2012年12月12日 加州萨克拉门托市 第九大街1516号 一楼A号听证室(邮编95814) 上午10点 (设有无障碍设施) 敬请关注本博客,以及时了解加州LED照明计划的最新信息。 *CEC 报告提议与美国环保署(EPA)在能源之星照明产品适用规范中考虑的众多要求保持一致。  
289 次阅读|0 个评论
有关加州LED退税计划的更多消息
cpalcy_660794846 2012-11-5 09:32
本期博客是对我在本月早些时候的一篇有关CEC的自愿性LED灯提议规范的快速跟进报道。此项规范的主要目的是为未来的电力退税计划提供性能要求。(请参阅: 为用户友好型的LED灯泡所实行的退税计划是否即将来临? ) 10月11日研讨会的相关资料已于近期发布。这些资料包括:会议日程、公众意见以及提议规范副本。此外,还包括不列颠哥伦比亚大学Lorne Whitehead博士的幻灯片演示文稿,重点探讨演色指数(CRI)规格。在该文件中,Whitehead博士专门解析了有关提高CRI将会消耗更多能源并增加成本的说法,他认为更好的CRI可以降低对光通量(流明)的需要,因此实际上可以降低功率要求。 本次研讨会所涉及的其他问题包括对能源之星和CEC规范进行比较、加州公用事业委员会有关使用其上游*计划的概要介绍以及来自业界和电力企业的意见观点。 如需查阅研讨会资料,请 访问CEC网站 。 *术语“上游”是指为制造商和零售商提供激励措施,以降低成本、提高质量或改进差异性、提高产品的可用性或可见性、制定并实施销售点退税措施和/或各种其他推广措施。
317 次阅读|0 个评论
为用户友好型的LED灯泡所实行的退税计划是否即将来临?
cpalcy_660794846 2012-10-22 12:00
针对采用最新节能技术的产品制定的消费者退税计划并不能保证市场会发生转型。一个很好的例子的就是,自从上世纪90年代初加州的电力部门推出第一个紧凑型荧光灯(CFL)灯退税计划以来,CFL灯并未在该州获得很高的采用率,结果令人失望。 为避免历史重演,加州能源委员会(CEC)在最近发布了一份工作人员报告(提议的自愿性加州高质量发光二极管(LED)灯规范),该报告对通用LED螺口灯提出了最低性能规范建议。其目标是为电力部门提供一些基本的LED灯性能要求,确保将来的电力部门退税计划所涵盖的LED灯能满足或超出客户的预期。 提议规范仅适用于可替换灯具中螺口白炽灯的LED灯。不涵盖的产品包括彩色LED灯、LED灯条及灯带、线性LED针座灯以及LED集成灯。 CEC报告提议与美国环保署(EPA)在能源之星照明产品适用规范第1版第2稿中考虑的众多要求保持一致,这些要求包括发光效率水平和≥25,000小时的最低额定使用寿命。该报告还对家用LED灯的功率因数提出了更为严格的要求,将EPA要求从≥0.7提升到了≥0.9。 如需下载提议的高质量LED灯规范,请 点击这里 。 加州委员会计划在10月11日在萨克拉门托举行一次研讨会,以便与利益相关者和感兴趣的相关各方探讨最新提议。有关参加本次研讨会(无法亲自出席本次会议者可观看现场直播)的信息,请 点击这里 。
417 次阅读|0 个评论
使用Freescale 56F8346 数字信号控制器(DSC)的SPI控制LED显示(5)(END)
119559967_950414014 2012-10-20 12:02
  Event.c 中做如下处理:   static byte *OEGA_ACT = {   charLED,   charLED,   numLED,     numLED,     numLED,     numLED }; // 定义 LED 显示各位的指针数组   unsigned int speed =258; // 定义一个要显示的实际值 unsigned int CharOrNumOffset ;// 定义指针数组各指针的偏移量数组 byte *CharSend ;        // 定义指针数组各指针加上偏移量之后的指针数组 unsigned int length1,length2;// 数组长度   中断事件代码处理内容: #pragma interrupt called                         void TI1_OnInterrupt(void) {   /* Write your code here ... */       unsigned int i;     Bit1_ClrVal();              length1 = sizeof(OEGA_ACT)/2;//12     length2 = sizeof(*OEGA_ACT);//2         transValueLed(speed,CharOrNumOffset,flagSPEED);       for(i=0;i     {     *(CharSend+i) = *(OEGA_ACT+i)+*(CharOrNumOffset+i);     }             SM1_SendChar(*(*(CharSend+0)));     SM1_SendChar(*(*(CharSend+1)));     SM1_SendChar(*(*(CharSend+2)));     SM1_SendChar(*(*(CharSend+3)));     SM1_SendChar(*(*(CharSend+4)));     SM1_SendChar(*(*(CharSend+5)));             Bit1_SetVal();     // 锁存     Bit1_ClrVal();     // 锁存     }  
386 次阅读|0 个评论
使用Freescale 56F8346 数字信号控制器(DSC)的SPI控制LED显示(4)
119559967_950414014 2012-10-20 12:00
LED.c 代码如下:   #include "LED.h"     #define MOTORSPEED 5   /* 此函数将采集的量 , 比如电机转速 Value, 转化成 LED 对应的某个字符 , 每一位的字符存储在一个字符数组   返回该字符数组的指针   Value - actual value..etc,1265rpm   pParamLED - stroe the charactor's offset address   paramID - for identify the param which it present. etc.MOTORSPEED present the value is motor             speed. */   unsigned int* transValueLed(unsigned int value,unsigned int *pParamLED,unsigned int paramID1,unsigned int paramID2) {   unsigned int temp;     *pParamLED = paramID1;      //F   *(pParamLED+1) = paramID2; //n   *(pParamLED+2) = value/1000;   temp = value%1000;   *(pParamLED+3) = temp/100;   temp = temp%100;   *(pParamLED+4) = temp/10;   temp = temp%10;   *(pParamLED+5) = temp/1;   temp = temp%1;     return pParamLED; }   /* 此函数将对应要发送的字符的地址指针对应的字符存入一个数组   pSend - pointer to arrary that save the value of charactor that to be send   pParamBit - 指向相应参数的指针数组 .   pParamLED - 指向 LED 字符便宜量的指针 .   此函数替代以下这段代码   for(i=0;i     {         *(CharSend+i) = *(OEGA_ACT+i)+*(CharOrNumOffset+i);     //SM1_SendChar(*(*(CharSend+i)));     } */ void valuePointedChar(byte **pSend,byte **pParamBit,unsigned int *pParamLED) {     unsigned int i,temp;   temp = 6;//sizeof(pParamBit)/2;// 不能用 sizeof, 因为 sizeof(pParamBit) 始终为 0.   for(i=0;i   {     *(pSend+i) = *(pParamBit+i)+*(pParamLED+i);   } //    return pSend; }
377 次阅读|0 个评论
使用Freescale 56F8346 数字信号控制器(DSC)的SPI控制LED显示(3)
热度 4 119559967_950414014 2012-10-20 11:58
LED 显示数据处理 新建两个文件分别命名为 LED.h 和 LED.c 。 在 LED.h 中定义两个数组, LED.h 代码如下 : #include "cpu.h"   #define LEDNUMLENGTH    10 #define LEDCHARLENGTH   16   /* 表示显示何种参数代号,比如电机转速为 Fn*/ #define MTRSPEED1       5   //F #define MTRSPEED2       8   //n   unsigned int* transValueLed(unsigned int value,unsigned int *pParamLED,unsigned int paramID1,unsigned int paramID2); void valuePointedChar(byte **pSend,byte **pParamBit,unsigned int *pParamLED);   static byte byteDOT = 128; static byte numLED = {   0xc0,           //0     192   1   0xf9,           //1     249   2   0xa4,           //2     164   3   0xb0,           //3     176   4   0x99,           //4     153   5   0x92,           //5     146   6   0x82,           //6     130   7   0xf8,           //7     248   8   0x80,           //8     128   9   0x90            //9     144   10   }; static byte charLED = {     0x88,           //A     136   1   0x83,           //b     131   2   0xa7,           //c     167   3   0xa1,           //d     161   4   0x86,           //E     134   5   0x8e,           //F     142   6   0x8b,           //h     139   7   0xc7,           //L     199   8   0xab,           //n     171   9   0xa3,           //o     163   10   0x8c,           //p     140   11   0x87,           //t     135   12   0xe3,           //u     227   13   0xbf,           //-     191   14   0x7f,           //.     127   15   0xff            //null 255   16    };
443 次阅读|4 个评论
使用Freescale 56F8346 数字信号控制器(DSC)的SPI控制LED显示(2)
119559967_950414014 2012-10-20 11:54
二 显示方法及程序设计     2.1 显示方法   从表 1 和图 3 可以看出,最先从 U400 进入的 1byte 数据最后移位到 U404 ,当传输 6byte 数据的时候,最后 1byte 数据传输到 U404 ,因此 U404 驱动显示图 3 中的 LED405 ,以使显示方向不会颠倒。     从图 1 可以看出, 8 段 LED 各段的驱动位如下图所示。   图 4   因此我们可以根据不同需要显示的数字或字符,设计对应的 byte 型 8 位数据,如下表所示。   2.2 程序设计   程序设计中使用一个定时器每隔 100ms 通过 SPI 定时发送一组 6 位字符,锁存信号使用一个 IO 口豆输出控制。     2.2.1 SPI 豆       图 5 SPI 豆配置 如图 5 所示为 SPI 豆配置。   使能发送器空和接收器满中断,输入和输出缓存大小值设为 6 。   数据宽度为 8bits ,设相应管脚,移位周期,时钟边沿,并在初始化代码中使能该 SPI 模块。   SPI 工作情况如下。 1.   在定时器中断中向发送 buffer 写入数据。 • 写入数据的程序模块中,对发送的字节长度计数,如果计数值等于 buffer 长度,返回 buffer 已满错误。 • 在向发送 buffer 写入数据之前禁止全局中断。 • 向发送 buffer 写入数据,如果‘发送写’指针指到 buffer 顶部,重新将 buffer 首地址赋给‘发送写’指针。 • 使能发送寄存器器空中断使能。 • 使能全局中断 2.   在步骤 1 中,我们使能了发送寄存器空中断。因此当发送寄存器空的时候,会产生一个中断,在中断处理程序中,将 buffer 的数据写入发送寄存器。    • 设置 onTXChar 标志    • 将发送缓存的数据送入发送寄存器,如果移送完成后指针已指到发送缓存顶部,则重新将缓存首地址赋给指针。     • 数据发送完之后,清发送寄存器空中断标识。     • 设置其他标识,以便于触发其他程序。       定时器豆 图 6 定时器豆 定时器 100ms 产生一次中断。      
419 次阅读|0 个评论
使用Freescale 56F8346 数字信号控制器(DSC)的SPI控制LED显示(1)
热度 1 119559967_950414014 2012-10-20 11:39
引言 先说说56F8346数字信号控制器,这是Freescale推出的16位基于56F8000内核的数字信号控制器,在电机控制领域有着出色的表现,比如感应电机的空间矢量控制,永磁同步电机及BLDC的数字控制。因此,特别适用于变频调速系统、伺服马达系统、家用电器的马达控制领域。 再说说56F8346的开发平台,Freescale有专门提供给16位DSC的软件平台,我当时用的是CodeWarrior7.0,有ProcessorExpert模块,其中有针对DSC内部各功能模块底层配置的Bean(豆),下文的叙述会涉及到,开发起来特别方便灵活,节省时间。 另外,Freescale的技术支持一如既往的到位,其官网有大量的应用案例和程序方面学习下载。 本文涉及的内容是2年以前,我利用业余时间把同事原本作为用于变频器的LED显示模块用来开发DSC的SPI,完全出于好玩的心态,不过,其本身还是具有实际意义的,希望对涉及这一块开发的朋友有借鉴意义。 使用Freescale 56F8346数字信号控制器(DSC)的SPI控制LED显示,显示的内容很多,可以通过SPI让其显示系统电压、电流、PID参数、电机转速、温度等等。 由于时间久远,没有当时显示效果的图片,仅有实物参考图。 正面照 背面照 内部正脸 内部背面 一 LED 排布及电路     LED 采用的是带小数点的八段显示数码管,本例中使用六只 LED 排布显示。使用 8 位的串行移位输入并行输出的 74hc595 芯片驱动 LED 显示。因此用到了 DSP 的 SPI 模块,本例中仅用到 SPI 模块的 master 模式。其电路原理如下图所示   图 1 LED 线路原理图 图 2 SPI 简图   图 2 中, Q7’ 为串行移位输出口, Q0 到 Q7 为并行输出驱动 LED 。   从图 1 中,我们可以找到 LED 和相应 74HC595 芯片的对应关系如下。 表 1 ( 注:数据从 U400 进入 ) LED LED401 LED403 LED404 LED400 LED402 LED405 74hc595 U400 U402 U404 U401 U403 U404 · 图 3 LED 排布  
558 次阅读|0 个评论
欧洲的生态设计指令将纳入定向灯和LED灯的性能标准
cpalcy_660794846 2012-10-9 18:05
欧盟委员会的生态设计指令法规委员会在近期举行了一次会议,就一份涵盖定向灯(家用及专用定向灯)、所有 LED 灯以及相关设备的条例草案展开讨论。该条例(称为 Lot 19 第 2 部分)定稿后,将会对之前已经实施的两项生态设计照明标准提供补充,这两个条例分别是针对非定向家用照明的 244/2009 ( Lot 19 第 1 部分)和针对专业照明的 245/2009 (Lots 8/9) 。这三项标准将全面涵盖欧洲专业和家用照明应用领域内的主要照明产品。在几年前撰写最初的先期研究时,由于缺乏产品及测试数据, LED 照明未被涵盖到第 1 部分中。 Lot 19 第 2 部分草稿提出了以下要求: 定向灯最低能效要求,以逐步淘汰能效不高的白炽灯 定向及非定向 LED 灯功能要求 灯与控制设备要求,以确保兼容性 为消费者提供有关产品性能及兼容性的产品信息 该草案建议制定三个阶段的能效要求 — 第一阶段于 2013 年 9 月 1 日生效,第二阶段于 2014 年 9 月 1 日生效,第三阶段于 2016 年 9 月 1 日生效。鉴于 LED 技术的快速发展,该委员会计划在条例生效后的三年内对其进行评审。 提议的 LED 灯功能要求如下表所示。 表 5. LED 灯功能要求 功能参数 自第 1 阶段起的要求(另有指明者除外) 6000 小时时的灯残存率 自第 2 阶段: ≥ 0.90 6000 小时时的流明维持率 自第 2 阶段: ≥ 0.80 失效前的开关周期数 ≥ 15000 (如果灯额定寿命 ≥ 30000 小时),否则: ≥ 灯额定寿命的一半(以小时为单位) 启动时间 0.5 秒 灯预热时间达到 95% Φ 2 秒 过早失效率 ≤ 5.0% (达到 1000 小时时) 演色指数 (Ra) ≥ 80 ≥ 65 (如果灯根据本附件的 3.1.3(l) 点用于室外或工业应用) 光色一致性 在六阶 MacAdam 椭圆内或更小范围内分布的相关色温 (CCT) 灯功率因数 (PF) P ≤ 2W :无要求 2W P ≤ 5W : PF 0.4 5W P ≤ 25W : PF 0.5 P 25W : PF 0.9 资料来源: EC Lot 19 第 2 部分条例草案 完整条例草案和解释备忘录可在以下网页中找到: http://www.powerint.com/en/green-room/agencies/ec-eup-eco-directive  
821 次阅读|0 个评论
EPA进一步统一照明灯规范,但仍有很长的路要走
cpalcy_660794846 2012-7-31 11:12
 美国环保署(EPA)刚刚发布了一项能效规范的第2稿,旨在将单独的LED和CFL照明灯规范进行合并。 这项雄心勃勃的计划于去年10月启动,当时EPA针对包括定向灯、全向灯、半定向灯和装饰灯在内的一般照明灯发布了一项具有技术中立性的规范初稿。该计划不涵盖以下照明灯:采用外部镇流器的照明灯、采用非ANSI灯座的照明灯、 符合扎嘎(Zhaga)标准的光源以及用于替换线性荧光灯或高密度放电灯的LED照明灯。 尽管有些要求(例如,发光效率、相关色温(CCT))比较容易进行合并,但其他要求(例如,最低使用寿命、功率因数)已经证明难以在LED和CFL制造商之间达成一致,这就造成了不同的最低性能标准。与此同时,有些要求(包括针对所有照明灯的LED灯工作频率和调光要求)被列为“待定”,这表明在最终稿发布之前至少还要发布一份草案。 在去年举行的一次利益相关者会议上,EPA提议,如果能够大幅降低LED灯的制造成本的话,可将LED灯的使用寿命要求从≥25,000小时降至≥10,000小时,这样可降低零售价格并加快市场转变进程(参阅Mr. Green的博客:产品的使用寿命能否过长?)。EPA最近得出这样的结论:“虽然将LED灯的最低使用寿命降至10,000小时可为低售价产品更快地推向市场带来新的机会,但相关成本削减在很大程度上仍然未知,并且可能并不显著”。于是决定将非装饰LED灯的最低使用寿命保持在25,000小时。 下表重点介绍了某些提议的规范要求。如需完整的第2稿副本,请单击本博客结尾处的链接获取。 灯泡类型 能源之星要求 灯泡空间应满足下表中的适用要求。 灯泡输入功率(W) 灯泡最低发光效率(初始,lm/W) 全向灯和半定向灯 10 55 ≥10 60 定向灯 10 40 ≥10 45 装饰灯 10 45 ≥10 50 表1. 发光效率要求:所有灯泡(资料来源:ENERGY STAR Lamp Program V1, D2) 灯泡类型 能源之星相关色温要求 全部 灯泡光输出应与下面的额定CCT之一相关联: 2700K、3000K、3500K、4000/4100K、5000K、6500K 表2. CCT要求(资料来源:ENERGY STAR Lamp Program V1, D2) 灯泡类型 能源之星要求 紧凑型荧光灯 照明灯的额定使用寿命应≥10,000小时。 在达到额定使用寿命的40%或使用6,000小时(以先到者为准)后,所有被测照明灯必须能够正常工作(如果同时发生,≥90%的被测照明灯能正常工作)。在达到第二点时,≥90%的被测照明灯应能够正常工作 在达到额定使用寿命时,≥50%的被测照明灯应能够正常工作。 固态照明 装饰灯的额定使用寿命应≥15,000小时。所有其他照明灯的额定使用寿命应≥25,000小时。以商业级产品进行销售的照明灯的额定使用寿命应≥35,000小时。 所有被测照明灯在使用3,000后应能够正常工作。 ≥90%的被测照明灯在使用6,000后应能够正常工作。 表3. 额定使用寿命要求(资料来源:ENERGY STAR Lamp Program V1, D2) 灯泡类型 能源之星要求 紧凑型荧光灯 家用级照明灯的功率因数应≥ 0.5,或者商业级照明灯的功率因数应≥0.9。 固态照明 家用级照明灯的功率因数应≥ 0.7,或者商业级照明灯的功率因数应≥0.9。 表4. 功率因数要求:所有5 W的照明灯(资料来源:ENERGY STAR Lamp Program V1, D2) EPA将于8月8日举行网络研讨会,探讨第2稿的提议修改。此次会议要求提前报名登记。报名时,请将您的姓名、公司名、电话号码和电子邮件地址发送至:lamps@energystar.gov(请务必在电子邮件主题行注明“Lamps Draft 2 Webinar”字样)。 有关详细信息,请访问: http://www.energystar.gov/index.cfm?c=new_specs.lamps 。EPA鼓励利益相关者就规范内容提交自己的意见和建议,截止日期为8月24日。
486 次阅读|0 个评论
LED背光当红 直下式、侧光式各有所好
hamshe_204840070 2012-5-9 10:38
转自ESMCHINA LED 的背光源分为直下式与侧光式,各有优缺点,以及成本差异,但在终端产品售价上则互有高低;研究机构LEDinside认为,由于超薄电视日益受到欢迎,侧光式 LED TV 的销量增长会较快,价格上较平易近人。而直下式LED TV则受到需要高端影音设备的消费者欢迎。   直下式 LED背光 液晶电视 (Direct-lit,Direct Illumination-type LED Backlight)在刚开始发表时,获得电视大厂普遍采用;LEDinside表示,直下式是把 LED芯片 均匀地配置在 液晶面板 的后方当作发光源,使背光可以均匀传达到整个屏幕,画面细节更细腻逼真。   但比起侧光式LED背光得要用上更多的LED芯片,直下式的好处是能够分别设置不同的背光源模块权责区域,理论上也可以做到每一颗LED独立发光控制 亮度 ,但线路与设计成本不易,实际上都是在屏幕的背光源设定多个区域,让这些区域能够独立调整明暗度。   LEDinside表示,一台直下式LED背光的大尺寸液晶电视需要用到上千颗LED芯片,成本相对较高。尤其是早期LED TV刚推出时,使用RGB三色LED来提高 演色性 ,让画面色彩能够更鲜艳,成本自然高居不下,但随着近年业界采用较便宜的 白光LED 来当背光源,目前已经可以调整到较佳的水平。   至于侧光式 LED背光源 ,是把LED芯片配置在 液晶 屏幕的四周边缘,再搭配 导光板 ,让LED背光模块发光时,把从屏幕边缘发射的光透过导光板输送到屏幕中央的区域去,这样整体就有足够的背光量,可让液晶屏幕 显示 画面。   LEDinside表示,侧光式LED背光源的好处有两个,其一是可使用较少颗的LED芯片,节省成本,其二就是能够打造比较轻薄的机身,让LED TV液晶面板的后方不需要配置 LED模块 ,而是放置在侧边,可减少屏幕整体的厚度,打造出较直下式LED背光液晶电视更薄的机种来。   在缺点方面,LEDinside表示,直下式LED TV除成本较高外,画面变换过程中,画面上的亮区域要调整成暗区域时,邻近画面区域的灰阶层次会被影响而降低,产生了些微模糊(blooming)的现象。如果直下式LED背光模块配置在液晶屏幕后方的LED芯片密度越高,或者是分区调光的区域越多,产生模糊现象的机率会比较小。   直下式LED TV较侧光式LED TV耗电,原因是采用较多的LED芯片数,但还是比 CCFL 背光液晶电视省电。而侧光式LED背光技术的好处是可以打造比较轻薄的LED TV机种,成本上也比较便宜;但当前侧光式LED背光的缺点,就是画面均匀性不佳。   LEDinside指出,尽管侧光式LED TV的厚度较薄,可是使用的LED芯片数量比较少,而且是透过导光板的方式把光送到画面,这会造成这种LED TV的四周边缘画面亮度,比屏幕中央要亮,屏幕的边缘区域会比画面中间的温度高。   而当前各国厂商的努力目标,自然是设法改善直下式LED TV的模糊现象、厚度与成本,这必须要靠LED芯片配置数量最佳化、提高发 光效 率、降低LED价格来完成;侧光式LED TV方面则是要改善画面均匀性等缺点。(编辑:于占涛)
1021 次阅读|0 个评论
北京照明LED展见闻
邦德老王 2012-3-1 09:54
阿牛哥系列故事 北京照明展见闻 早春二月京城冷 国展照明很热闹 展馆是一三四五 逛完三四五号馆 看看GE和飞利浦 还有首尔半导体 广东浙江制造商 工程商来聊行情 应用范围很是广 汽车电子和安防 一号展馆人气旺 海军军乐团奏乐 领导讲话带翻译 演讲结束和剪彩 跟着进了一号馆 制造商们都见过 镇流器和节能灯 荧光灯和吸顶灯 LED照明很节能 辣妹热舞拉提琴 还有比亚迪照明 看到天文望远镜 走在边上细琢磨 工作人员来介绍 快速分布光度计          
430 次阅读|0 个评论
LED Lighting
sz013_245677270 2012-2-7 15:18
 LED Lighting (LS2516, JN2297AZ) ??LED Lighting系统规格: -15V/1.5A电源输入. -镍氢或镍镉电池(2000mAh) 8节串联. -充电电流720mA. -2颗LED显示充电状态. -自動充飽時間保護3.7hr, 自动停止充电 -可一边充电, 一边使用. ??LS2516充电控制功能: -自动依镍氢电池电压状态, 作相对充电 控制流程:激活/预充/快充/涓流. -依照规格需求, 可由电阻调整充电电流. -合乎工业界高标准的精准-delta V = 5mV充饱判别. -多重电池保护:过放或老旧电池脉波激活, 过高电池电压停止充电保护, 完整可设定的时间保护. -充电状态双色LED显示:无电池/充电中/ 充饱/异常. -封装SOP-8.   
93 次阅读|0 个评论
广告