如何驱动多色 LED

发光二极管 (LED) 是一种简单经济的状态信息显示方法。但是,对于某些项目而言,一个单色 LED 可能不够。而由于空间、成本或功耗限制,多个 LED 又可能不太现实。针对这些情况,多色 LED 提供了一种有效的解决方案,前提是这种 LED 能与微控制器正确连接。

本文将首先阐述 LED 的基础知识,然后讨论多色 LED 的优势,之后介绍哪些是合适的多色 LED 解决方案,最后说明如何将 LED 连接到微控制器,以产生多达 1600 万种不同的颜色。

将 LED 视为二极管

在设计带 LED 的电路时,务必记住这些器件不是白炽灯泡,而是恰好能发光的半导体器件(二极管)。作为二极管,它们通常只允许电流主要流向一个方向(二极管并不理想,因此在反向偏置时会产生少量电流)。

普通 LED 的发光部分是位于组件中心的简单半导体二极管,由单个 p-n 结构成(图 1)。电流从连接到 P 型硅的 LED 阳极流向连接到 N 型硅的 LED 阴极。在普通二极管中,p-n 结通常是锗 (Ge) 或硅 (Si)。然而,对于 LED 而言,这个结通常是透明的磷砷化镓 (GaAsP) 或磷化镓 (GaP) 半导体材料。

LED 组件示意图

图 1:LED 组件含有半导体 p-n 结芯片,可使电流从阳极流到阴极。带透镜的透明外壳可以让用户轻松看到产生的发射光。(图片来源:维基百科)

利用透明的 GaAsP 或 GaP,施加在 p-n 结上的正向电压会从半导体释放出光子。p-n 结安装在反射镜腔上,而该镜腔可将光子聚集到 LED 透镜。LED 的透镜和本体由透明环氧树脂组成,而树脂可选择性地进行着色,以匹配发射光的颜色。

反射镜腔位于称为铁砧的引线框上,阴极通过接合线连接到称为极柱的引线框上。铁砧和极柱的形状可使它们与 LED 环氧树脂本体形成牢固连接,从而无法将阳极或阴极引脚从 LED 环氧树脂本体上拉出,造成 LED 损坏。

单色 LED

LED 有多种颜色可供选择,包括红色、绿色、黄色、琥珀色、青色、橙色、粉色、紫色以及最近出现的白色和蓝色。单色 LED 配备的半导体芯片由可产生所需光线波长的材料组成,并且 LED 环氧树脂壳体组件通常具有相同的颜色。虽然不需要使透镜具有与发射光相同的颜色,但重要的是,要容易识别 LED 元件的颜色,防止与其他 LED 混淆。

多色 LED

对于某些空间、成本和功耗受限的系统而言,最好使用一个能发出多种颜色的 LED。通常情况下,这种多色 LED 在一个透明环氧树脂外壳内部配备三个 LED,分别是红色、绿色和蓝色 (RGB)。Adafruit Industries 的 2739 RGB LED 就是一个很好的例子(图 2)。该 LED 专为多色指示灯而设计,配有一个宽 2.5 mm、高 5 mm 的矩形透镜发光表面,以及四根可在 PC 板上进行通孔安装的径向引线。

Adafruit 的 2739 RGB LED 图片

图 2:Adafruit 的 2739 RGB LED 采用宽 2.5 mm、高 5 mm 的透明环氧树脂矩形透镜,并带有四根径向引线,用于在 PC 板上进行通孔安装。(图片来源:Adafruit Industries)

通常情况下,三个内部 LED 中的任何一个均可以单独使用,也可与其他 LED 结合使用,以产生不同的颜色。

多色 RGB LED 通常有三种引脚布局:

  1. 所有 LED 共用一个阳极,每个 LED 有一个阴极,总共四个引脚
  2. 所有 LED 共用一个阴极,每个 LED 有一个阳极,总共四个引脚
  3. 每个阳极和阴极都分配引脚,总共六个引脚

使用多色 LED 进行设计

Adafruit 的 2739 RGB LED 具有一个共阳极,红色、绿色和蓝色 LED 的每个阴极都分配引脚,总共四个引脚(图 3)。共阳极连接到正极电源,而每个红色、绿色和蓝色 LED 通过接地来接通。

Adafruit 的 2739 RGB LED 阳极和阴极示意图

图 3:Adafruit 的 2739 RGB LED 具有一个共阳极,而红色、绿色和蓝色 LED 分别配有一个单独的阴极。(图片来源:Adafruit Industries)

生成多种颜色

如果某种应用只需要显示三种状态中的一种,那么使用 2739 RGB LED 的最简单方法是一次打开一个 LED,用户可以选择红色、绿色或蓝色中的一种。

对于多种颜色,设计人员可以简单地将两种颜色组合在一起,提供以下六种颜色选项:

  • 红色
  • 绿色
  • 蓝色
  • 黄色(红色 + 绿色)
  • 青色(绿色 + 蓝色)
  • 洋红色(红色 + 蓝色)

为了编制清晰的项目文档,显示的颜色应该清晰易辨,并且易于口头确认。例如,具有全电流的绿色 LED 可以在 LED 规格书中记录为“绿黄色”。然而,当 LED 亮起时,大多数消费者和开发人员在被问及时,都会将颜色识别为“绿色”。无论颜色的实际名称如何,用户都应该能够通过视觉和标签轻松区分出不同的颜色。很少有人能够轻易地识别出“绿色”和“绿黄色”之间的区别,如果这两种颜色并排呈现,则可能将绿黄色识别为“绿色”,将绿色识别为“深绿色”。

对于更复杂的应用,可以按不同的强度组合 RGB,从而产生多达 1600 万种颜色。实现这一目的的可靠方法是:将脉冲宽度调制 (PWM) 信号应用于每个 LED,其中占空比与强度相对应。人眼可以识别出 200 赫兹 (Hz) 或更慢的闪烁频率,因此,为了避免闪烁,应使用 1000 Hz 或更快的 PWM 频率。

颜色可通过 RGB 色码轻松选择。这基于 RGB 加色模型,其中红光、绿光和蓝光在强度上各不相同,组合在一起几乎可以重新生成任何颜色。该模型适用于光线,是电视和显示屏中色彩再现的依据,还可用于呈现网页上的颜色。

RGB 色码的简写用 (R,G,B) 表示,其中 R、G 和 B 是红色、绿色和蓝色强度的十进制值,范围介于 0 到 255 之间。例如,蓝色的十进制 RGB 色码为 (0,0,255),紫色为 (128,0,128),银色为 (192,192,192)。在确定每种颜色的 PWM 占空比时,需将这些值除以 255,因此蓝色的占空比为 (0,0,100%),紫色的占空比为 (50%,0,50%),银色的占空比为 (75%,75%,75%)。

从理论上讲,白光由 (255,255,255) 表示,并且可通过同时打开全强度的红色、绿色和蓝色 LED 来生成。然而,在实践中,通过该方法产生的颜色通常是带有偏蓝色调的白色。出现这种色调是因为,生成的 LED 颜色与理想的红色、绿色和蓝色的精确波长不完全匹配。

微控制器很容易生成所需的 PWM 信号。Microchip Technology 的 ATSAMC21J18A 就是一个合适的例子(图 4)。该微控制器是一款用于物联网端点的低功耗器件,是该公司 SAM C21 微控制器系列产品之一。它配有 48 MHz Arm® Cortex®-M0+ 内核,支持 5 伏 I/O 电压。

Microchip 的 ATSAMC21J18A 微控制器示意图

图 4:ATSAMC21J18A 微控制器具有定时器/计数器单元,能够自动生成三个同步 PWM 信号。(图片来源:Microchip Technology)

为了驱动 LED,ATSAMC21J18A 配有定时器/计数器单元,能够自动生成三个同步 PWM 信号。SAM C21 系列产品配有高电流阱选件,可使连接各电流阱的四个 I/O 引脚的最大电流为 20 毫安 (mA)。

使用 LED 时,选择正确的串联电阻器来限制电流非常重要。电阻值太小的电阻器会破坏 LED,而电阻值过高的电阻器会导致光线昏暗或无光。串联电阻器的值由每个 LED 的正向电压和所需的电流决定。

LED 是电流控制的半导体。此外,值得注意的是,由于材料的物理特性,LED 的工作电压会随着发射光波长的减小而增加,这是使用多个 LED 时要考虑的重要因素。

当 Adafruit 的 2739 RGB LED 正向电流为 20 mA 时,Adafruit 图表中规定的 LED 典型正向电压为 2 伏(红色)和 3.2 伏(绿色和蓝色)。

如果共阳极连接到 5 伏电压,那么 LED 和 I/O 引脚之间的电阻值由以下等式确定:

等式 1 等式 1

其中:

VDD = 5 伏

VOL = ATSAMC21J18A 的输出低压 = 0.1 x VDD = 0.5 伏

VF = 正向电压(典型值)

I = 正向电流,单位:安培

R = 电阻值,单位:欧姆 (Ω)

在 I = 20 mA 的情况下使用该公式,结果是:RRED (VF = 2 V) = 125 Ω,RGREEN = RBLUE (VF = 3.2 V) = 65 Ω。

如果计算出的电阻不能作为标准电阻值,开发人员可以选择下一个较低值,或者下一个较高值(首选)。如果选择较低值,则必须注意,不得超过该 LED 的最大正向电压或 ATSAMC21J18A I/O 端口的最大电流灌入能力。虽然在超过这些最大值时 LED 仍然可以工作,但可能会降低 LED 的使用寿命,也可能随着时间的推移,降低 I/O 端口的性能或损坏该端口。或者,如果应用仍能接受较暗光线,则可以降低正向电流。例如,当正向电流为 15 mA 时,Adafruit 的 2739 RGB LED 指定正向电压会降至 1.9 伏(红色)和 3.1 伏(绿色和蓝色),这样会导致电阻值 RRED = 173.3 Ω,RGREEN = RBLUE = 93.3 Ω。

由于 ATSAMC21J18A 可通过控制接地连接来控制 LED,当 I/O 端口为逻辑低电平时,单个 LED 亮起;当 I/O 端口为逻辑高电平时,单个 LED 熄灭。因此,必须倒置计算出的 RGB 色码占空比。例如,如果颜色需要 25% 的占空比,则 PWM 必须能产生 75% 的占空比,才能使 LED 在 25% 的周期时间内工作。此外,如果 LED 必须在上电时熄灭,则微控制器启动代码必须能使三个引脚处于逻辑高电平。

ATSAMC21J18A 配备 256 Kb 闪存、32 Kb RAM 和各种模拟外设。该微控制器还配有六个串行通信模块 (SERCOM),每个模块都可以作为 USART、SPI、LIN 从器件或 I2C 接口。

智能 RGB LED

使用 RGB LED 生成多种颜色的另一种方法是对其进行编程。智能 LED 是一个术语,用来描述这种带有可编程串行接口的多色 LED。American Bright Optoelectronics 的 BL-HBGR32L-3-TRB-8 就是一个很好的例子。它是一款 5 mm 方形 RGB LED,可以使用 800 千赫 (kHz) I2C 接口进行编程,从而产生任何颜色(图 5)。

American Bright 的 BL-HBGR32L-3-TRB-8 示意图

图 5: American Bright 的 BL-HBGR32L-3-TRB-8 是一款尺寸为 5 mm 的方形六引脚数字 RGB LED,配有 I2C 直通引脚布局,可使多个器件以菊花链方式连接在同一 I2C 接口上。(图片来源: American Bright Optoelectronics Corp.)

I2C 接口不仅可以节省板空间,而且可以简化微控制器代码,这种便利性极大简化了设计。ATSAMC21J18A 上的一个 SERCOM 端口可配置为 I2C 串行接口,以便轻松连接到 BL-HBGR32L-3-TRB-8。参考图 5 中的引脚布局,来自 ATSAMC21J18A 微控制器的 I2C 数据信号连接到引脚 1 数据输入信号,I2C 时钟连接到引脚 2 时钟输入

在对 BL-HBGR32L-3-TRB-8 LED 的颜色进行编程时,需要发送四个代表全局亮度设置和 RGB 色码的字节,作为一个 32 位字。这款智能 LED 在引脚 6 上配有数据输出直通,在引脚 5 上配有 I2C 时钟直通,这样可使多个 LED 能够以菊花链方式连接在一起,以便每个 LED 可以显示不同的颜色。

总结

了解多色 RGB LED 的驱动方式之后,不仅可以节省空间、成本和功耗,还可以增强终端系统、设备、状态指示灯或照明系统的美观性及用户界面。开发人员既可以选择能对每个 LED 进行完全控制的标准 RGB LED,也可以选择能对颜色进行编程控制的智能 LED。此外,当涉及到通常用于产生 PWM 控制信号的微控制器时,目前有许多低功耗、低成本选项可供选择。

  • 如何驱动多色 LED已关闭评论
    A+
发布日期:2019年07月14日  所属分类:参考设计