发光二极管 (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) 半导体材料。
图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.5mm、高5 mm的矩形透镜发光表面,以及四根可在PC板上进行通孔安装的径向引线。
图2:Adafruit的2739 RGB LED采用宽2.5mm、高5mm的透明环氧树脂矩形透镜,并带有四根径向引线,用于在PC板上进行通孔安装。(图片来源:Adafruit Industries)
通常情况下,三个内部LED中的任何一个均可以单独使用,也可与其他LED结合使用,以产生不同的颜色。
多色RGB LED通常有三种引脚布局:
1)所有LED共用一个阳极,每个LED有一个阴极,总共四个引脚
2)所有LED共用一个阴极,每个LED有一个阳极,总共四个引脚
3)每个阳极和阴极都分配引脚,总共六个引脚
使用多色LED进行设计
Adafruit的2739 RGB LED具有一个共阳极,红色、绿色和蓝色LED的每个阴极都分配引脚,总共四个引脚(图 3)。共阳极连接到正极电源,而每个红色、绿色和蓝色LED通过接地来接通。
图3:Adafruit的2739 RGB LED具有一个共阳极,而红色、绿色和蓝色LED分别配有一个单独的阴极。(图片来源:Adafruit Industries)
如何生成多种颜色
如果某种应用只需要显示三种状态中的一种,那么使用2739 RGB LED的最简单方法是一次打开一个LED,用户可以选择红色、绿色或蓝色中的一种。
对于多种颜色,设计人员可以简单地将两种颜色组合在一起,提供以下六种颜色选项:
•红色
•绿色
•蓝色
•黄色(红色 + 绿色)
•青色(绿色 + 蓝色)
•洋红色(红色 + 蓝色)
为了编制清晰的项目文档,显示的颜色应该清晰易辨,并且易于口头确认。例如,具有全电流的绿色LED可以在LED规格书中记录为“绿黄色”。然而,当LED亮起时,大多数消费者和开发人员在被问及时,都会将颜色识别为“绿色”。无论颜色的实际名称如何,用户都应该能够通过视觉和标签轻松区分出不同的颜色。很少有人能够轻易地识别出“绿色”和“绿黄色”之间的区别,如果这两种颜色并排呈现,则可能将绿黄色识别为“绿色”,将绿色识别为“深绿色”。
对于更复杂的应用,可以按不同的强度组合RGB,从而产生多达1600万种颜色。实现这一目的的可靠方法是:将脉冲宽度调制 (PWM) 信号应用于每个LED,其中占空比与强度相对应。人眼可以识别出200赫兹 (Hz) 或更慢的闪烁频率,因此,为了避免闪烁,应使用1000Hz或更快的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微控制器系列产品之一。它配有48MHz Arm® Cortex®-M0+内核,支持5伏I/O电压。
图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引脚之间的电阻值由以下等式确定:
其中:
VDD = 5伏
VOL = ATSAMC21J18A 的输出低压 = 0.1 x VDD = 0.5伏
VF = 正向电压(典型值)
I = 正向电流,单位:安培
R = 电阻值,单位:欧姆 (Ω)
在I = 20mA的情况下使用该公式,结果是:RRED (VF = 2 V) = 125Ω,RGREEN = RBLUE (VF = 3.2V) = 65Ω。
如果计算出的电阻不能作为标准电阻值,开发人员可以选择下一个较低值,或者下一个较高值(首选)。如果选择较低值,则必须注意,不得超过该LED的最大正向电压或ATSAMC21J18A I/O端口的最大电流灌入能力。虽然在超过这些最大值时LED仍然可以工作,但可能会降低LED的使用寿命,也可能随着时间的推移,降低I/O端口的性能或损坏该端口。或者,如果应用仍能接受较暗光线,则可以降低正向电流。例如,当正向电流为15mA时,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配备256Kb闪存、32Kb RAM和各种模拟外设。该微控制器还配有六个串行通信模块 (SERCOM),每个模块都可以作为USART、SPI、LIN从器件或I2C接口
智能RGB LED设计
使用RGB LED生成多种颜色的另一种方法是对其进行编程。智能LED是一个术语,用来描述这种带有可编程串行接口的多色LED。American Bright Optoelectronics的BL-HBGR32L-3-TRB-8就是一个很好的例子。它是一款5mm方形RGB LED,可以使用800千赫 (kHz) I2C接口进行编程,从而产生任何颜色(图5)。
图5: American Bright的BL-HBGR32L-3-TRB-8是一款尺寸为5mm的方形六引脚数字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控制信号的微控制器时,目前有许多低功耗、低成本选项可供选择。
评论
查看更多