tag 标签: LED调光

相关帖子
相关博文
  • 热度 6
    2022-3-17 10:58
    3401 次阅读|
    2 个评论
    用ESP32在Arduino IDE环境下控制多路LED调光
    本项目将在Arduino IDE环境下,利用ESP32产生的PWM信号控制多个LED。项目所需物料如下: ESP32 DOIT DEVKIT V1板 3x 5mm LED 3x 330欧姆电阻器 面包板 跳线若干 ESP32带一个包含16通道LED PWM控制器,可配置以产生不同特性的PWM信号。项目开始之前需要先安装Arduino IDE,连接妥当后就可以把ESP32 DOIT DEVKIT V1板用作LED PWM控制器了。 使用Arduino IDE进行LED调光的步骤如下: 1. 从0 to 15选择PWM通道。 2. 设置PWM频率,LED频率选择5000Hz较好。 3. 选择信号的占空比:,其分表率范围1-16bits。本项目使用8bit,这样可控制的LED亮度等级值为0-255。 4. 指定信号出现的GPIO or GPIOs:其函数为ledcAttachPin(GPIO, channel)。该函数具有两个变量,第一个GPIO用来输出信号,第二个表示产生信号的通道。 5. 使用PWM控制LED亮度,函数为ledcWrite(channel, dutycycle)。其中,第一个变量产生PWM信号,第一个变量是占空比。 一个LED调光控制 点亮一个LED并调光时,应将LED连接于GPIO 16引脚。 ESP32 DEVKIT V1模块有30个GPIOs,只要能用作输出,就可用作PWM引脚以连接LED。 请打开并拷入如下代码: const int ledPin = 16; const int freq = 5000; const int ledChannel = 0; const int resolution = 8; void setup(){ ledcSetup(ledChannel, freq, resolution); ledcAttachPin(ledPin, ledChannel);} void loop(){ for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){ ledcWrite(ledChannel, dutyCycle); delay(15); } = 0; dutyCycle--){ ledcWrite(ledChannel, dutyCycle); delay(15); }} 这些代码的含义是,设定的PWM信号频率为5000Hz,选择通道 0 来产生信号,信号的分辨率为8bits。 当然,也可以设置为其他参数,获得不同的PWM信号,例如: const int freq = 5000; const int ledChannel = 0; const int resolution = 8; 接下来,选择信号的GPIO引脚,函数为ledcAttachPin(ledPin, ledChannel); 增加LED亮度的占空比为0-255, for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){ ledcWrite(ledChannel, dutyCycle); delay(15); } 然后,从255-0自减,就降低了LED的亮度。 = 0; dutyCycle--){ ledcWrite(ledChannel, dutyCycle); delay(15); } 调节LED亮度,须使用 ledcWrite() 函数。该函数有两个参数:产生信号的通道、duty cycle。注意,这里的 ledcWrite() 函数中产生信号的变量是通道,而不是GPIO。 把代码上传到 ESP32,确定板子和COM端口选择正确,再对照下单路,就可以测试调光效果了。 多个LED调光控制 也可以从相同通道的不同GPIO取得同样的信号,这需要将这些GPIOs连接到 setup() 的相同通道。以下我们对上述操作稍作改动,来通过相同通道的相同PWN信号对3个LED进行调光控制。 我们的目标是通过30 GPIOs的ESP32 DEVKIT V1模块来控制三个LED。 首先,将下列代码拷贝到Arduino IDE中。 // the number of the LED pin const int ledPin = 16; const int ledPin2 = 17; const int ledPin3 = 5; // setting PWM properties const int freq = 5000; const int ledChannel = 0; const int resolution = 8; void setup(){ // configure LED PWM functionalitites ledcSetup(ledChannel, freq, resolution); // attach the channel to the GPIO to be controlled ledcAttachPin(ledPin, ledChannel); ledcAttachPin(ledPin2, ledChannel); ledcAttachPin(ledPin3, ledChannel); } void loop(){ // increase the LED brightness for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){ // changing the LED brightness with PWM ledcWrite(ledChannel, dutyCycle); delay(15); } // decrease the LED brightness = 0; dutyCycle--){ // changing the LED brightness with PWM ledcWrite(ledChannel, dutyCycle); delay(15); } } 这些代码在前面基础上有一些改动:为两个新的LED增加了多个变量,具体参考 GPIO 17 和 GPIO 5。 const int ledPin2 = 17; // 17 corresponds to GPIO17 const int ledPin3 = 5; // 5 corresponds to GPIO5 然后,在 setup() 中,添加如下两行代码,将这两个 GPIOs 指派给通道0。这表示,在两个GPIO的通道0上产生了相同个信号。 ledcAttachPin(ledPin2, ledChannel); ledcAttachPin(ledPin3, ledChannel); 把修改后的代码上传到 ESP32,确定板子和COM端口选择正确后,就可以测试者三个LED调光效果了。 由于所有GPIOs 输出了相同PWM信号,所有三个LED亮度的增加与减少是同时进行的,这样就产生了一个非常美妙的同步效果。 本项目演示了如何在Arduino IDE环境下,使用ESP32的LED PWM控制器进行调光控制。通过设置正确的信号属性,这种方法可用来控制其他PWM输出,如马达、LED 呼吸灯等。
  • 热度 19
    2014-4-2 15:13
    1032 次阅读|
    0 个评论
    方案介绍 Microchip 公司的dsPIC33F系列是高性能16 位数字信号控制器(DSC),采用改进型哈佛架构和C 编译器优化指令集,具有16 位宽数据总线和24 位宽指令,3.0-3.6V 时的工作速度达40MIPS,在LED驱动系统应用中,可以很方便实现多路开关电源(SMPS)和其它数字电源转换器如AC/DC转换器,DC/DC转换器,功率因素修正(PFC),恒流检测等功能, 本文就重点介绍利用dsPIC33 MCU实现LED电源,驱动,调光,通讯等一系列应用,下面逐一将设计思路呈现给大家。 电源部分设计 LED的寿命最终取决于对流经LED的电源的处理,目前由于对成本的追求,很多LED灯具厂家还在使用阻容降压方式的电源给LED供电,这对LED性能造成很大的伤害,其产品性能也大打折扣;另外由于世界各国及地区的电力环境不同,民用电压也存在差异,各国电器的电压适用范围也不同,高品质LED灯具厂在制作LED电源时,都会采用数字电源方式以使LED能够获得最干净的电源,延长LED的工作寿命。 dsPIC33F “GS”系列数字电源DSC可全面支持数字控制环路,因为它们均配备4至8个分辨率为1纳秒(ns)的PWM,多达4个20ns的比较器以及1或2个采样率为2 – 4 MSPS、具有低延迟及高分辨率控制的10位片上ADC,而每个比较器对应有1个集成的数模转换器(DAC)。这些器件采用18至44引脚,具有6至16 KB闪存。这些器件的交互式外设既可将处理器的干预减至最低,又能满足高速电流模式控制的实时需求。 首先将差异性较大的民用交流电转化为直流电压,在此过程中通过K1、K2、K3采集外界电压变化,由dsPIC33 PWM控制输出电压大小,保证输出电压的稳定性,适用于各种电压范围,大大降低了因为民用电压不同而需要生产不同型号LED灯具的困扰。 然后dsPIC33产生的SPWM驱动全桥电路,产生交流电压,通过互感器检测波形,经变压隔离后,再进行PFC调整输出安全稳定的直流电压供后续处理供LED使用。 典型的BUCK电路,通过PWM波形和AD组成的闭环电路,有效的控制输出稳定性,特别指出在该方案中对续流二极管的处理,既增加了系统稳定性,也降低了功耗。 《电子设计技术》网站版权所有,谢绝转载 LED驱动部分设计 目前市场中有很多LED驱动专用芯片,优点是电路简单,体积小,成本低,但是这种电路也有其无法克服的缺点,如:设计单一,智能水平低,驱动电流小,无法做升压电路,无法量化输出等。 dsPIC系列MCU,配备4至8个分辨率为1纳秒(ns)的PWM和采样率为2 – 4 MSPS的10位AD,通过MCU PWM控制MOS对流经LED的电流进行控制,高分辨率可以让输出电流电压做到精细化调整,AD采集实时电流,量化输出,对LED的工作状态进行实时监控,PWM与AD构成闭环控制,最大程度稳定LED的工作状态,缩小由于LED自身差异性造成的不稳定性。 Boost升压恒流过程要分充电和放电两个部分来说明这个电路。 充电过程 在充电过程中,开关闭合(MOS管导通),等效电路如图二,开关(MOS管)处用导线代替。这时,输入电压流过电感。二极管防止电容对地放电。由于输入是直流电,所以电感上的电流以一定的比率线性增加,这个比率跟电感大小有关。随着电感电流增加,电感里储存了一些能量。 放电过程 当开关断开(MOS管截止)时的等效电路。当开关断开(MOS管截止)时,由于电感的电流保持特性,流经电感的电流不会马上变为0,而是缓慢的由充电完毕时的值变为0。而原来的电路已断开,于是电感只能通过新电路放电,即电感开始给电容充电,电容两端电压升高,此时电压已经高于输入电压了。升压完毕。 恒流过程 在输出负载端加入一个采样电阻,将负载两端电流情况通过AD,反馈给MCU处理,调整输出PWM占空比,实现恒流处理。 调光系统设计 LED调光决方案及规范一直在不断变化,直到现在还未固定下来,所以现在市场上存在PWM、模拟及可控硅(TRAIC)三种调光方案。三种方案中模拟调光较为简单,实现比较容易。模拟调光方案的缺点是,LED电流的调节范围局限在某个最大值至该最大值的约10%之间(10:1调光范围),由于LED的色谱与电流有关,因此这种方法并不适合于某些应用。可控硅(TRAIC)调光方案是目前市场中比较常用的方案,它是基于传统光源如白炽灯的一种调光方案,其优点在于不需要改变现有房间布线,施工简单,通用性比较强,但是其本身是利用牺牲功率因数和增加了电路的复杂性为代价,而且可控硅(TRAIC)调光也不可以实现无极调光,当可控硅的导通角低到一定程度时,灯具就会出现闪烁,这是其方案原理决定的。PWM调光是调光市场的主流方案,其优点如下: 1、用PWM调光从零到最光,都不会有闪烁的现象。   2、性能会更好。因为调光输出功率采用了功率因数校正电路,这是配合全球对灯光采用功率因数有强制性的要求,虽然一般从25W开始有这要求,但美国要求灯光从零瓦起已需强制性功率因数校正电路。如采用TRAIC调光将牺牲功率因数和增加了电路的复杂性。因此,采用PWM调光可以提供最好性能的选择,也是未来的趋势。 3、成本会更好。用PWM调整占空比,不需要太多额外的控制电路成本。 4、不管调光程度有多大,允许LED一直在优化的和恒定的电流下工组。 5、在整个调光范围内LED颜色色调保持一致(颜色色调像流明输出一样随LED工作电流而变化)。 dsPIC MCU在系统设计过程中就是采用PWM调光方式。dsPIC MCU配备有4到8通道PWM,可轻松实现RGB真彩调光,配合10位片上ADC,管理和检测每一组灯的实时运行情况,达到更优的工作效果。 《电子设计技术》网站版权所有,谢绝转载 通讯系统设计 0-10V,DALI,DMX512是目前LED照明系统中常用的三种通讯方式,DMX512由于其数据传输高效性和传输距离远特点,逐渐成为主流方案。 DMX512协议是Digital Multiplex的缩写,是由美国剧场技术协会USITT提出的。最原始的版本出版于1986年,在1990年做了修改,USITT DMX512/1990是调光和灯光控制台数据传输 标准是灯光行业数字化设备的通用信号控制协议,同时也是是一种国际协议。 DMX512的优点: 1. 硬件成本相对低廉,协议简单可靠。 2. 信号管道为总线型拓扑结构,一个终端的失效不会影响其它终端的正常工作,系统稳定性高。 3. 差分电平工作方式,传输距离远,更适合离散分布的灯具。 4. 协议为国际通用协议,兼容性好。 5. 控制灵活方便,深得原传统舞台灯光从业者青睐。 DMX512的不足: 1.总线结构使得DMX设备终端数有所限制,一般为32个,需要加信号分配器。 2.总线结构决定了必须通过地址来区别不同的设备终端,设定地址显得不太方便。 3.如果不作扩展512个数据通道难以满足LED灯具的控制要求。 4.编程比较复杂,只适合较为专业的灯光从业人员或专业人士使用。 针对DMX512的不足,本方案对原DMX512协议进行了一定程度的扩展,很好的解决了其不足: 1.通过加串行信号放大器的方式避免原来星形的信号分配器的方式,大大降低工程布线难度。 2.提供已通过测试的DMX512协议给客户使用,缩短客户对DMX512熟悉时间,加快开发周期。 dsPIC33方案除了提供DMX512通讯方式外,由于MCU的通用性,其外设还支持红外接口和RF接口,实现无线控制方式,增加产品的卖点;同时也可以使用内部带CAN的dsPIC33芯片,将LED灯与汽车产品连接,如汽车仪表盘背景灯,阅读灯等,增加产品类型。 结论, 基于dsPIC33 LED驱动单芯片解决方案,将电源控制及系统管理合二为一,降低了硬件设计的复杂程度,同时又兼顾了驱动输出路数设计的灵活性,可通过改变控制芯片外围的存储器中的内容,实现对LED电流大小、亮灭时间、亮灭模式、环境亮度及系统温度等控制参数的定制,还可通过MCU的通讯接口对系统进行远距离调光控制和无线控制。基于dsPIC33 LED驱动单芯片解决方案具有以下优点: 低成本——单芯片解决多路恒流控制,省去专用的恒流芯片,有效地降低了系统成本。   高效率——非隔离开关电源,没有变压器的漏磁损耗,转换效率高,系统满载时整体效率高达95%。   驱动能力强——最多可以支持8路非隔离恒流驱动输出,可驱动8串(每串不少于14个)LED,总输出功率不低于100W。   控制灵活——采用高性能DSC作为控制核心,可充分发挥MCU实时控制功能的优势,每路LED的电流大小、亮灭方式等均可独立控制。   扩展性好——配置温度、亮度、色温等检测接口,支持串口、I2C,CAN等通讯接口,为系统集成做好了铺垫。 《电子技术设计》网站版权所有,谢绝转载
  • 热度 13
    2013-6-17 18:45
    1091 次阅读|
    0 个评论
    方案介绍 Microchip 公司的dsPIC33F系列是高性能16 位数字信号控制器(DSC),采用改进型哈佛架构和C 编译器优化指令集,具有16 位宽数据总线和24 位宽指令,3.0-3.6V 时的工作速度达40MIPS,在LED驱动系统应用中,可以很方便实现多路开关电源(SMPS)和其它数字电源转换器如AC/DC转换器,DC/DC转换器,功率因素修正(PFC),恒流检测等功能, 本文就重点介绍利用dsPIC33 MCU实现LED电源,驱动,调光,通讯等一系列应用,下面逐一将设计思路呈现给大家。 电源部分设计 LED的寿命最终取决于对流经LED的电源的处理,目前由于对成本的追求,很多LED灯具厂家还在使用阻容降压方式的电源给LED供电,这对LED性能造成很大的伤害,其产品性能也大打折扣;另外由于世界各国及地区的电力环境不同,民用电压也存在差异,各国电器的电压适用范围也不同,高品质LED灯具厂在制作LED电源时,都会采用数字电源方式以使LED能够获得最干净的电源,延长LED的工作寿命。 dsPIC33F “GS”系列数字电源DSC可全面支持数字控制环路,因为它们均配备4至8个分辨率为1纳秒(ns)的PWM,多达4个20ns的比较器以及1或2个采样率为2 – 4 MSPS、具有低延迟及高分辨率控制的10位片上ADC,而每个比较器对应有1个集成的数模转换器(DAC)。这些器件采用18至44引脚,具有6至16 KB闪存。这些器件的交互式外设既可将处理器的干预减至最低,又能满足高速电流模式控制的实时需求。 首先将差异性较大的民用交流电转化为直流电压,在此过程中通过K1、K2、K3采集外界电压变化,由dsPIC33 PWM控制输出电压大小,保证输出电压的稳定性,适用于各种电压范围,大大降低了因为民用电压不同而需要生产不同型号LED灯具的困扰。 然后dsPIC33产生的SPWM驱动全桥电路,产生交流电压,通过互感器检测波形,经变压隔离后,再进行PFC调整输出安全稳定的直流电压供后续处理供LED使用。 典型的BUCK电路,通过PWM波形和AD组成的闭环电路,有效的控制输出稳定性,特别指出在该方案中对续流二极管的处理,既增加了系统稳定性,也降低了功耗。 《电子设计技术》网站版权所有,谢绝转载 LED驱动部分设计 目前市场中有很多LED驱动专用芯片,优点是电路简单,体积小,成本低,但是这种电路也有其无法克服的缺点,如:设计单一,智能水平低,驱动电流小,无法做升压电路,无法量化输出等。 dsPIC系列MCU,配备4至8个分辨率为1纳秒(ns)的PWM和采样率为2 – 4 MSPS的10位AD,通过MCU PWM控制MOS对流经LED的电流进行控制,高分辨率可以让输出电流电压做到精细化调整,AD采集实时电流,量化输出,对LED的工作状态进行实时监控,PWM与AD构成闭环控制,最大程度稳定LED的工作状态,缩小由于LED自身差异性造成的不稳定性。 Boost升压恒流过程要分充电和放电两个部分来说明这个电路。 充电过程 在充电过程中,开关闭合(MOS管导通),等效电路如图二,开关(MOS管)处用导线代替。这时,输入电压流过电感。二极管防止电容对地放电。由于输入是直流电,所以电感上的电流以一定的比率线性增加,这个比率跟电感大小有关。随着电感电流增加,电感里储存了一些能量。 放电过程 当开关断开(MOS管截止)时的等效电路。当开关断开(MOS管截止)时,由于电感的电流保持特性,流经电感的电流不会马上变为0,而是缓慢的由充电完毕时的值变为0。而原来的电路已断开,于是电感只能通过新电路放电,即电感开始给电容充电,电容两端电压升高,此时电压已经高于输入电压了。升压完毕。 恒流过程 在输出负载端加入一个采样电阻,将负载两端电流情况通过AD,反馈给MCU处理,调整输出PWM占空比,实现恒流处理。 调光系统设计 LED调光决方案及规范一直在不断变化,直到现在还未固定下来,所以现在市场上存在PWM、模拟及可控硅(TRAIC)三种调光方案。三种方案中模拟调光较为简单,实现比较容易。模拟调光方案的缺点是,LED电流的调节范围局限在某个最大值至该最大值的约10%之间(10:1调光范围),由于LED的色谱与电流有关,因此这种方法并不适合于某些应用。可控硅(TRAIC)调光方案是目前市场中比较常用的方案,它是基于传统光源如白炽灯的一种调光方案,其优点在于不需要改变现有房间布线,施工简单,通用性比较强,但是其本身是利用牺牲功率因数和增加了电路的复杂性为代价,而且可控硅(TRAIC)调光也不可以实现无极调光,当可控硅的导通角低到一定程度时,灯具就会出现闪烁,这是其方案原理决定的。PWM调光是调光市场的主流方案,其优点如下: 1、用PWM调光从零到最光,都不会有闪烁的现象。   2、性能会更好。因为调光输出功率采用了功率因数校正电路,这是配合全球对灯光采用功率因数有强制性的要求,虽然一般从25W开始有这要求,但美国要求灯光从零瓦起已需强制性功率因数校正电路。如采用TRAIC调光将牺牲功率因数和增加了电路的复杂性。因此,采用PWM调光可以提供最好性能的选择,也是未来的趋势。 3、成本会更好。用PWM调整占空比,不需要太多额外的控制电路成本。 4、不管调光程度有多大,允许LED一直在优化的和恒定的电流下工组。 5、在整个调光范围内LED颜色色调保持一致(颜色色调像流明输出一样随LED工作电流而变化)。 dsPIC MCU在系统设计过程中就是采用PWM调光方式。dsPIC MCU配备有4到8通道PWM,可轻松实现RGB真彩调光,配合10位片上ADC,管理和检测每一组灯的实时运行情况,达到更优的工作效果。 《电子设计技术》网站版权所有,谢绝转载 通讯系统设计 0-10V,DALI,DMX512是目前LED照明系统中常用的三种通讯方式,DMX512由于其数据传输高效性和传输距离远特点,逐渐成为主流方案。 DMX512协议是Digital Multiplex的缩写,是由美国剧场技术协会USITT提出的。最原始的版本出版于1986年,在1990年做了修改,USITT DMX512/1990是调光和灯光控制台数据传输 标准是灯光行业数字化设备的通用信号控制协议,同时也是是一种国际协议。 DMX512的优点: 1. 硬件成本相对低廉,协议简单可靠。 2. 信号管道为总线型拓扑结构,一个终端的失效不会影响其它终端的正常工作,系统稳定性高。 3. 差分电平工作方式,传输距离远,更适合离散分布的灯具。 4. 协议为国际通用协议,兼容性好。 5. 控制灵活方便,深得原传统舞台灯光从业者青睐。 DMX512的不足: 1.总线结构使得DMX设备终端数有所限制,一般为32个,需要加信号分配器。 2.总线结构决定了必须通过地址来区别不同的设备终端,设定地址显得不太方便。 3.如果不作扩展512个数据通道难以满足LED灯具的控制要求。 4.编程比较复杂,只适合较为专业的灯光从业人员或专业人士使用。 针对DMX512的不足,本方案对原DMX512协议进行了一定程度的扩展,很好的解决了其不足: 1.通过加串行信号放大器的方式避免原来星形的信号分配器的方式,大大降低工程布线难度。 2.提供已通过测试的DMX512协议给客户使用,缩短客户对DMX512熟悉时间,加快开发周期。 dsPIC33方案除了提供DMX512通讯方式外,由于MCU的通用性,其外设还支持红外接口和RF接口,实现无线控制方式,增加产品的卖点;同时也可以使用内部带CAN的dsPIC33芯片,将LED灯与汽车产品连接,如汽车仪表盘背景灯,阅读灯等,增加产品类型。 结论, 基于dsPIC33 LED驱动单芯片解决方案,将电源控制及系统管理合二为一,降低了硬件设计的复杂程度,同时又兼顾了驱动输出路数设计的灵活性,可通过改变控制芯片外围的存储器中的内容,实现对LED电流大小、亮灭时间、亮灭模式、环境亮度及系统温度等控制参数的定制,还可通过MCU的通讯接口对系统进行远距离调光控制和无线控制。基于dsPIC33 LED驱动单芯片解决方案具有以下优点: 低成本——单芯片解决多路恒流控制,省去专用的恒流芯片,有效地降低了系统成本。   高效率——非隔离开关电源,没有变压器的漏磁损耗,转换效率高,系统满载时整体效率高达95%。   驱动能力强——最多可以支持8路非隔离恒流驱动输出,可驱动8串(每串不少于14个)LED,总输出功率不低于100W。   控制灵活——采用高性能DSC作为控制核心,可充分发挥MCU实时控制功能的优势,每路LED的电流大小、亮灭方式等均可独立控制。   扩展性好——配置温度、亮度、色温等检测接口,支持串口、I2C,CAN等通讯接口,为系统集成做好了铺垫。 《电子技术设计》网站版权所有,谢绝转载