PWM调光方法在LED亮度调节中的应用

LED 是一种固态电光源, 是一种半导体照明器件,其电学特性具有很强的离散性。它具有体积小、机械强度大、功耗低、寿命长, 便于调节控制及无污染等特征,有极大发展前景的新型光源产品。LED 调光方法的实现分为两种: 模拟调光和数字调光, 其中模拟调光是通过改变LED 回路中电流大小达到调光; 数字调光又称PWM 调光, 通过PWM 波开启和关闭LED 来改变正向电流的导通时间以达到亮度调节的效果。模拟调光通过改变LED 回路中的电流来调节LED 的亮度, 缺点是在可调节的电流范围内, 可调档位受到限制;PWM 波调光可通过改变高低电平的占空比来任意改变LED 的开启时间, 从而使亮度调节的档位增多。本文拟用两种方法共同作用, 以达到调节LED 亮度的效果。
  1 LED 调光方法
  模拟调光是通过改变LED 回路中电流大小达到调光, 电源电压不变, 通过改变R 的电阻值来改变回路中的电流, 从而达到改变LED 亮度的效果。很多其他模拟调光都是采用这种方法的延伸, 其优点是电流可连续, 但可调节电流的范围往往受到硬件的限制, 调节档位不多, 对于要求亮度感应敏感的高精度采光设备, 这种方法不理想。
  数字调光又称PWM 调光, 通过PWM 波开启和关闭LED 来改变正向电流的导通时间, 以达到亮度调节的效果。该方法基于人眼对亮度闪烁不够敏感的特性,使负载LED 时亮时暗。如果亮暗的频率超过100 Hz , 人眼看到的就是平均亮度, 而不是LED 在闪烁。PWM 通过调节亮和暗的时间比例实现调节亮度, 在一个PWM 周期内, 因为人眼对大于100 Hz 内的光闪烁, 感知的亮度是一个累积过程, 即亮的时间在整个周期中所占得比例越大, 人眼感觉越亮。但是对于一些高频采样的设备, 如高频采样摄像头, 采样时有可能恰好采到LED 暗时的图像。因此本文将模拟和数字相结合, 设计了LED 的驱动电路。
  2 采用电感的PWM 调节方法
  2.1 驱动电路
  电路中, 当电感上通有电流时, 电感会产生磁场, 即部分电流转换成磁能的方式“ 存储” 在电感中; 当不再向电感上通电流时, 电感会将磁能通过电流的方式在回路中释放出来。这也是电感上电流不能突变的原因, 基于电感的这种“ 充放电” 原理, 可以将它用来平均PWM 波调光中产生的不连续电流。式(1) 、式(2) 分别是LR 电路的充电和放电过程及电流与时间的关系。

其中,If是最终稳定电流,I0是放电初始电流,τ (τ=L/R,L 是电感值,R 是回路电阻) 是LR 电路的时间常数。
  图1 所示为驱动电路, 电感值的选择以及PWM 波的频率选择在此驱动电路中相当重要。选择C8051330 芯片作为PWM 波的输出, 采用定时器翻转控制高低电平的时间,从而控制PWM 波的占空比。

图1 驱动电路
要保证PWM 周期小于电感的τ 时间, 因为若PWM 的周期大于τ, 则极有可能出现在PWM 的占空比变化的情况下, 电路中电流都能达到电感的饱和直流电流, 影响了对LED 电流调节。当C8051330 的时钟频率是25 MHz ,PWM 的周期的选择对电流改变档位的影响很大。若周期越大, 则PWM 占空比的档位越多, 反之越少。拟用256 个档位的占空比, 因此PWM 波的频率应选择在100kHz 以下,即周期在10 μs 以上,直流电感为10Ω, 此时电感值应选择大于0.1 mH.图2 分别是PWM 频率为100kHz , 占空比为90%, 电感为0.1 mH、1 mH 和40 mH 时电路电流值的模拟结果。

(a)电感值为0.1mH 时电流随时间关系

b)电感值为1mH 时电流随时间关系

(c)电感值为40mH 时电流随时间关系

(d)图c 曲线局部放大图
  图2 不同电感值下电流随时间的变化。
  通过模拟可初步选择40 mH 的电感作为驱动电路所用, 图3 是用示波器采到的电压波形图, 此电压是电路中串联了一个20 Ω 的电阻上的电压, 稳定后电压为340 mV, 即电路中电流为17 mA.因为实际电路中电流有损耗, 所以实际电流值比模拟电流值偏小, 但整个电流的变化趋势与模拟基本一致。

图3 电感值40mH 电路中串联电阻的电压变化
  2.2 电流与PWM 占空比的关系
  图4 所示为LED 驱动电路充电以及放电曲线图,Imax是电路在直流情况下的最大电流。设在PWM 占空比为m 时电路中的电流值在充电曲线上的t1时刻的电流值附近波动, 此时应该满足以下条件:t 点的充电曲线斜率为k1,a 点处放电曲线斜率为k2, 应有k1mT=|k2 |(1-m)T,驱动电路中的电流因此维持在一个恒定值附近微小波动。

分析可知, 当启动驱动电路后, 经过若干个充放电周期电流达到一个相对稳定的值, 之后电流在这个稳定值附近波动。如图5 所示, 对每个周期而言, 充电时电流曲线的斜率在不断下降; 放电时电流曲线的斜率绝对值在不断增加; 满足图4 的条件时, 电流相对稳定。从而得出在LR 电路时间常数τ 一定时, 电感电流随PWM 占空比的关系为:

其中m 是PWM 占空比。
  图5 是电感电流随PWM 占空比变化的实验结果曲线, 该曲线是在电感值为40 mH 时, 电路中串联了一个22 Ω 电阻的情况下测得的。分析理论公式和实验结果,可发现在PWM 占空比为36%~86%区间, 电感上电流值随PWM 波占空比线性变化, 变化趋势与理论推导一致。
  对于高占空比的区间段, 由于充电曲线斜率已经趋近不变, 此时电流值也趋于最大值, 而在低区间段, 由于充电时间较短, 电路中损耗较大, 电感上电流值也趋近于零。

2.3 PWM 占空比调节方式
  采用电脑通过RS-485 在线控制PWM 占空比的变化, 根据需要在256 个档位中进行选择, 每次用电脑向RS-485 发送两个字节的十六进制命令, 从而改变C8051产生的占空比, 达到改变LED 亮度的目的。
  RS-485 接口电路的主要功能是: 将来自微处理器的发送信号TX 通过“ 发送器” 转换成通信网络中的差分信号, 也可以将通信网络中的差分信号通过“ 接收器”转换成被微处理器接收的RX 信号。任一时刻,RS-485收发器只能工作在“ 接收” 或“ 发送” 两种模式之一。因此, 采用了图6 所示电路, 由微处理器输出的R/D 信号直接控制SN75LBC184 芯片的发送器/接收器使能:R/D信号为“1 ” , 则SN75LBC184 芯片的发送器有效, 接收器禁止, 此时微处理器可以向SN75LBC184 总线发送数据字节;R/D 信号为“0 ” 则SN75LBC184 芯片的发送器禁止, 接收器有效,此时微处理器可以处理来自RS-485总线的数据字节。此电路中, 任意时刻SN75LBC184 芯片中的“接收器”和“发送器”只能够有一个处于工作状态。

不论从模拟还是实验角度来看, 在PWM 调光驱动电路中加入电感, 可成功将电路中大范围变化的电流“ 平均” , 使其稳定在一个可通过理论计算得出的值附近。本文综合了模拟调光和数字调光的共同优点, 且可以利用RS-485 , 通过PWM 波与驱动电路中LED 上电流的函数关系, 改变PWM 波的占空比, 即可让LED 有着理想的电流值, 并用计算机实时、细致地改变LED 的亮度。

(本文转自电子工程世界:http://www.eeworld.com.cn/LED/2011/1209/article_5921_1.html)
(本文转自电子工程世界:http://www.eeworld.com.cn/LED/2011/1209/article_5921_2.html)

 

1、PWM是脉冲宽度调制信号,注意其中的“宽度”,就是脉冲的高电平的时间。PWM信号调节LED亮度时,信号频率是不变的,改变的是脉冲的高电平的时间,即LED的导通时间。这种信号调节亮度相当于调节LED的平均电流,所以电流会变化。
2、从LED的V-I特性可知,其曲线是非线性的,0.1V的电压可造成100~200mA的If的变化,不易控制;另外,LED具有负温度系数特性,所以,一般将LED说成是电流控制型器件。至于你将LED串接在电源模块上,当输出电压恒定时,是恒压源驱动LED吧,这样调节LED亮度时,需要对输出电压进行分压,以降低LED的压降才能改变其亮度,恒压源的电流是有一个最大输出值的,不能调节的,不知你用什么方法调节其输出电流的?
3、用MCU比较方便,成本是稍高,也可以用模拟电子线路产生相应的PWM信号。
4、现在用得多的有CV/CC开关电源、还有部分非隔离的驱动电路...我自己就是做这个电路设计的哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redhat rpmforge epel 安装源配置

参考阅读 epel 直接安装 RPMforge for CentOS 6 The default RPMforge repository does not replace any CentOS base packages. In the past it used to, but those packages are now in a separate repository (rpmforge-extras) which is disabled by default. You can fi…

leetcood学习笔记-2-两数相加

题目描述: 方法一: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val x # self.next Noneclass Solution:def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:cur…

Forward框架的逆袭:解析Forward+渲染

转载请注明出处为KlayGE游戏引擎,本文地址为http://www.klayge.org/2012/04/21/forward%e6%a1%86%e6%9e%b6%e7%9a%84%e9%80%86%e8%a2%ad%ef%bc%9a%e8%a7%a3%e6%9e%90forward%e6%b8%b2%e6%9f%93/ AMD在7900系列显卡发布的时候同时推出了Leo demo, 并说明它…

Java NIO学习系列三:Selector

前面的两篇文章中总结了Java NIO中的两大基础组件Buffer和Channel的相关知识点,在NIO中都是通过Channel和Buffer的协作来读写数据的,在这个基础上通过selector来协调多个channel以同时读写数据,本文我们就来学习一下selector。 Java NIO中引入…

Java JTable3

预览: 代码 : /*** */ package com.han;import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; imp…

关于ASCII字符的那些事儿

1、单字符一般用单引号加一个字符表示,比如字符1表示为‘1’,而数字1直接表示为1; char ch 1 ;int num 1;2、计算机用数字来存储字符,比如字符1,在计算机里面为49(十进制);而数字…

JqueryMobile学习之二---对话框

对话框 通过在链接中添加data-rel”dialog”的属性&#xff0c;可以使链接页面的显示方式变为对话框。给显示的对话框加入切换的效果也是一个不错的选择 例如我们将about的链接变成一个对话框并加入相应的切换效果。代码如下 <p><a href"#about" data-rel&q…

“leave the world behind”十一快乐出行

这个十一你打算怎么过&#xff1f;每天睡到自然醒&#xff0c;然后闷在家里埋头上网&#xff1f;选择晴朗好天气出去逛街&#xff0c;四处淘宝贝&#xff0c;淘美食&#xff1f;还是选择一个好的路线出去玩一周&#xff1f;其实行无论宅着还是选择出行&#xff0c;一定要让自己…

分享一个文件上传工具类

文件上传状态枚举类&#xff1a; View Code 1 package com.hoo.enums;2 3 4 5 /**6 7 * <b>function:</b> 文件上传状态8 9 * package com.hoo.enums 10 11 * fileName UploadState.java 12 13 * createDate 2010-10-11 下午1…

静态库和动态库的区别

库是写好的&#xff0c;现有的&#xff0c;成熟的&#xff0c;可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始&#xff0c;因此库的存在意义非同寻常。 本质上来说&#xff0c;库是一种可执行代码的二进制形式&#xff0c;可…

257. Binary Tree Paths

1、问题描述 2、代码&#xff08;非本人所写&#xff0c;十分精彩的C代码&#xff09; int pathsNum(struct TreeNode* root); void Traverse(struct TreeNode* root, char** array, char* spre, int* pindex); char* stringAdd(char* s, int val);char** binaryTreePaths(stru…

HDOJ树形DP专题之Centroid

题目链接 这题跟Balance Act那题差不多&#xff0c;求图的质点。我直接将那题改了一下提交&#xff0c;结果PE了一次&#xff0c;又WA了一次&#xff0c;最后发现是单case&#xff0c;多case的提交为什么WA呢&#xff1f; View Code 1 #include <stdio.h>2 #include <…

LAMP平台--部署Discuz论坛

环境&#xff1a;为了推广公司的产品并为客户服务提供一个交流平台&#xff0c;公司购买了一套Discuz论坛系统&#xff0c;要求安装到现有的LAMP服务器中&#xff0c;并简单划分论坛版块。需求&#xff1a;部署论坛服务器&#xff0c;安装Discuz论坛系统添加新区和版块产品发布…

ACM中java快速入门

2019独角兽企业重金招聘Python工程师标准>>> ACM中java快速入门 附&#xff1a; Chapter I. Java的优缺点各种书上都有&#xff0c;这里只说说用Java做ACM-ICPC的特点&#xff1a; (1) 最明显的好处是&#xff0c;学会Java&#xff0c;可以参加Java Challenge …

OV7725的帧率和PCLK寄存器设置

一、OV7725的PCLK的改变和以下几个寄存器有关&#xff1a; 1&#xff1a;OX0D&#xff08;COM4&#xff09;&#xff1b; ------------------------------------------------------------------------------------------------------------------ 0X0D COM4 41 …

演示:两台交换机成环后的STP计算原则

演示&#xff1a;两台交换机成环后的STP计算原则演示目标&#xff1a;理解两台交换机成环后&#xff0c;STP的计算原则&#xff0c;重点理解PID的作用。演示环境&#xff1a;如下图7.49所示。演示背景&#xff1a;上图所示的环境为两台交换机的生成树环境&#xff0c;其中S1有较…

引水入城

最近在搞提高组的题,这是某天早上给的T1 T1最难还行 原题目 最近考试考多了就是见题打暴力,打搜索, 然而这题真是搜索, 但是并不能只搜索,会T,没亲测,但一定有效 这并不是考试题,所以看看标签(理直气壮的理由) 是BFS啊... 那就用DFS吧 这里的DP一开始看没有什么感觉,但是做着做…

程序员必知8大排序3大查找(一)

每天都在叫嚣自己会什么技术&#xff0c;什么框架&#xff0c;可否意识到你每天都在被这些新名词、新技术所迷惑&#xff0c;.NET、XML等等技术固然诱人&#xff0c;可是如果自己的基础不扎实&#xff0c;就像是在云里雾里行走一样&#xff0c;只能看到眼前&#xff0c;不能看到…

最详细的U-BOOT源码分析及移植

本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上&#xff1a; 1、u-boot工程的总体结构 2、u-boot的流程、主要的数据结构、内存分配。 3、u-boot的重要细节&#xff0c;主要分析流程中各函数的功能。 4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,…

织梦教程

/************************************************************************************************************************************************** 织梦 文件说明 很详细 http://bbs.admin5.com/thread-1952932-1-1.html /****************************************…