侵权投诉

Adafruit NeoPixel的使用指南

39度创意研究所 2019-11-28 09:40 次阅读

NeoPixels的魔力

将大量LED集成到一个电子项目中曾经是一个毛茸茸的前景,一个名副其实的老鼠的电线和代码巢。专用LED驱动器芯片的到来带来了可喜的缓解,减轻了微控制器的繁琐工作,使人们可以专注于应用。更简单,但仍然不是“圣诞灯”简单。

WS2812 集成光源-或以Adafruit的说法 NeoPixel 就是寻求简单,可扩展且价格合理的全色LED的最新进展。红色,绿色和蓝色LED与驱动器芯片一起集成到通过单线控制的微小表面贴装封装中。它们可以单独使用,链接成更长的字符串或组合成更有趣的形状因数。

Adafruit NeoPixel的使用指南

我们知道您渴望入门……但是,如果这是您第一次使用NeoPixels,请至少在连接任何内容之前阅读“最佳做法”页面!

关于NeoPixels的重要重要事项

并非所有可寻址的LED都是NeoPixels。“ NeoPixel”是Adafruit的品牌,基于 WS2812 , WS2811 和 SK6812 LED/驱动器,可分别寻址RGB彩色像素和条,使用单线控制协议。我们提供的其他LED产品-DotStars,WS2801像素,LPD8806和“模拟”灯带-使用不同的方法(并有自己的教程)。 在论坛上寻求技术支持时,如果提到正确的LED类型,则可以更快找到解决方案,即避免将DotStars称为“ NeoPixels”…相似但不同!

NeoPixels!不要只是自己发光他们需要一个微控制器(例如Arduino)和一些程序。我们提供一些示例代码来帮助您入门。要创建自己的效果和动画,您需要一些编程实践。如果这是一种新体验,请遍历一些Arduino入门教程,以体会这种语言。

NeoPixels并不是每个项目的答案。时序要求非常严格,某些开发板(例如Netduino或Raspberry Pi)无法可靠地实现这一目标。这就是为什么我们继续提供其他类型的LED的原因。有些更适合某些情况。

我可以使用NeoPixels进行POV(视力保持)显示吗?

不推荐。刷新率相对较低(约400 Hz),快速运动的彩色显示屏可能看起来“有斑点”。尽管如此,它们在固定显示屏(招牌,装饰品,珠宝等)中看起来还是不错的。对于POV使用,DotStar条带看起来要好得多(它们的刷新率约为20KHz)。

光绘怎么样?

绝对!摄影灯绘画使用的动作较慢,这并不会引起人们对刷新率的限制。

链中NeoPixels的数量是否有限制?

NeoPixel链的最大长度没有固有限制,但最终您会遇到各种实践限制:

RAM: NeoPixels需要主机微控制器提供一些RAM;更多像素=更多RAM。每个像素只有几个字节,但是由于大多数微控制器都受到相当有限的资源限制,因此对于大型项目来说,这是一个非常现实的考虑。

功耗:每个NeoPixel都会消耗一点点当前;更多像素=更多功率。电源也有一些上限。

时间:NeoPixels以固定的数据速率处理来自主机微控制器的数据。更多的像素=更多的时间和更低的动画帧速率。

形状因素

NeoPixel产品以成千上万的形式提供。..从单个微小的像素到巨大的矩阵……再加上条,环和介于两者之间的所有东西。

选择一个类别从左侧列中获取针对每种NeoPixel的产品链接以及提示和技巧。

基本连接

首先,假设您已将某种型号的Arduino微控制器连接到计算机USB端口。稍后我们将详细介绍为NeoPixels供电的细节,但是通常,您通常会使用 5V直流电源(例如,“壁式电源适配器”)或(对于可穿戴项目)使用3.7伏锂聚合物电池

标识NeoPixel带,像素或其他设备的“输入”端。在某些情况下,会有一个标有“ DIN”或“ DI”(数据输入)的焊盘。其他的箭头将显示数据移动的方向。数据输入可以源自Arduino上的任何数字引脚,但是默认情况下,所有示例代码都为数字引脚6 设置。 NeoPixel屏蔽使用这种方式进行接线。

如果使用带锂聚合物电池的Flora,Feather或其他微控制器板:将带上的+ 5V输入连接到标有VBAT或板上的BAT,从板条到微控制器板上任何GND焊盘的GND,以及DIN至Flora引脚D6的BAT。如果该板没有6号插针,则需要修改示例代码以更改插针号。

对于其他具有独立+ 5V DC电源的Arduino板NeoPixels::将配电板上的+ 5V输入连接至电源的+(正)端子(请勿连接至Arduino),将DIN连接至Arduino的数字引脚6,以及–(减号或板上的GND)必须连接到直流电源上的两者减号(–)端子《《》和Arduino上的GND引脚(通常有多个-任何都可以)。

144个像素条是如此紧密地包装在一起,除了–,+和数据方向箭头外,没有其他标签空间。数据是未标记的填充。

这三个引脚的顺序可能会有所不同在不同的带钢密度和批次之间。始终使用打印在条带上的标签。仔细观察,切勿盲目遵循NeoPixel带状接线图;

将NeoPixels连接到任何LIVE电源或微控制器时,始终连接地面( –)在进行其他任何操作之前。相反,分离时最后断开接地。

使用DC时电源或特别大的电池,我们建议在+和–端子之间添加一个大电容器(1000 µF,6.3V或更高)。这防止了电流的初始涌入损坏像素。有关示例,请参见下一页的照片。

通孔NeoPixels(5mm或8mm),在每个PIXEL的+和–引脚之间添加一个0.1 µF电容器。如果没有此“去耦上限”,则单个像素可能会显示异常。

在微控制器的数据引脚和NeoPixels上的数据输入之间的〜470欧姆电阻可帮助防止数据线上的尖峰损坏第一像素。请在您的micro和NeoPixels之间添加一个!我们的NeoPixel戒指已经在该电阻上

NeoPixels可以直接从Arduino的5V引脚供电吗?

有时。 Arduino可以连续仅向5V引脚提供约500毫安的电流。每个NeoPixel可以在全亮度下吸收高达60毫安的电流。因此,是的,只要仅使用几个像素,就可以跳过单独的直流电源并直接关闭Arduino 的电源。如果颜色和整体亮度较低,则更多。如有疑问,请为像素提供单独的电源。

最佳做法

不当使用会损坏您的NeoPixels。潜水之前,请注意以下事项:

在将NeoPixels连接到任何大型电源(直流“壁式电源”或什至是大电池)之前,请添加一个电容器(如上所示,在+和–端子之间跨接1000 µF,6.3V或更高)。电容器可缓冲由条状电路汲取的电流中的突然变化。

在Arduino数据输出引脚和第一个NeoPixel的输入之间放置一个 300至500欧姆电阻。电阻应位于最靠近NeoPixel的电线末端,而不是微控制器。 某些产品已经集成了该电阻器。..如果不确定,加一个电阻器……倍增无害!

尝试最小化距离在Arduino和第一个像素之间,因此信号清晰。一两米通常是没有问题的。更长的时间会变得不可靠。

避免将NeoPixels连接到带电电路。如果您只是必须,请始终先接地》 ,然后是+ 5V,然后是数据。以相反的顺序断开连接。

如果使用单独的电源为像素供电,请在为微控制器供电之前先给像素供电。

请遵守与任何其他预防措施相同的预防措施。 静电敏感部分;

由5v电源供电的NeoPixels 需要一个5V数据信号。如果使用3.3V微控制器,则必须使用逻辑电平转换器,例如74AHCT125或74HCT245。 (如果要像从LiPoly一样以3.7v为NeoPixels供电,则3.3v数据信号就可以了)

确保连接牢固。鳄鱼夹无法可靠地连接NeoPixel环上的微小焊盘。最好将一根细尾线焊接到环上,然后将鳄鱼夹固定到该环上。

如果您的微控制器和NeoPixel由两个不同的电源供电(例如,每个电源都独立电池),则必须 是两者之间的接地连接。

我们的某些项目并未采取上述预防措施……这些通常是小型电池供电的设备,功率尖峰不是一个大问题。 任何像素很多或电源很大的项目都必须包括电源电容器和数据线电阻。

为NeoPixels供电

将NeoPixels连接到任何带电电源或微控制器时,总是否则,请先接地(–)。相反,分离时最后断开接地。

添加300微控制器数据引脚和第一个NeoPixel上的数据输入之间的500欧姆电阻可帮助防止可能会损坏第一个像素的电压尖峰。请在您的micro和NeoPixels之间添加一个!

NeoPixels通常被描述为“ 5伏设备”,但实际情况要比这稍微细微一点。

有些(不是全部)NeoPixel产品可以在稍高的电压下工作。根据可用空间,成本和最可能的应用,这取决于芯片周围的其他支持组件。 有关每种类型可接受的电压限制的指导,请参见特定的产品说明页面。如有疑问,请以5伏为目标。

始终可接受较低的电压,需要注意的是,LED会稍微变暗。有一个极限值,LED指示灯将无法点亮,或者开始显示错误的颜色。

四个电池中的四个镍氢(NiMH)可充电电池可以类似地用于提供4.8伏的电压。

请确保您 仅 在此配置中使用NiMH电池。四个碱性电池(一次性类型)将总共输出6V电压-对于某些NeoPixels来说太高了,肯定

在将NeoPixel条带连接到任何电源之前,我们强烈建议添加一个大电容器(1000 µ 《+和–端子之间的b》 F,6.3V或更高)。这样可以防止电流的初始涌入损坏像素。

对于许多可穿戴项目,我们建议使用锂聚合物电池。它们可提供3.7伏特的电压-非常适合直接馈入Adafruit Flora等低功率微控制器,但电压足以运行较短的NeoPixels。

三个碱性电池(例如AA电池)可以安装在电池座中,以提供4.5伏的电压。尽管比精美的锂聚合物包装更大,更重,但它们价格便宜且易于获得。

电池供电的LED项目规划在 LED像素和条带 。

适用于大多数非便携式“桌面” op”项目中,理想的5V DC开关电源。这种2安培的小电源非常适合一米左右的NeoPixel带。我们将在稍后解释大型项目。

对台式电源要格外小心。有些电源-甚至是知名的,备受好评的品牌-初次开机时可能会产生较大的电压尖峰,从而立即损坏NeoPixels!

如果使用台式电源,请勿直接连接NeoPixels。首先打开电源,让电压稳定,然后然后连接像素(首先连接GND)。

估算功率要求每个NeoPixel均以最大亮度白色(红色+绿色+蓝色)。不过,在实际使用中,很少会像这样打开所有像素。混合颜色并显示动画时,当前绘制会少得多。不可能在所有情况下都估计一个数字,但是作为经验法则,我们一直使用1/3的电流(每像素20 mA)作为标准,而不会产生不良影响。但是,如果您知道每个像素都需要以最大亮度点亮,请使用60 mA的完整数字。

要估算电源需求,请将像素数乘以20,然后将结果除以1,000,经验法则”(安培)中的电源额定值。如果要在所有情况下都保证绝对的安全裕度,请使用60(而不是20)。例如:

60 NeoPixels×20 mA÷1,000 =最小1.2安培

60 NeoPixels×60 mA÷1,000 =最小3.6安培

功率中“开销”的选择供应完全取决于您。更大尺寸的电源可实现最大的安全性和可靠性,这是我们的建议。大多数电源可以在短时间内短暂地施加一些额外的电流。许多都装有热熔断器,如果工作过度,它们只会关断。因此,从技术上讲,他们可能会工作,但这在电子学上等同于滥用租车。

请记住,60 mA是最差的案例估计!我们已经编写了一个单独的完整教程来控制一切:使用NeoPixels汲取力量。

我估计我需要3.6 Amp电源。我手头有10安培的电源。

只要输出是5伏直流电,这会导致我的NeoPixels爆炸吗?你真金。 LED将仅吸收所需的电流(安培)。因此,额外的安培是可以的-实际上,这可能是好的事情。较大的电源将运行,因为它没有被推到极限。

过大的电压肯定会杀死您的LED。

额外的安培=好。 额外电压=不好。

电池和“安培小时数”如何?

安培小时数是当前时间。可以将2600 mAh(毫安小时)的电池视为一小时连续提供2.6安培,或者连续2小时提供1.3安培,依此类推。实际上,它不是那样线性的;大多数电池在重载下的运行时间会成比例地缩短。另外,大多数电池在一个小时内都不会被放电– 这甚至可能很危险!选择足够大的电池,至少要花费几个小时跑下来。对于您来说,这既安全又对电池的寿命也有好处。

我需要为NeoPixels的很多电源供电,并且没有那么大的电源。我可以使用几个较小的吗?

也许。使用单个电源的好处,下面将讨论大型电源。不过,“非最佳”并不一定意味着“悲观”,我们也不会阻止任何人使用他们拥有的资源。

如果走这条路,关键是要在所有接地销之间板条共同连接,但每个电源的+ 5V只能连接到NeoPixels的一个长度,而不应该全部连接。每个电源都有一点不同-并非精确地是 5伏特-并且可以防止某些电源向后馈电。

巨型电源

Adafruit提供最高10A的5V直流电源。这通常足以满足数百个NeoPixels或更多。对于真正大型安装,您需要将其放在其他地方。

一种可能性是重新使用ATX计算机电源。强大的服务器类型通常可提供高达30安培的电流。需要进行一些细微的修改……围绕Google进行“ ATX电源破解”。请注意,如果12V导轨上没有负载,则ATX 5V导轨可能非常不稳定!

更大(更可怕,更昂贵)的实验室额定电流达数百安培的电源。有时这是建筑规模项目和大型生产所需的。有时我们会寻求帮助。..

请注意,这种规模的项目可能非常危险,而且配电问题与业余规模的项目根本不同。我们很乐意在论坛中为我们的客户提供帮助,他们只是为他们提供产品技术支持,而不是为他们提供全面的工程服务。如果您正在开发此类项目, ,请聘请在大功率,低压系统(例如光伏或大型RV和船只)方面经验丰富的专业电工。这不是伪装。

Distribution Power 电线越长,电阻越大。电阻越大,沿其长度下降的电压就越大。如果电压降得太远,则NeoPixels的颜色可能会受到影响。

请考虑整整4米长的NeoPixels。在条带的一端施加5V电压时,对于最接近该端的那些像素,功率仅穿过几英寸的铜线。但是在带状电缆的最远端,电源横穿了 8米的铜线-在+ 5V线上出4米,在地线上又出4米。由于电压降,最远的像素将变为褐色(蓝色和绿色的LED需要比红色更高的电压)。

专业提示: NeoPixels不在乎它们从何端获得电源。尽管数据仅在一个方向上移动,但电可以双向移动。您可以在头,尾部和 》中间,或者理想情况下将其分发给几个点。为了获得最佳的色彩一致性,请确保任何像素与电源连接之间的距离不超过1米。对于较大的NeoPixel设置,请将功率分配视为一棵树的分支,而不是一条连续的线。

在微小的项目中,电阻也是一个问题!

对于可穿戴电子设备,我们喜欢导电线……它柔软且可以洗手。缺点是它没有太多电流。在这里,几根导电线被组合在一起,以便为一对悬挂器的+和–导体提供更好的容量。

(来自“ Pac Man像素悬挂器”指南。)

从3.3V微控制器驱动5V NeoPixel

越来越多的微控制器以3.3伏而不是5伏的电压运行。这是提高效率的好消息,但可能会带来5V NeoPixels的通信问题。来自微控制器的3.3V信号可能不够“响亮”,无法向更高电压的设备注册。制造商建议最小信号电压为NeoPixel电压的70%。

有两种解决方法:

降低NeoPixel的电压,使其更接近(或相等)到微控制器。这就是为什么我们建议FLORA项目使用LiPo电池的原因:3.7V电压足以运行较短的像素长度,并且微控制器在该电压下也很舒适。

使用逻辑电平转换器来逐步提高电压。

有关在NeoPixels上使用电平转换器的更多信息,请参阅本指南。

软件

NeoPixels始于Arduino,但此后扩展到了其他开发板和语言。

从左栏中选择类别每个编码环境特有的信息。

Python和CircuitPython

将NeoPixel LED与Python或CircuitPython以及Adafruit CircuitPython NeoPIxel模块一起使用很容易。通过该模块,您可以轻松地编写控制LED的Python代码。

借助我们的CircuitPython-for-Python Adafruit_Blinka,您可以将这些LED与任何CircuitPython微控制器板或具有GPIO和Python的计算机一起使用。兼容性库。

CircuitPython微控制器接线

首先,完全按照前一页所示,将一些NeoPixels连接到板上。确认您的连接位于数据输入或 DIN 一侧。插入DATA OUT或DOUT端是一个常见错误!连接带有标签,某些格式带有箭头,指示数据必须流向。

请勿使用微控制器上的USB引脚为多个LED供电!除此之外,您还需要使用外部电源。有关更多信息,请查看本指南的“启用NeoPixels”页面:https://learn.adafruit.com/adafruit-neopixel-uberguide/powering-neopixels

下面是将Feather M0连接到NeoPIxel带的示例:

板载USB 到 LED 5V

板载GND 》连接到 LED接地

D5板到 LED Din

Python计算机接线

由于可以使用数十台 Linux计算机/主板,因此我们将显示Raspberry Pi的接线。对于其他平台,请访问Linux上的CircuitPython指南,以了解您的平台是否受支持。

以下是连接到NeoPixel带的Raspberry Pi:

Pi 5V 至 LED 5V

Pi GND 到 LED GND

Pi GPIO18 要在树莓派上 LED Din

,必须将 NeoPixels连接到GPIO10,GPIO12,GPIO18或GPIO21 才能正常工作!

CircuitPython安装NeoPixel库

您需要在CircuitPython板上安装Adafruit CircuitPython NeoPixellibrary。

首先请确保您正在为板运行最新版本的Adafruit CircuitPython。/p》

接下来,您需要安装必要的库以使用硬件-仔细按照以下步骤从Adafruit的CircuitPython库捆绑包中查找和安装这些库。我们的CircuitPython入门指南上有一个很棒的页面,说明如何安装库捆绑包。

对于诸如Trinket M0或Gemma M0的非表达板,您需要从捆绑包中手动安装必要的库:

neopixel.mpy

adafruit_bus_device

在继续之前,请确保板的lib文件夹或根文件系统具有 neopixel.mpy,和 adafruit_bus_device 文件和文件夹 已复制。/p》

下一步连接到开发板的串行REPL,这样您就可以在CircuitPython上出现》》》 提示。

NeoPixel库的Python安装

您需要安装Adafruit_Blinka库,该库在Python中提供CircuitPython支持。这可能还需要验证您正在运行Python3。由于每个平台都有一些不同,并且Linux经常更改,请访问Linux上的CircuitPython指南,以准备好您的计算机!

一旦完成,请从您的命令行运行以下命令:

sudo pip3 install adafruit-circuitpython-neopixel

如果您的默认Python是版本3,则可能需要运行‘pip’。只要确保您不尝试在Python 2.x上使用CircuitPython,就不支持它!

CircuitPython和Python用法

为演示此库与NeoPixel LED的用法,我们将使用开发板的Python REPL。

要使NeoPixels在Raspberry Pi上运行,您必须以root身份运行代码!需要根访问权限才能访问RPi外围设备。

运行以下代码以导入必要的模块,并初始化带有30个LED的NeoPixel灯条。如果您的NeoPixels连接到其他引脚,别忘了更改引脚,如果数字不同则更改像素数。

下载:文件

复制代码

import board

import neopixel

pixels = neopixel.NeoPixel(board.D5, 30) # Feather wiring!

# pixels = neopixel.NeoPixel(board.D18, 30) # Raspberry Pi wiring! import board

import neopixel

pixels = neopixel.NeoPixel(board.D5, 30) # Feather wiring!

# pixels = neopixel.NeoPixel(board.D18, 30) # Raspberry Pi wiring!

现在,您准备使用以下属性点亮NeoPixel LED:

亮度-LED的整体亮度

填充-为所有像素着色一种给定的颜色。

显示-如果auto_write设置为False,则更新LED颜色。

例如,点亮第一个NeoPixel红色:

下载:文件

复制代码

pixels[0] = (255, 0, 0) pixels[0] = (255, 0, 0)

要点亮所有NeoPixels绿色:

下载:文件

复制代码

pixels.fill((0, 255, 0)) pixels.fill((0, 255, 0))

这就是CircuitPython和NeoPixel LED入门的全部内容!

完整示例代码

下载:项目Zip 或 neopixel_simpletest.py | 在Github上查看

复制代码

import time

import board

import neopixel

# On CircuitPlayground Express, and boards with built in status NeoPixel -》 board.NEOPIXEL

# Otherwise choose an open pin connected to the Data In of the NeoPixel strip, i.e. board.D1

pixel_pin = board.NEOPIXEL

# On a Raspberry pi, use this instead, not all pins are supported

#pixel_pin = board.D18

# The number of NeoPixels

num_pixels = 10

# The order of the pixel colors - RGB or GRB. Some NeoPixels have red and green reversed!

# For RGBW NeoPixels, simply change the ORDER to RGBW or GRBW.

ORDER = neopixel.GRB

pixels = neopixel.NeoPixel(pixel_pin, num_pixels, brightness=0.2, auto_write=False,

pixel_order=ORDER)

def wheel(pos):

# Input a value 0 to 255 to get a color value.

# The colours are a transition r - g - b - back to r.

if pos 《 0 or pos 》 255:

r = g = b = 0

elif pos 《 85:

r = int(pos * 3)

g = int(255 - pos*3)

b = 0

elif pos 《 170:

pos -= 85

r = int(255 - pos*3)

g = 0

b = int(pos*3)

else:

pos -= 170

r = 0

g = int(pos*3)

b = int(255 - pos*3)

return (r, g, b) if ORDER == neopixel.RGB or ORDER == neopixel.GRB else (r, g, b, 0)

def rainbow_cycle(wait):

for j in range(255):

for i in range(num_pixels):

pixel_index = (i * 256 // num_pixels) + j

pixels[i] = wheel(pixel_index & 255)

pixels.show()

time.sleep(wait)

while True:

# Comment this line out if you have RGBW/GRBW NeoPixels

pixels.fill((255, 0, 0))

# Uncomment this line if you have RGBW/GRBW NeoPixels

# pixels.fill((255, 0, 0, 0))

pixels.show()

time.sleep(1)

# Comment this line out if you have RGBW/GRBW NeoPixels

pixels.fill((0, 255, 0))

# Uncomment this line if you have RGBW/GRBW NeoPixels

# pixels.fill((0, 255, 0, 0))

pixels.show()

time.sleep(1)

# Comment this line out if you have RGBW/GRBW NeoPixels

pixels.fill((0, 0, 255))

# Uncomment this line if you have RGBW/GRBW NeoPixels

# pixels.fill((0, 0, 255, 0))

pixels.show()

time.sleep(1)

rainbow_cycle(0.001) # rainbow cycle with 1ms delay per step

import time

import board

import neopixel

# On CircuitPlayground Express, and boards with built in status NeoPixel -》 board.NEOPIXEL

# Otherwise choose an open pin connected to the Data In of the NeoPixel strip, i.e. board.D1

pixel_pin = board.NEOPIXEL

# On a Raspberry pi, use this instead, not all pins are supported

#pixel_pin = board.D18

# The number of NeoPixels

num_pixels = 10

# The order of the pixel colors - RGB or GRB. Some NeoPixels have red and green reversed!

# For RGBW NeoPixels, simply change the ORDER to RGBW or GRBW.

ORDER = neopixel.GRB

pixels = neopixel.NeoPixel(pixel_pin, num_pixels, brightness=0.2, auto_write=False,

pixel_order=ORDER)

def wheel(pos):

# Input a value 0 to 255 to get a color value.

# The colours are a transition r - g - b - back to r.

if pos 《 0 or pos 》 255:

r = g = b = 0

elif pos 《 85:

r = int(pos * 3)

g = int(255 - pos*3)

b = 0

elif pos 《 170:

pos -= 85

r = int(255 - pos*3)

g = 0

b = int(pos*3)

else:

pos -= 170

r = 0

g = int(pos*3)

b = int(255 - pos*3)

return (r, g, b) if ORDER == neopixel.RGB or ORDER == neopixel.GRB else (r, g, b, 0)

def rainbow_cycle(wait):

for j in range(255):

for i in range(num_pixels):

pixel_index = (i * 256 // num_pixels) + j

pixels[i] = wheel(pixel_index & 255)

pixels.show()

time.sleep(wait)

while True:

# Comment this line out if you have RGBW/GRBW NeoPixels

pixels.fill((255, 0, 0))

# Uncomment this line if you have RGBW/GRBW NeoPixels

# pixels.fill((255, 0, 0, 0))

pixels.show()

time.sleep(1)

# Comment this line out if you have RGBW/GRBW NeoPixels

pixels.fill((0, 255, 0))

# Uncomment this line if you have RGBW/GRBW NeoPixels

# pixels.fill((0, 255, 0, 0))

pixels.show()

time.sleep(1)

# Comment this line out if you have RGBW/GRBW NeoPixels

pixels.fill((0, 0, 255))

# Uncomment this line if you have RGBW/GRBW NeoPixels

# pixels.fill((0, 0, 255, 0))

pixels.show()

time.sleep(1)

rainbow_cycle(0.001) # rainbow cycle with 1ms delay per step

MakeCode

我们有一个单独的指南,说明了Microsoft MakeCode中NeoPixels的使用:

指南链接:具有MakeCode的NeoPixels

许多示例都可以在浏览器中使用Circuit Playground Express及其10个内置NeoPixel LED正常运行。甚至还有一页说明如何将MakeCode与外部条带一起使用。

下载

WS2812数据表(用于某些较旧的项目)

WS2812B数据表(用于某些较旧的项目)

SK6812数据表(自2016年起在我们的所有产品栏中使用)

NeoPixel 12-LED环

GitHub上的EagleCAD PCB文件

Adafruit Fritzing库中的Fritzing对象

NeoPixel 16-LED环

GitHub上的EagleCAD PCB文件

Adafruit Fritzing库中的Fritzing对象

NeoPixel 24-LED环形

GitHub上的EagleCAD PCB文件

Adafruit Fritzing库中的装饰对象

NeoPixel 1/4 60-LED环形

GitHub上的EagleCAD PCB文件

Adafruit Fritzing库中的Fritzing对象

NeoPixel宝石

GitHub上的EagleCAD PCB文件

Adafruit Fritzing库中的Fritzing对象

适合面包板的NeoPixel Breakout

GitHub上的EagleCAD PCB文件

Adafruit Fritzing库中的Fritzing对象

NeoPixel NeoMatrix 8x8

GitHub上的

EagleCAD PCB文件

Adafruit Fritzing库中的Fritzing对象

NeoPixel Arduino Shield

GitHub上的EagleCAD PCB文件

Adafruit Fritzing库中的Fritzing对象

NeoPixel 8 Stick

GitHub上的EagleCAD PCB文件

Adafruit Fritzing库中的Fritzing对象

NeoPixel灯带和钢绞线

NeoPixel最受欢迎的类型是这些柔性LED灯带……它们可以切割成一定长度,并适合各种用途东西。我们已经提供了十二个品种!需要注意的两个重要事项:

尽管这些条被描述为“柔性的”,但它们不容许连续和反复弯曲。” “可成型”可能是一个更好的词。典型的应用程序是体系结构,可以将它们围绕圆柱弯曲然后保持原样。反复弯曲(如在服装上)将很快使焊料连接破裂。对于可穿戴设备,可以将较短的部分固定在半刚性的底座上(例如,帽子,BMX装甲等),也可以使用稍后显示的各个 sewable NeoPixels。

观看你的力量。尽管每个像素只需要一点电流,但它加起来很快 。.. NeoPixel条形如此简单易用,可以很快带走!我们将在“为NeoPixels供电”页面上进行详细说明。

RGB NeoPixel条带

NeoPixel数字RGB LED防风雨条有三种不同的“密度”:每米30个,60个和144个LED,在白色或黑色背板上。

每米30个LED,白带

每米30个LED,黑条

每米60个LED,白条

每米60个LED,黑色带

每米144个LED,白色带

每米144个LED ,黑条

T他的峰值峰值功耗(所有LED均以最大亮度点亮)为:

30 LED:9瓦(约1.8安培)

60 LED:18瓦(5伏时约为3.6安)。

144 LED: 43瓦(5伏时为8.6安)。

混合的颜色和较低的亮度设置将按比例减少功耗。

对于使用Circuit Playground Express或仅需要“ 无需焊接”的用户选项(与大多数教室一样),我们有一个特殊的半米30-LED NeoPixel灯条,上面装有鳄鱼夹。简单!

迷你紧身RGB NeoPixel条纹

Mini Skinny NeoPixel条带大约是经典NeoPixel条带宽度的一半。它们有两种密度和底色可供选择:

每米30个LED,白色条带

每米30个LED,黑条

每米60个LED,白条

每米60个LED,黑条

每米144个LED,白条

每米144个LED,黑条

30 60条LED/米条的宽度为7.5毫米,如果从外壳中卸下条,则为5毫米(与经典条的12.5毫米/10毫米相比)。高密度的144/m胶条大约10毫米宽,或者是除去外壳的7.5毫米。

电源要求类似于上述标准宽度的NeoPixel胶条。

侧光NeoPixel条带

/table》

RGBW NeoPixel条

《表class =“ build-table”》

侧光 NeoPixel带具有照亮 next 而不是 over 。它们的亮度不及常规NeoPixels,但在狭窄的空间或边缘发光的丙烯酸树脂中可能会有有趣的用途。这些灯条在黑色柔性条上以三种密度提供:

60个LED,1米长的黑色灯条

90个LED, 1米长的黑条

120个LED,1米长的黑条

最近添加的是 RGB W NeoPixel条。这些增加了第四个LED元素-纯白色-比红色+绿色+蓝色混合的白色更“真实”和令人赏心悦目。像RGB灯带一样,它们具有不同的像素密度和底衬颜色。

每米30条RGBW LED,白带

《每米每米30个RGBW LED,强光

米,每米60个RGBW LED,白光

每米60个RGBW LED米,黑条

每米144个RGBW LED,白条

每米144个RGBW LED,黑条

每个像素有第四个LED,这些条带可能比其RGB等效条带多消耗33%的电流。最大亮度最大的情况是(大约):

30个RGBW LED:12瓦(5伏时为2.4安)

60 RGBW LED:24瓦(5伏时为4.8安培)

144 RGBW LED:57瓦(5伏时为11.5安培)

宽度与“经典” NeoPixel条带相同……这些尺寸不是“皮包骨头”的尺寸。

“ Neon-Like” NeoPixel Flex Strip

这种独特的NeoPixel柔性条带厚实的硅胶外壳,具有类似 neon-like 的扩散外观。

此条带在仪表上包含 60个LED,但每像素3个LED。因此,基本上,在您的NeoPixel程序中,这看起来像一串20像素长的线。

与NeoPixel带的其他品种不同,该线需要从9伏(最低)到12伏(理想)的功率DC。

带有硅胶管的NeoPixel RGB霓虹灯状LED软灯条-1米

紫外线NeoPixel条

单色 NeoPixel条带的 ultraviolet 变体可用于特殊应用,目前具有一种像素密度和底色:

每米32个UV LED,白色剥离

与紫外线反应性涂料,荧光激光切割丙烯酸等组合使用时,可以提供不同寻常的效果。

通常的NeoPixel R,G和B频道转换为三个单独的紫外线二极管。因此,我们建议您几乎将三个通道都设置为相同的值,范围从(0,0,0)到(255,255,255)。

与“经典” NeoPixel条带的宽度相同,并且在全亮度下的功耗仅略高于RGB 30/m:约9.6W/米(1.9A @ 5V)。

NeoPixel钢绞线

像NeoPixel条一样,这些“ 钢绞线” 灵活,并且可以被包裹在东西周围。像素之间的距离更远(2或4英寸),每个像素被密封在自己的小塑料盒中,使其具有防风雨(但不适合连续浸没)。一串中有 20个像素。

NeoPixel钢绞线— 20 LED 4“间距

NeoPixel钢绞线— 2“间距处的20个LED

关于NeoPixel条的详细信息

144 像素/米NeoPixel条和 32 /m紫外线条的销售长度为一米。每个仪表都是带有末端连接器的单独条。在144个像素/m RGB,RGBW或32/m UV中,不提供更长的连续长度。

30 和 60 像素/米NeoPixel条带以一米 倍数销售。多米的订单将是单个连续条带,最高限额:对于60像素/米带,为4米;对于30像素/米,带为5米。

对于 30 和 60 像素/米带,如果购买《如果该钢带少于完整的卷轴(分别为4米或5米),则该钢带可能会或可能不会在一端或两端焊接了3针JST插头。这些插头用于工厂测试,并且可能位于任一端 –插头并不总是指示输入端!打印在条形上的箭头显示了实际的数据方向。您可能需要焊接自己的电线或插头。

将弯曲带封闭在防风雨的硅胶套中,以防雨淋和飞溅,但是不建议用于连续浸没。早期的144像素/米条带不是防风雨的,但是当前的库存现在提供了此功能。

可以切割和移除硅胶套,以实现更薄的外形,但这会损害条带的耐候性。

极少的胶粘剂会粘附在耐候性硅胶套上。使用拉链扎带进行“机械”粘合通常更快,更容易。我们发现的唯一可靠的胶水是Permatex 66B透明RTV硅树脂(并非所有的硅胶都可以使用!)和乐泰塑料粘合系统(一种由2组分组成的氰基丙烯酸酯胶)。客户还报告了 Permatex超灰色硅胶垫片制造商的出色结果。

但是, 不要使用Permatex 66B硅树脂密封切割条的开口端!像许多RTVsilicones一样,66B在固化时会释放出乙酸,这会破坏电子器件。在条带的外部上很好,但在条带的内部则没问题。使用 GE Silicone II 密封条带末端,或者良好的密封性能

两面地毯胶带,可以轻松抓住硅胶套;类似于便利贴。或者,您也可以尝试在顶部清除管道胶带。

所有LED灯条都是按 1/2米分段制造的然后加入到更长的条中。这些连接处的像素间距通常与其余连接相差2-3毫米。这不是制造错误,而只是物理现实。

某些144像素带状发光二极管在LED之间没有焊盘。如果将它们切成较短的部分,则连接它们的唯一方法(半米部分除外)是小心地直接焊接到LED。缺口的一角是GND引脚。

NeoPixel条仅仅是个开始……我们已经有了形状!圆环,网格,盾牌等等……

NeoPixel环

NeoPixel环是装饰有NeoPixel LED的圆形刚性印刷电路板。最初是为我们的 NeoPixel护目镜套件设计的,事实证明它们在其他项目中非常受欢迎……时计,GPS寻路器,珠宝等……现在我们提供了几种尺寸和品种……

而不是列出了无数个不同的链接,我们只有一个登录页面,可以在所有不同的NeoPixel戒指产品中进行选择:

NeoPixel戒指产品选择器

NeoPixel戒指有 12 , 16 , 24 和 60 像素品种。

60 像素环实际上作为 15 像素季度。要获得整圈,您需要购买 4 和焊料他们在一起。否则,您可能会发现个人弧的创意!

像素数外径内径

1237毫米/1.5 “23毫米/1”

1644.5毫米/1.75英寸31.75毫米/1.25英寸

2466毫米/2.6英寸52.5毫米/2.05英寸

60(4个15像素弧)158 mm/6.2“145毫米/5.7英寸

所有环的厚度约为3.6毫米/0.15英寸(1.6毫米)对于PCB,对于NeoPixels,为2毫米)。

RGB NeoPixels最便宜,可以产生数百万的颜色组合。

RGBW NeoPixels除了提供RGB之外,还提供了令人赏心悦目的“真实”白色 。有三种不同的色温可供选择:

酷白:大约 6000 开尔文(K)。

中性:约 4500K 。

暖白:约。 3000K 。

RGBW像素包含一个半透明的扩散器层,以帮助混合和柔化光输出。这使它们看起来强度不如RGB像素(“水透明”)强,但是里面的LED确实相同。

关于NeoPixel环的细部细节

将电线焊接到这些环时,您需要格外警惕焊料斑点和短路。组件之间的间距非常紧密! 从正面插入导线并在背面焊接通常是最容易的。

如果使用鳄鱼夹,我们建议先将短跨接线焊接到环输入并连接夹子出于类似的原因。(我们的一些教程和产品照片的确显示了直接与环相连的鳄鱼夹,但我们在使用它们上有很多经验。)

还有为微粒(以前称为Spark) Photon 开发板专门设计的 24像素RGB 环。

这不是像其他“透明”一样–中心的空间为光子板提供了一个插槽。

NeoPixel矩阵

NeoPixel矩阵是NeoPixels的二维网格,均由单个微控制器引脚控制。

刚性8x8 NeoPixel矩阵

与NeoPixel环一样,这64个像素的矩阵也组装在刚性印刷电路板上,并提供 RGB 和 RGBW 两种版本。

NeoPixel Matrix产品选择器

所有尺寸均为71毫米(2.8英寸)正方形,厚约3.6毫米。有多个安装孔,并且DOUT引脚允许串联连接多个矩阵。

RGB NeoPixels最便宜,可以产生百万种颜色组合。

RGBW NeoPixels除了提供RGB之外,还提供了令人赏心悦目的“真实”白色。有三种不同的色温可供选择:

冷白:大约 6000 开尔文(K)。

中性:约 4500K 。

暖白:约 3000K 。

RGBW像素包含一个半透明的漫反射器层,以帮助混合和柔化光输出。这使它们看起来强度不如RGB像素(“水透明”)强,但是里面的LED确实相同。

灵活的NeoPixel矩阵

灵活的NeoPixel矩阵有三种不同的大小:

8x8 RGB像素

16x16 RGB像素

8x32 RGB像素

大小尺寸LED总数 最大功耗(大约)

8x880mm/3.15 “方形6419瓦(5伏时为3.8安培)

16x16160 mm/6.3“正方形25677瓦(5伏时为15安培)

8x32320毫米x 80毫米/12.6“ x 3” 25677瓦(5伏时为15安)

Flex矩阵的厚度约为2毫米(0.08英寸)。

不过这些矩阵称为“柔性”,这些矩阵不能承受连续和反复的弯曲。“可成形”可能是一个更好的词-它们可以围绕诸如帽子之类的刚性或半刚性形状弯曲。反复弯曲(如在服装上)将很快使焊料连接破裂。 (产品页面上的视频仅强调这些矩阵的灵活性,但这确实是“不要在家中尝试”的东西。)

Flex矩阵仅适用于 RGB像素; 不提供RGBW。

关于NeoPixel矩阵的详细信息

如NeoPixel Strips页面上所述,在使用NeoPixel矩阵时请牢记功耗。

i》

如果需要此处未提供的大小或形状的NeoPixel矩阵,则可以使用部分创建自己的 NeoPixel带!

NeoPixel矩阵不强制执行任何特定的“拓扑”-一些像素行可能是从左到右排列的像素行,其他像素行可能是交替排列的-从右到右和从右到左的行,也可以将它们安装在垂直列中。 这将需要对您的代码进行一些计划。我们的 NeoMatrix 库支持大多数矩阵拓扑。

我们在NeoPixel Shields页面上还有一些特殊用途的矩阵!

NeoPixel Shields

尽管并不是严格意义上的Arduino的所有“ Shields”,但仍有一些NeoPixel产品被设计为直接安装在某些微控制器板上(或下面)。

适用于Arduino的NeoPixel Shield

用于Arduino的5x8 NeoPixel Shield 恰好适合放在顶部一个Arduino Uno或兼容板(推荐5V逻辑)。与我们的许多NeoPixel产品一样,它们提供 RGB 和各种 RGBW 像素类型:

NeoPixel Shield产品选择器 》

默认情况下,LED由Arduino的5V引脚供电。只要您不要以全亮度点亮所有像素就可以了。通过焊接随附的端子块或使用外部电源为屏蔽供电。

NeoPixel在数字引脚6 上进行控制,但是通过一些灵巧的接线,您可以将其更改为任何引脚。

NeoPixel FeatherWing

很可能是可爱小东西历史上最可爱的东西, NeoPixel FeatherWing 是4x8像素矩阵,可以完美地 容纳在我们的 Feather 微控制器板上。

NeoPixels通常是由数字6针控制的,但是底部的焊盘使它可以重新分配。特别是,必须移动 Feather Huzzah ESP8266的默认引脚,尝试使用引脚#15!

NeoPixel Featherwing仅 RGB ;没有RGBW版本。

Pimoroni独角兽帽子

Pimoroni独角兽帽子以神话中的动物恰当地命名-通常我们会说NeoPixels不能与Raspberry Pi一起使用,但是Pimoroni可以使用制作一些神奇的软件,使这种结合成为可能!这是一个8x8 RGB矩阵,可以恰好适合Raspberry Pi Model A +,B +或Pi 2。

由于Unicorn HAT的工作方式,您无法在其旁边使用Pi的模拟音频。如果您看到奇怪的随机颜色模式和闪烁,请确保已禁用模拟音频。

Particle/Spark NeoPixel环形套件

以前在“环”页面上提到过,但后代:此 24像素RGB ring是专门为“粒子”(以前称为Spark) Photon 开发板设计的。

其他NeoPixel形状

NeoPixel Stick

最简单的事情……沿着刚性电路板排成一行的 8 NeoPixels 。像我们的戒指和矩阵一样,这些是棒图的指示器!

NeoPixel棒有 RGB 和 RGBW 品种。

NeoPixel棒产品选择器

所有尺寸均为51.1 x 10.2毫米(2.0 x 0.4英寸)。

NeoPixel珠宝

当您需要比单个NeoPixel所能提供的更多的“打孔”时,这些 7像素珠宝可提供大量照明紧凑的形状。再次提供 RGB 和 RGBW 品种。

NeoPixel珠宝产品选择器

直径均为23毫米(0.9英寸)。

1/4 60 NeoPixel戒指

尽管最初设计为四人一组以完成 60 NeoPixel环,但单个 15像素四分之一环 也可以用于解决有趣的设计问题! RGB 和 RGBW 可用。

NeoPixel环形产品选择器

Side Light NeoPixel LED PCB Bar strong》

A 半米刚性PCB ,紧密包装有 60 侧光NeoPixels。这是一种奇怪的动物,但可能只是紧凑的轻型绘画项目或边缘照明的标牌所用。您会怎么做?

侧灯NeoPixel LED PCB条-60个LED-120个LED/米-500mm长

单个NeoPixels

如果您只需要少量像素……或者如果现成的形状和条带不能完全满足您的需求……单个NeoPixels 提供对放置和数量的最大控制。

集成的NeoPixel产品

某些单独的NeoPixel产品已准备好使用,带有一块装有LED的小型PCB,一个用于电源的去耦电容器,以及用于

Flora RGB Smart NeoPixels

原始的Adafruit NeoPixel尺寸! Flora RGB Smart NeoPixels 专为使用导电线的可穿戴项目而设计,但也可以与电线正常焊接。这些有两种格式:

一包4 ,可以按原样使用。

20张纸 strong》,在需要时将它们剪下来并节省一点钱。

Flora RGB智能像素直径约为12.5毫米(0.5英寸)。这些仅是 RGB ;没有RGBW版本。

适合面包板的RGBSmartNeoPixels

这些类似于可缝制的Flora NeoPixels,但带有一个引脚排列(加上接头)可整齐地插入面包板中以进行原型制作。还提供两种格式:

一包4 ,可以按原样使用。

25张纸 》,根据需要切断。

对于这两种类型,标头都是可选的,不包含。

适合面包板的NeoPixels尺寸为10.2 x 12.7毫米(0.4 x 0.5英寸),并且仅 RGB ;没有RGBW版本。

NeoPixel迷你PCB

NeoPixel Mini PCB -以每包5包-是最小的即用型NeoPixel格式。

这些没有安装孔或焊接通孔…导线必须直接焊接到PCB背面的焊盘上。

每个直径约为10毫米(0.3英寸)。这些仅是 RGB ;没有RGBW版本。

离散NeoPixel产品

对于需要完全定制设计的高级用户,可以使用离散NeoPixel 组件。您需要提供自己的PCB和(取决于像素类型)表面贴装焊接技能。

我们强烈建议 ,每个NeoPixel都有一个随附的附件。 + V和地之间的电容为0.1μF。这样可以防止由于像素驱动器逻辑不足而导致的通信问题。偶尔在成对的像素之间插入一个 个电容器 足够了;我们的某些NeoPixel戒指可以这样工作。

穿透式NeoPixels

离散通孔NeoPixels 有两种尺寸:

8mm Diffused (5包)

5mm Diffused –每包5张。

5mm透明已经停产,但是如果您需要引脚说明,产品页面仍然可用。

通孔NeoPixels仅 RGB ;没有RGBW版本。强烈建议在每个像素的+和地面之间使用0.1μF电容。

SMT NeoPixels

表面贴装“ 5050”(5毫米方形)NeoPixels是可用的品种很多:

5050 RGB LED – 10件装。

RGBW NeoPixel –冷白色–白色外壳-每包10个。

RGBW NeoPixel –中性白–白色案例 –每包10个。

RGBW NeoPixel –暖白–白色案例-每包10张。

RGBW NeoPixel –冷白–黑盒 –每包10张。

RGBW Ne oPixel – NeutralWhite–黑盒 – 10件装。

RGBW NeoPixel – WarmWhite–黑盒 – 10件装。

NeoPixel –冷白(3倍白,无RGB)–每包10张。

NeoPixel –暖白(3倍白,无RGB)–每包10张。/li》

全部为5毫米见方。建议为每个像素在+和地面之间添加一个 0.1 F电容。

白色和黑色外壳的像素在功能上是相同的;这纯粹是您设计的美学选择。

“冷白”的尺寸约为6000开尔文。 “中性白”约为4500K。 “暖白色”约为3000K。

微型表面贴装“ 3535 ”(3.5毫米见方)NeoPixels有两种 RGB 版本;没有RGBW。

NeoPixel Mini 3535 RGB –白色外壳 – 10件装。

NeoPixel Mini 3535 RGB –黑色案例 –建议装10包。

去耦电容器。与“ 5050” NeoPixels一样,白色和黑色外壳版本在功能上相同,这是一种美学设计选项。

WS2811驱动程序集成电路

NeoPixel驱动器逻辑可从LED单独获得,允许电源用户创建极其定制的设计……也许使用其他LED颜色,或者与功率MOSFET结合使用NeoPixel协议来控制大电流LED或“模拟” RGB LED条。

这些要求电路设计技巧,定制PCB和精细的表面贴装焊接。建议为每个芯片使用0.1 uF的去耦电容。

Arduino库安装

“从头开始”控制NeoPixels是一个挑战,因此我们提供了一个库,让您专注于有趣和有趣的部分。该库可与大多数主流Arduino开发板及其衍生产品一起使用:Uno,Mega,Leonardo,Micro,Adafruit Flora等-多数与8至16 MHz的Atmel AVR 8位处理器一起使用的任何东西-还可与Arduino Due和所有

由于使用了特定于处理器的汇编语言,因此该库在Netduino,ChipKIT或其他高级“类似Arduino的”板上不起作用。其他人可能已经编写了代码以及此类板的库,但我们无法为您可能在此处遇到的任何错误或麻烦提供技术支持;这是一些前沿的工程。其中一些替代库位于“高级编码”部分。

通过库管理器安装Adafruit_NeoPixel

最新版本的Arduino IDE(1.6.2及更高版本)使通过库管理器界面的库安装超级容易。在草图菜单中,》 包括库》 管理库 。..在文本输入框中,键入“ NeoPixel 》”。查找“ Adafruit提供的Adafruit NeoPixel ”,然后通过单击安装按钮旁边的弹出菜单来选择最新版本。然后点击安装按钮。安装完成后,您可以点击“ 关闭”按钮。

手动安装Adafruit_NeoPixel库

如果您使用的是旧版IDE,或者只是想手动设置,则该库的“经典”安装如下:您可以访问Github上的Adafruit_NeoPixel库页面,然后从那里下载,或只需单击此按钮:

为Arduino下载Adafruit_NeoPixel

在完成下载后解压缩ZIP文件。

生成的文件夹应包含文件 Adafruit_NeoPixel.cpp , Adafruit_NeoPixel.h 和“ 示例”子文件夹。有时在Windows中,您会得到一个中级文件夹,并且需要四处移动。

将文件夹(包含.cpp和.h文件)重命名为 Adafruit_NeoPixel (下划线和所有内容),然后将其与其他Arduino库一起放置,通常放置在(主文件夹)/Documents/Arduino/Libraries文件夹中。应该永远不要将库 安装在Arduino应用程序旁边的“ Libraries”文件夹中……将它们放在主文件夹的子目录中。

如果当前是Arduino IDE,请重新启动

这是一个教程,它逐步指导了手动正确安装Arduino库的过程。

一个简单的代码示例:strandtest

启动Arduino IDE。从文件菜单中,选择速写本 → 库 → Adafruit_NeoPixel → strandtest

(如果Adafruit_NeoPixel过渡菜单不存在,则说明库未正确安装,或者安装后需要重新启动IDE。请检查上述安装步骤,以确认其正确命名和位置。)

从工具菜单中选择您的主板类型和串行端口,然后尝试上传到主板。如果NeoPixels如前所述已连接并已供电,您应该会看到一点灯光。

没有任何反应!

检查您的连接。最常见的错误是连接到测试条的输出端而不是输入。

发生了什么,但是LED闪烁着奇怪的声音!

如果您使用的是RGBW NeoPixel产品(看一下LED,它们是否分开了?

更改此行:

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_RGBW + NEO_KHZ800);

并重新上载测试链示例。

我没有RGBW LED且LED仍在闪烁

99%的时间是由于没有共享接地线已连接至Arduino。确保来自Neopixels的地线连接到您的电源地线和 Arduino地线。

Arduino库的使用

有关Adafruit_NeoPixel库的Doxygen生成的文档,请参见此处。

目前假设您已安装Arduino的Adafruit_NeoPixel库并成功运行了strandtest示例草图。如果没有,请返回上一页以获取设置方向的指导。

要了解有关编写自己的NeoPixel草图的信息,请先剖析最粗的草图 。..

所有NeoPixel草图首先包括头文件:

下载:文件

复制代码

#include #include

后面的代码块主要是描述性注释。实际上只有几行代码在做任何工作:

下载:文件

复制代码

// Which pin on the Arduino is connected to the NeoPixels?

// On a Trinket or Gemma we suggest changing this to 1:

#define LED_PIN 6

// How many NeoPixels are attached to the Arduino?

#define LED_COUNT 60

// Declare our NeoPixel strip object:

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

// Argument 1 = Number of pixels in NeoPixel strip

// Argument 2 = Arduino pin number (most are valid)

// Argument 3 = Pixel type flags, add together as needed:

// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)

// NEO_KHZ400 400 KHz (classic ‘v1’ (not v2) FLORA pixels, WS2811 drivers)

// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)

// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)

// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) // Which pin on the Arduino is connected to the NeoPixels?

// On a Trinket or Gemma we suggest changing this to 1:

#define LED_PIN 6

// How many NeoPixels are attached to the Arduino?

#define LED_COUNT 60

// Declare our NeoPixel strip object:

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

// Argument 1 = Number of pixels in NeoPixel strip

// Argument 2 = Arduino pin number (most are valid)

// Argument 3 = Pixel type flags, add together as needed:

// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)

// NEO_KHZ400 400 KHz (classic ‘v1’ (not v2) FLORA pixels, WS2811 drivers)

// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)

// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)

// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

前几行将数字分配给符号“ LED_PIN”和“ LED_COUNT”,以供以后参考。 不需要以这种方式完成,但是可以更轻松地更改NeoPixel连接的引脚和长度,而无需深入研究代码。

最后一行声明NeoPixel object。我们稍后将通过名称来引用它以控制像素带。括号中有三个参数或自变量:

试条中连续NeoPixel的数量。在此示例中,将其设置为LED_COUNT(在上面定义为60),等于1米的中密度条带。更改此值以匹配您正在使用的实际编号。

与NeoPixel条(或其他设备)连接的引脚号。通常,这将是一个数字,但我们之前已声明符号 LED_PIN 在此处通过名称进行引用。

一个值,指示所连接的NeoPixel的类型。 在大多数情况下,您可以将其保留,仅传递两个参数; 示例代码仅具有额外的描述性。如果您提供经典的“ V1”植物群像素,则需要 NEO_KHZ400 + NEO_RGB 才能在此处传递。 RGBW NeoPixels在这里也需要一个不同的值:NEO_RGBW。

通孔8mm NeoPixels,在条声明中使用NEO_RGB代替NEO_GRB。对于RGBW LED,请使用NEO_RGBW(某些RGBW灯条使用NEO_GRBW,因此,如果您得到意想不到的结果,请尝试!)

然后在 setup()函数,调用 begin()为NeoPixel输出准备数据引脚:

i》下载:文件

复制代码

void setup() {

strip.begin();

strip.show(); // Initialize all pixels to ‘off’

} void setup() {

strip.begin();

strip.show(); // Initialize all pixels to ‘off’

}

第二行, strip.show(),不是绝对必要的,只是要彻底。该功能将数据推送到像素…由于尚未设置颜色,因此如果某些颜色被先前的程序照亮,则它将所有NeoPixels初始化为初始“关闭”状态。

Adafruit Trinket 5V 16 MHz板需要一些额外的设置。您可以在“ strandtest”示例草图中看到所需的步骤。

在strandtest示例中, loop()并不自行设置任何像素颜色-它调用创建动画效果的其他功能。因此,让我们暂时忽略它,并在各个功能内进行展望,看看如何控制条带。

有两种不同的方法可以设置像素的颜色。第一个是:

下载:文件

复制代码

strip.setPixelColor(n, red, green, blue); strip.setPixelColor(n, red, green, blue);

,或者,如果您使用的是RGBW灯条:

下载:文件

复制代码

strip.setPixelColor(n, red, green, blue, white); strip.setPixelColor(n, red, green, blue, white);

第一个参数—在本示例中为n —是条带上的像素数,从最接近Arduino的0开始。如果您有30像素的小条,则它们的编号为0到29。这是计算机的事情。您将使用for循环在代码中看到多个位置,将循环计数器变量作为像素数传递给此函数,以设置多个像素的值。

接下来的三个参数是像素颜色,表示为红色,绿色和蓝色亮度级别,其中0是最暗(关闭),而255是最大亮度。最后一个 optional 参数用于白色,仅在创建时将条定义为RGBW类型且该条实际上是RGBW类型时才使用。

要将第12个像素(#11,从0开始计数)设置为品红色(红色+蓝色),您可以编写:

下载:文件

复制代码

strip.setPixelColor(11, 255, 0, 255); strip.setPixelColor(11, 255, 0, 255);

设置第8个像素(#7从0开始计数)到半亮度白色(带有RGBW条纹),没有红色/绿色/蓝色的光线,请使用:

下载:文件

复制代码

strip.setPixelColor(7, 0, 0, 0, 127); strip.setPixelColor(7, 0, 0, 0, 127);

两个参数:

下载:文件

复制代码

strip.setPixelColor(n, color); strip.setPixelColor(n, color);

在这里,颜色是一种32位类型,将红色,绿色和蓝色值合并为一个数字。对于某些(但不是全部)程序而言,这有时更容易或更快速;您会看到strandtest代码在不同的地方使用了两种语法。

您还可以将单独的红色,绿色和蓝色值转换为单个32位类型以供以后使用:

下载:文件

复制代码

uint32_t magenta = strip.Color(255, 0, 255); uint32_t magenta = strip.Color(255, 0, 255);

然后,您可以仅将“洋红色”作为参数传递给setPixelColor,而不是每次都使用单独的红色,绿色和蓝色数字。

您还可以(可选)在以下位置向颜色添加白色成分最后,像这样:

下载:文件

复制代码

uint32_t greenishwhite = strip.Color(0, 64, 0, 64); uint32_t greenishwhite = strip.Color(0, 64, 0, 64);

setPixelColor()不会立即影响LED。要将颜色数据“推送”到测试条,请调用 show():

下载:文件

复制代码

strip.show(); strip.show();

,这会立即更新整个条带,并尽管采取了额外的步骤实际上是一件好事。如果每次对 setPixelColor()的调用都立即生效,则动画将显得跳动而不是黄油般平滑。

可以将多个像素设置为相同的颜色使用fill()函数,该函数接受一到三个参数。通常这样称呼:

下载:文件

复制代码

strip.fill(color, first, count); strip.fill(color, first, count);

“颜色”是打包的32位RGB(或RGBW)颜色值,可能由strip.Color()返回。这里没有单独的红色,绿色和蓝色选项,因此请调用Color()函数将它们打包为一个值。

“第一个”是要填充的第一个像素的索引,其中0是条中的第一个像素,strip.numPixels()-1是最后一个像素。必须为正值或0。

“计数”是要填充的像素数。必须为正值。

如果不带 count 参数(仅颜色和第一个)调用,则从 first 到条带末尾

如果不带 first 或 count 参数(仅颜色)调用,则整个条带将设置为所需的颜色。

如果使用 no 参数调用,则条带将被填充为黑色或“ off”,但是还有另一种语法可能更易于阅读:

下载:文件

复制代码

strip.clear(); strip.clear();

您可以使用 getPixelColor()查询预先设置的像素的颜色:

下载:文件

复制代码

uint32_t color = strip.getPixelColor(11); uint32_t color = strip.getPixelColor(11);

这将返回32位合并的RGB颜色值。即使使用了“ ColorHSV()”函数(如下所述),这也是始终为RGB 。

先前声明的条中的像素数可以使用 numPixels()进行查询:

下载:文件

复制代码

uint16_t n = strip.numPixels(); uint16_t n = strip.numPixels();

可以使用 setBrightness()调整所有LED的整体亮度。这只需要一个参数,范围在 0 (关闭)到 255 (最大亮度)之间。例如,要将条带设置为1/4亮度:

下载:文件

复制代码

strip.setBrightness(64); strip.setBrightness(64);

就像setPixel()一样,这没有立竿见影的效果。您需要

setBrightness()旨在在setup()中一次被称为 ,以限制当前整个素描过程中,LED的亮度/亮度。它本身不是 动画效果!此功能的操作是“有损的”-它修改RAM中的当前像素数据,而不是show()调用中的-以满足NeoPixels严格的时序要求。通过将亮度设置保持为默认最大值,在您自己的草图逻辑中调制像素亮度并使用setPixel()重绘整个条带,可以更好地实现某些动画效果。

HSV(色相饱和度值)颜色……

NeoPixel库在其中支持某些颜色“ HSV”(色相饱和度值)色彩空间。与通常的RGB(红-绿-蓝)不同,这是一种指定颜色的方式。有些人觉得思考起来更容易或更“自然”……或者,对于某些色彩效果(流行的彩虹周期等),它往往更容易。

在NeoPixel库中, 色相 表示为 16位数字。从红色开始,从0开始,依次递增为黄色(大约65536/6,或10922取一点),然后依次通过绿色,青色(在32768的中点),蓝色,洋红色并返回红色。在您自己的代码中,您可以允许任何与色相相关的变量 overflow 或 underflow ,它们将“环绕”并做正确且可预期的事情,这非常好。

饱和度 确定颜色的强度或纯度…这是一个 8位的数字,范围为0(无饱和度,仅灰度)到255(最大饱和度,纯色)。在中间,您将开始获得柔和的色调。

值 确定颜色的亮度……它也是 8位,范围从0(黑色,不考虑色相或饱和度)到255(最大亮度)。

尽管

setPixelColor()和fill()仍然仍然需要 RGB 值,所以我们可以通过使用ColorHSV()函数从HSV 转换这些值:

下载:文件

复制代码

uint32_t rgbcolor = strip.ColorHSV(hue, saturation, value); uint32_t rgbcolor = strip.ColorHSV(hue, saturation, value);

如果只需要“纯色”(完全饱和和全亮度),则可以省略后两个参数:

下载:文件

复制代码

uint32_t rgbcolor = strip.ColorHSV(hue); uint32_t rgbcolor = strip.ColorHSV(hue);

在两种情况下,都可以将所得的RGB值传递给像素设置功能,例如:

下载:文件

复制代码

strip.fill(rgbcolor); strip.fill(rgbcolor);

没有否相应的功能,从RGB到HSV。这是有目的的并且是有意设计的,因为在该方向上的转换通常是模棱两可的-给定输入可能有多种有效的可能性。如果您查看一些示例草图,您会发现它们跟踪自己的色调…他们不为像素分配颜色,然后尝试将其读回

…和伽玛校正

在进行更细微的颜色变化时,您可能会发现有些东西可能看起来太亮或褪色。通常,对于简单的原色和中间色来说,这不是问题,但对于混合,过渡,以及您可以从ColorHSV()函数获得的各种柔和颜色。 数值颜色值是正确的,但在感知上我们的眼睛对此有所不同,如本指南中所述。

gamma32()函数需要打包的RGB值(可能会脱离Color()或ColorHSV())并过滤结果以使其在感知上更正确。

下载:文件

复制代码

uint32_t rgbcolor = strip.gamma32(strip.ColorHSV(hue, sat, val)); uint32_t rgbcolor = strip.gamma32(strip.ColorHSV(hue, sat, val));

设置像素颜色之前,我们绝不使用strandtest和其他示例草图,我们绝不使用ColorHSV() 将结果通过gamma32()传递。

但是,由于某些原因(包括高级程序员),gamma32操作不是在ColorHSV()中内置的(必须被称为单独的操作)。可能想提供自己设计的更具体的色彩校正功能(gamma32()是“一种尺寸最适合”近似值),或者可能需要保持原始的“在数字上但在视觉上不是正确的”数字。

没有相应的反向操作。当您将像素设置为通过gamma32()过滤的颜色时,回读像素值会产生过滤后的颜色,不是原始RGB值。正是由于这种抽取,高级NeoPixel程序经常将像素缓冲区视为只写资源…它们会根据自己的程序状态生成每个完整的动画帧,而 not 作为一系列读写修改操作。

帮助!

我正在调用setPixel(),但是什么也没发生!

主要有两个原因:

忘记在 setup()中调用 strip.begin() 。

忘记设置像素颜色后调用 strip.show()。

另一种(较不常见)的可能性即将耗尽RAM —请参阅下面的最后一节。如果程序各种各样的可以工作,但是结果无法预测,请考虑一下。

我可以在不同的引脚上有多个NeoPixel对象吗?

当然!每个文件都需要有自己的唯一名称声明:

下载:文件

复制代码

Adafruit_NeoPixel strip_a = Adafruit_NeoPixel(16, 5);

Adafruit_NeoPixel strip_b = Adafruit_NeoPixel(16, 6); Adafruit_NeoPixel strip_a = Adafruit_NeoPixel(16, 5);

Adafruit_NeoPixel strip_b = Adafruit_NeoPixel(16, 6);

上面声明了两个不同的NeoPixel对象,每个对象分别位于引脚5和6上,每个对象包含16个像素,并使用隐式默认类型( NEO_KHZ800 + NEO_GRB )。

我可以将多个NeoPixel带连接到同一Arduino引脚吗?

在很多情况下,是的。然后,所有小条将显示完全相同的内容。尽管这样做只能起到一定的作用……单个引脚上的四个带是一个很好且可靠的数字。如果您还需要更多,则可以将单个NeoPixels用作缓冲区以“扇出”更多条带:将一个Arduino引脚连接到四个单独NeoPixel的输入,然后将每个像素的输出连接到四个条带的输入(或更少) ,如果您不需要那么多)。如果条带长为10像素,则将NeoPixel对象声明为具有11像素。多余的“缓冲区”像素将在位置0处-只需将其关闭即可-然后,条带将从位置1到10开始运行。

我是颜色错误。红色和蓝色被交换!

使用通孔8mm NeoPixels(或V1 Flora像素)时),将NEO_RGB用作Adafruit_NeoPixel声明中的第三个参数。对于所有其他类型的NeoPixels,请使用NEO_GRB。

当我重复使用setBrightness()时,颜色会散开!

请参见上面的注释; setBrightness()被设计为一次性设置功能,而不是动画效果。

另请参见“高级编码”页面-还有一个替代库,其中包括“无损”亮度调节以及其他功能! p》

Pixels Gobble RAM :每个NeoPixel大约需要3个字节的RAM。这听起来似乎不是很多,但是当您开始使用数十个甚至数百个像素时,考虑到主流Arduino Uno只有2 KB的RAM(在其他库提出主张后,其内存通常要少得多),这可能是一个错误。真正的问题!

要使用大量的LED,您可能需要升级到更强大的电路板,例如Arduino Mega或Due。但是,如果您靠近并且只需要一点额外的空间,则有时可以调整代码以提高RAM效率。本教程对内存使用情况有一些提示。

NeoMatrix库

Adafruit_NeoMatrix库基于Adafruit_NeoPixel创建,以使用NeoPixels创建二维图形显示。然后,您可以轻松绘制形状,文本和动画,而不必计算每个X/Y像素位置。商店提供小型NeoPixel矩阵。如上图所示,可以使用NeoPixel条带的部分来形成更大的显示器

除了Adafruit_NeoPixel库(已在先前步骤中下载并安装)之外,NeoMatrix还需要两个库:

Adafruit_NeoMatrix

Adafruit_GFX

如果您以前使用过任何Adafruit LCD或OLED显示器,则可能已经安装了后者的库。

两者的安装之前与Adafruit_NeoPixel相似:解压缩,确保文件夹名称与其中的.cpp和.h文件匹配,然后移至Arduino库文件夹并重新启动IDE。

Arduino草图需要包含这三个标头只是为了使用该库:

下载:文件

复制代码

#include

#include

#include #include

#include

#include

布局 Adafruit_NeoMatrix使用完全相同的坐标系,颜色函数和图形mmands作为Adafruit_GFX库。如果您不熟悉后者,则可以通过单独的教程说明其用法。 Adafruit_NeoMatrix库中还包含示例草图。

在这里,我们仅关注构造器-如何声明由NeoPixels制成的二维显示。为野兽供电是另一回事,在上一页中进行了介绍。

该库处理单个矩阵(所有NeoPixel都在一个统一的网格中)和 tiled 矩阵-多个网格组合成一个更大的显示:

让我们从声明单个矩阵开始,因为它比较容易解释。在这种情况下,我们将展示适用于Arduino的NeoPixel Shield-NeoPixels的8x5矩阵。当以可读的方向看这个盾牌时,第一个像素#0位于左上方。每个连续的像素都在一个位置的右边,像素1直接在像素0的右边,依此类推。在每一行的末尾,下一个像素位于下一行的左侧。这不是我们在代码中决定的事情……这是NeoPixels如何在包含屏蔽的电路板上硬接线。

我们将此布局称为 row major 和 progressive。 Row major 表示像素以水平线排列(相反,垂直线为 column major )。 Progressive 表示每一行都沿相同方向前进。一些矩阵会在每行上反转方向,因为这样连接起来会更容易。我们称其为 zigzag 布局。

但是,在此示例中,我们希望沿“竖直”方向使用屏蔽,因此Arduino通过USB电缆位于桌面上顶端。当我们以这种方式打开电路板时,矩阵布局会发生变化……

现在,第一个像素位于右上方。像素从上到下递增-现在是专业栏。列的顺序仍然是渐进式。

我们以此声明矩阵:

下载:文件

复制代码

Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(5, 8, 6,

NEO_MATRIX_TOP + NEO_MATRIX_RIGHT +

NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE,

NEO_GRB + NEO_KHZ800); Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(5, 8, 6,

NEO_MATRIX_TOP + NEO_MATRIX_RIGHT +

NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE,

NEO_GRB + NEO_KHZ800);

前两个参数-5和8-是宽度和高度矩阵的像素数。第三个参数6是NeoPixels连接到的引脚号。在屏蔽层上,这是硬连线至数字引脚6,但是独立矩阵可以自由使用其他引脚。

下一个论点是有趣的。这表明矩阵中第一个像素的位置以及行或列的排列。第一个像素必须位于四个角之一;通过将 NEO_MATRIX_TOP 或 NEO_MATRIX_BOTTOM 添加到 NEO_MATRIX_LEFT 或 NEO_MATRIX_RIGHT 。通过将 NEO_MATRIX_COLUMNS 或 NEO_MATRIX_ROWS 添加到 NEO_MATRIX_PROGRESSIVE 或 NEO_MATRIX_ZIGZAG 中来指示行/列的排列。这些值都按上述代码添加为一个值。

NEO_MATRIX_TOP + NEO_MATRIX_RIGHT + NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE

最后一个参数与NeoPixel库完全相同,指示使用的LED像素的类型。在大多数使用最新NeoPixel产品的情况下,您可以简单地忽略此参数……示例代码只是具有更多描述性。

此设置的要点是,草图的其余部分无需思考关于矩阵的布局。不管第一个NeoPixel的实际位置如何,绘图图形的坐标(0,0)总是 位于左上角。

Adafruit_GFX仅可处理旋转。尽管它可以处理上面的示例,但是它并没有涵盖某些矩阵布局可能发生的旋转和镜像的所有排列,更不用说之字形功能或此后的其他功能了……

平铺矩阵一个 tiled 矩阵由多个较小的NeoPixel矩阵组成。有时这更易于组装或分配电源。所有子矩阵都必须具有相同的大小,并且必须以可预测的方式进行排序。然后, Adafruit_NeoMatrix()构造函数将接收一些附加参数:

下载:文件

复制代码

Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(

matrixWidth, matrixHeight, tilesX, tilesY, pin, matrixType, ledType); Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(

matrixWidth, matrixHeight, tilesX, tilesY, pin, matrixType, ledType);

前两个参数是每个对子矩阵进行平铺,而不对整个显示进行平铺。

接下来的两个参数是水平和垂直方向上的平铺数目。这样,整个显示器的尺寸将始终是子矩阵尺寸的倍数。

第五个参数是引脚号,与之前和NeoPixel库相同。最后一个参数也遵循先前的行为,并且在大多数情况下可以忽略。

倒数第二个参数……这变得很复杂……

对于单个矩阵,有一个起始角,一个主轴(行或列)和行顺序(逐行或之字形)。现在已翻倍-对于单个图块内的像素顺序,和都需要类似的信息,同时和在显示中图块的整体布置。和以前一样,我们添加一个符号列表以产生一个描述显示格式的参数。

NEO_MATRIX _ * 符号的作用与之前的单矩阵情况相同,现在参考整体显示中的各个子矩阵。所有图块必须遵循相同的格式。另一组符号的工作方式类似,然后描述了图块的顺序。

第一个图块必须位于四个角之一。添加 NEO_TILE_TOP 或 NEO_TILE_BOTTOM 和 NEO_TILE_LEFT 或 NEO_TILE_RIGHT 来指示第一个图块的位置。这与图块中第一个像素的位置无关。它们可以是不同的角。

标题可以水平排列或垂直排列。同样,这与图块中的像素顺序无关。添加 NEO_TILE_ROWS 或 NEO_TILE_COLUMNS 。

最后,图块的行或列可以按渐进或Z字形排列;也就是说,每一行或每一列都以相同顺序进行,或者交替的行/列切换方向。添加 NEO_TILE_PROGRESSIVE 或 NEO_TILE_ZIGZAG 来指示顺序。 但…如果选择了 NEO_TILE_ZIGZAG 顺序,则瓷砖的交替线必须旋转180度。这是有意设计的;它使平铺间的布线更加一致和简单。 NEO_TILE_PROGRESSIVE 不需要旋转。

标题不必为正方形!以上只是一种可能的布局。此页面顶部显示的内容是由NeoPixel条带组装而成的三个10x8瓦片。一旦定义了矩阵,项目的其余部分与Adafruit_NeoPixel相似。记住在绘图后使用 setup()函数中的 matrix.begin()和 matrix.show()来更新显示。 setBrightness()函数也可用。该库包含几个示例草图供参考。

其他布局对于其他未均匀平铺的情况,您可以提供自己的功能,以将X/Y坐标重新映射到NeoPixel带索引。此函数应接受两个无符号的16位参数(像素X,Y坐标),并返回一个无符号的16位值(对应的条带索引)。最简单的以行为主的渐进函数可能类似于:

下载:文件

复制代码

uint16_t myRemapFn(uint16_t x, uint16_t y) {

return WIDTH * y + x;

} uint16_t myRemapFn(uint16_t x, uint16_t y) {

return WIDTH * y + x;

}

这是一个粗略的例子。您可能是为以螺旋(易于布线)或希尔伯特曲线排列的像素设计的。

然后使用 setRemapFunction():

启用该功能

下载:文件

复制代码

matrix.setRemapFunction(myRemapFn); matrix.setRemapFunction(myRemapFn);

RAM再次基于像素,Adafruit_NeoMatrix是比Adafruit_NeoPixel需要更多的内存,每个像素需要3字节的RAM。但是二维显示器中的像素数量呈指数增长……16x16显示器需要的内存是8x8显示器的四倍,或者大约768字节的RAM(接近Arduino可用空间的一半) Uno)。它可以从 tricky 到不可能的任何位置,将大型显示器与需要大量内存的库(例如 SD 或 ffft )结合起来。

伽玛校正,因为Adafruit_GFX库是最初是为LCD设计的(色彩保真度有限),它将色彩处理为16位值(而不是NeoPixels可以使用的全部24位)。这似乎不是很大的损失。人类视觉的怪异使得明亮的色彩比昏暗的色彩难以辨认。 Adafruit_NeoMatrix库使用伽玛校正选择视觉上(尽管不是数字上)等距的亮度级别。红色和蓝色共有32个等级,绿色有64个等级。

Color()函数执行必要的转换;您不需要做任何数学运算。它接受8位的红色,绿色和蓝色值,并返回经过伽玛校正的16位颜色,然后可以将其传递给其他绘图函数。

高级编码

FastLED库

如果希望增强NeoPixel的实力,您可以在FastLED库中找到所需的一切。它是Adafruit_NeoPixel库的替代方案,提供了更高级的功能,例如HSV颜色支持,无损亮度设置和高速数学运算。 (它也适用于其他类型的LED,例如DotStars!)

FastLED的工作原理完全不同;

注意:FastLED当前仅适用于 RGB NeoPixels;它不是Adafruit_NeoPixel的直接替代品,现有的草图将需要重写。 尚不支持RGBW像素。 完全。您将获得不正确且不可预测的颜色。

我们不编写或维护FastLED,也无法提供软件故障排除建议。如果需要帮助在论坛中使用FastLED NeoPixel项目时,我们通常会要求您尝试使用一种已知有效的Adafruit_NeoPixel示例草图,以缩小是硬件还是软件问题。

访问FastLED网站上开始。

常见问题解答和进一步的编程见解

帮助!与NeoPixels结合使用时,我的Arduino伺服代码停止工作!

不幸的是,NeoPixel和伺服库不能很好地配合使用;一个依赖于定期禁用中断,另一个绝对需要中断。这里有几个选项:

使用专用的伺服控制板或分线板,将任务从处理器上卸载下来,这样就不会产生中断。

使用一个基于硬件PWM的伺服库,而不是库存的Arduino Servo库。这样可以提供稳定的伺服定时而不会中断,但只能控制非常有限数量的伺服(2-3),并且只能控制非常特定的引脚。

在驾驶NeoPixels时,无法在红外接收器上接收红外代码!

就像伺服一样,红外库使用软件中断来轮询IR LED,而标准NeoPixellibrary在更新NeoPixel时阻止中断。

如果您不经常更新NeoPixel,IR可以在两次更新之间工作,但是如果一直更新,则需要使用另一个库和比UnoorMega更强大的微控制器。理想情况下,它具有DMA,这样NeoPixels不会占用任何CPU周期。

Marc MERLIN会根据您所拥有的芯片(Teensy,ESP8266或ESP32)来说明如何做到这一点:

http://marc.merlins.o rg/perso/arduino/post_2017-04-03_Arduino-328P-Uno-Teensy3_1-ESP8266-ESP32-IR-and-Neopixels.html

可以多快我刷新了(N)个像素的字符串?

NeoPixels接收来自固定频率800 KHz数据流(“ V1” Flora像素除外,后者使用400 KHz)。因此,每个数据位需要1/800,000秒-1.25微秒。一个像素需要24位(红色,绿色,蓝色分别为8位)— 30微秒。发出最后一个像素的数据后,流必须停止至少50微秒,新颜色才能“存”。

对于100个像素带,即(100 * 30)+ 50,或3,050微秒。 1,000,000/3,050 =每秒约328次更新。

但是…

仅将推入位所需的时间电线。 实际刷新率将小于此值,并且在所有情况下都无法将其估算为单个数字。处理动画的每个“帧”都需要时间。多少时间取决于数学的复杂性和代码的效率(例如,浮点计算可能相对较慢)。上面的公式给出了最大的理论速率,但这仅仅是一个起点。在某些情况下,现实可能会低于此数量级。

对于探索性基准测试,您始终可以编写代码,就像存在大量像素一样,然后对结果进行计时。该条带将忽略掉多余的输出位(或者甚至可以根本不连接NeoPixels进行测试)。

那是行不通的。现在怎么办?

由于NeoPixels使用固定频率的时钟,因此选项受到限制。您无法切换到速度更快的微控制器,并期望获得完全不同的结果。

一种选择是使用其他类型的LED,例如我们的DotStar或LPD8806灯条或WS2801像素。尽管它们在NeoPixels上确实有其他折衷(成本,颜色分辨率和/或像素密度),但仍可以以更高的数据速率来驱动。另一种方法是在功能更强大的微控制器或FPGA上开发自己的代码。并行驱动多个 NeoPixel条 。稍后将显示一个这样的项目-用于Teensy 3微控制器的OctoWS2811。这种事情很复杂,不建议初学者使用。甚至在经验丰富的程序员中,当 real 瓶颈存在于其他地方时,通常也会过分强调数据速率……除非您能确定这是问题的根源,否则不要过多地谈论它。/p》

我可以使用(Board X)控制NeoPixels吗?

我们目前仅提供Arduino库。稍后请参阅其他设备的链接。除此之外,如果考虑编写自己的库,请了解某些处理器比其他处理器更适合该任务。通读以下所示的时序要求,并确定所讨论的芯片是否可以合成满足那些规格的信号。一个8 MHz的AVR几乎无法跟上…任何较慢的速度都可能会带来麻烦,尽管某些特定于硬件的黑客(例如巧妙地使用SPI)也许可以实现。在许多情况下,需要汇编语言。

为什么不使用Raspberry Pi?

运行Linux的Raspberry Pi是一个多任务系统,控件可以随时在多个正在运行的程序之间切换。因此,无法保证NeoPixels要求的严格的800 KHz信号。您也许可以在短时间内捏捏它,但这并不是可以依靠的。这就是为什么我们在Raspberry Pi光绘项目中使用DotStar LED。

用于ARM Cortex-M0板的DMA NeoPixels

如果您正在使用最新的“ M0”开发板,例如Adafruit Feather M0,Circuit Playground Express或Arduino Zero,备用NeoPixel库,利用这些设备的直接内存访问(DMA)功能使操作更流畅。然后,高级Arduino草图可以使用不受惩罚的中断,并且依赖millis()或micros()函数的代码也不会浪费时间。

NeoMatrix库也有相应的DMA版本。

p》

加上超强的 8路并发NeoPixel DMA库。我们提供了羽翼和分线板的同伴,使连接和电平转换更加轻松!

第三方库

除了前面提到的FastLED库之外,NeoPixel兼容库也已经为Arduino以外的设备开发的。请记住,Adafruit并未开发任何代码,也无法修复错误或提供技术帮助。这是Wild West的东西。

OctoWS2811:专用于PJRC Teensy 3.0微控制器板。使用DMA最多可同时驱动多达8个NeoPixel条带,而处理器负载却最小。可以级联多个板以用于更大的显示器。

FadeCandy:也适用于Teensy 3.0。不支持OctoWS2811那样多的像素,但为纯色派增加了抖动和平滑插值。

LEDscape:专为BeagleBone Black设计。尽管BeagleBone是像不兼容NeoPixel的Raspberry Pi这样的多任务Linux系统,但是此代码利用了BeagleBone Black特有的硬件功能来驱动数百米的NeoPixel带,实际上没有处理器负载。/li》

用于视差推进器的WS2812 LED驱动器。

xCORE NeoPixel测试代码(用于XMOS xCORE startKIT)。

其中一些是3.3V器件。有关通过3.3V微控制器控制5V NeoPixel的说明,请参见“为NeoPixel供电”页面。

i》

WS2811? WS2812?为什么我会看到提到的两个不同的名称?

WS2811是较早的驱动器芯片,与RGB LED。数据信号类似,但运行速度只有一半。到WS2812(带有集成的LED)发布时,已经围绕WS2811的名称建立了许多代码和项目。有时,“用于WS2811”的代码实际上可能是针对较新的芯片,或针对任何一种类型。 Adafruit_NeoPixel库同时支持。

编写您自己的库

WS2812数据表解释了数据传输协议。这是一个自计时信号-只有一根线,没有分开的数据线和时钟线。通过更改固定频率方波的占空比来表示“ 1”和“ 0”位。

数据表的时序值中有一个数学错误。改用这些数字:

请注意,这个时间有将近25%的“摆动空间”。因此,如果您的代码与建议的时间不完全匹配,那么只要关闭就可以了。

每个像素有三个字节的数据。这些应该以绿色,红色,蓝色的顺序发布,并以最高有效位优先。

首先发布像素#0(与微控制器最近)的数据,然后发布像素#1,依此类推直到最远的像素。这不像传统的移位寄存器那样运行!

所有颜色数据发送完毕后,必须将数据线保持低电平至少50微秒,以使新颜色“锁存”。

您可能想要深入研究我们的Arduino库以获取见解。时序关键部分使用AVR汇编语言编写,但使用类似C的伪代码进行了广泛注释。

我的微处理器不够快

WS2812似乎与400 KHz WS2811信号向后兼容。如果您可以精确匹配后一种芯片的时序,则两种芯片都会响应。 WS2811协议是 不是 只是半速WS2812。“ 0”和“ 1”位略有不同。从WS2811数据表中:

责任编辑:wv

收藏 人收藏
分享:

评论

相关推荐

洲明科技公布业绩快报 LED小间距产品市场竞争力持续提升

昨(26)日,洲明科技接受机构调研,主要对复工情况、2019年业绩情况以及Mini LED/智慧路灯....
发表于 02-27 13:54 126次 阅读
洲明科技公布业绩快报 LED小间距产品市场竞争力持续提升

全国信息技术应用水平大赛单片机开发与应用模拟试题和答案

 1、MCS-8051系列单片机字长是 8 位,有 40 根引脚,96系列字长是 16 位。单片机的....
发表于 02-27 08:00 17次 阅读
全国信息技术应用水平大赛单片机开发与应用模拟试题和答案

光宝科公布去年第4季财报 每股纯益创近3年新高

光宝科今日召开法说会,公布去年第 4 季财报,单季纯益 24.07 亿元(新台币,下同),季减 23....
发表于 02-26 15:46 86次 阅读
光宝科公布去年第4季财报 每股纯益创近3年新高

配备支持5G的Snapdragon 865的IQOO 3将于2月25日在印度推出

IQOO 3将在左上角放置一个方形的后置摄像头模块,该模块可容纳四个带48MP主摄像头和LED闪光灯....
的头像 倩倩 发表于 02-26 15:32 166次 阅读
配备支持5G的Snapdragon 865的IQOO 3将于2月25日在印度推出

led灯条屏特点_led灯条屏优势

采用特殊的密封灌胶工艺,产品完全达到IP65的防护等级,适应各种气候条件,特别是高温、高湿环境。
发表于 02-25 15:05 70次 阅读
led灯条屏特点_led灯条屏优势

LCD液晶显示屏和LED透明显示屏的区别

LED提供宽达160°的视角,可以显示各种文字、数字、彩色图像及动画信息,可以播放电视、录像、VCD....
发表于 02-25 14:38 115次 阅读
LCD液晶显示屏和LED透明显示屏的区别

苹果分享两款Pro产品的规格信息,展示其技术和功能

  苹果今天分享了两份技术规格预览白皮书,详细介绍了 Pro Display XDR 和 Mac P....
的头像 牵手一起梦 发表于 02-25 14:18 273次 阅读
苹果分享两款Pro产品的规格信息,展示其技术和功能

LED网格屏的特点_LED网格屏的优势

为了确保户外现实投影像素有足够的亮度,模块的前部用硅胶灌封密封以防水。安全工程可能需要有机硅的颜色,....
发表于 02-25 11:23 56次 阅读
LED网格屏的特点_LED网格屏的优势

LED玻璃屏的常见故障_LED玻璃屏故障测试方法

向电压文件万用表调,以检测怀疑有问题的电路点的接地电压,比较其是否与正常值相似,否则确定问题范围。
发表于 02-25 10:52 42次 阅读
LED玻璃屏的常见故障_LED玻璃屏故障测试方法

如何选购LED透明屏_影响LED透明屏价格的因素

LED是一种将电能直接转换为光能的材料。发光效率决定了LED本身的价值。另外,LED芯片的尺寸越大,....
发表于 02-25 10:29 43次 阅读
如何选购LED透明屏_影响LED透明屏价格的因素

LED透明屏使用注意事项_LED透明屏的保养维护

LED透明屏避免碰水、铁粉等易于导电的金属物;应尽量放置在低灰尘的环境中,大的灰尘会对显示效果造成影....
发表于 02-25 10:25 40次 阅读
LED透明屏使用注意事项_LED透明屏的保养维护

LED透明屏和常规LED屏的区别

常规LED显示屏,箱体比较厚重,包括箱体框架,模组、散热等设备,比较重,外观比价常规,而且不易维修。
发表于 02-25 10:14 59次 阅读
LED透明屏和常规LED屏的区别

led透明屏的优点_LED透明屏的应用场景

具有很高的透视率,保证了地板、玻璃幕墙、窗户等照明结构的照明要求和视角范围。保证玻璃幕墙原有的采光透....
发表于 02-25 10:10 45次 阅读
led透明屏的优点_LED透明屏的应用场景

LED地砖屏的特点_LED地砖屏技术原理

LED地砖屏作为一种新型舞台显示设备广泛用于,其外观精美高档,设计科学,采用优质铝合金、高级电子陶瓷....
发表于 02-25 09:59 33次 阅读
LED地砖屏的特点_LED地砖屏技术原理

LED点光源的常见故障及解决办法

如果前面点光源的动画效果正常,从某一颗点光源开始下面的灯没动画效果。
的头像 陈翠 发表于 02-25 09:28 233次 阅读
LED点光源的常见故障及解决办法

LED透明屏的常见故障

首先确认故障现象的位置(使用可视方法确认故障模块的位置,并做一个简单的标记)然后,相应地更换故障模块....
发表于 02-25 09:20 35次 阅读
LED透明屏的常见故障

LED透明屏的安装工艺_LED透明屏走线方式

一般来说,LED显示屏的走线方式所说的线指的就是显示屏的电源线和网线(又称信号线),大多数情况下电源....
发表于 02-25 09:09 54次 阅读
LED透明屏的安装工艺_LED透明屏走线方式

LED玻璃屏的安装方法及注意事项

LED透明屏相对于户外全彩屏在重量上有很大的优势,单平方的重量在12KG左右,但是如果面积比较大整屏....
发表于 02-25 08:57 51次 阅读
LED玻璃屏的安装方法及注意事项

LED幕墙灯的原理_LED幕墙灯的优势

LED幕墙灯内以LED作为发光源,投射出一定发光角度的光束到PC罩的内层面,经过多次反射和折射透出乳....
发表于 02-25 08:50 50次 阅读
LED幕墙灯的原理_LED幕墙灯的优势

LED幕墙灯安装方法及注意事项

将led模组安装在led玻璃幕墙的对应位置上,然后打开UV灯,并照射10秒左右,达到固化胶水的作用。
发表于 02-25 08:40 48次 阅读
LED幕墙灯安装方法及注意事项

LED水底灯的安装方法及注意事项

一般水底灯都是采用低压安全电压,这样就涉及到低压大电流供电会影响到线路的压降,必须先计算好每条线路末....
发表于 02-24 15:53 56次 阅读
LED水底灯的安装方法及注意事项

LED点光源的特性_LED点光源的优势

LED点光源是一种新型的节能环保装饰灯,采用LED冷光源发光,内置微电脑芯片,可任意编程控制,多个同....
发表于 02-24 15:45 57次 阅读
LED点光源的特性_LED点光源的优势

LED线条灯的特点_LED线条灯的优势

LED线条灯系列是一种高端的柔性装饰灯,其特点是耗电低,寿命长,高亮度,易弯曲,免维护等。特别适合室....
发表于 02-24 15:36 76次 阅读
LED线条灯的特点_LED线条灯的优势

LED地埋灯安装过程_LED地埋灯安装的注意事项

在LED地埋灯安装前,必须先切断电源。这是所有电器设备安装的第一步,是安全操作的基础。
发表于 02-24 15:07 69次 阅读
LED地埋灯安装过程_LED地埋灯安装的注意事项

Linux设备驱动开发的基本知识

本篇文章将介绍Linux设备驱动开发的基本知识,带你快速拨开Linux驱动这团迷雾。文章分为如下3个....
的头像 Wildesbeast 发表于 02-24 15:03 205次 阅读
Linux设备驱动开发的基本知识

led地埋灯的特点_led地埋灯的参数

LED地埋灯是采用超高亮LED为光源,选用LED恒流驱动驱动方式的新型埋地装饰灯。
发表于 02-24 15:02 46次 阅读
led地埋灯的特点_led地埋灯的参数

LED矿灯性能特点和技术参数

LED矿灯该产品是新一代安全、节能、环保型矿灯,主光源采用国际上先进的功率型LED发光管,光效高,寿....
发表于 02-24 14:53 42次 阅读
LED矿灯性能特点和技术参数

不更换LED灯珠如何维修LED灯

LED灯一般由驱动器和#p#副标题#e#灯珠两部分组成,若能够确认灯的驱动器是好的,只是部分LED灯....
的头像 Wildesbeast 发表于 02-24 14:20 408次 阅读
不更换LED灯珠如何维修LED灯

分体式LCD显示的ARD3电动机保护器的设计

过载保护是现场是用中最重要的保护之一,用到电机的场所几乎都开启此类保护。ARD3采用热模型保护原理,....
发表于 02-24 09:45 94次 阅读
分体式LCD显示的ARD3电动机保护器的设计

led吸顶灯两根线可以随便接吗

为了方便施工维修,电线会用颜色做标记,一般交流电火线的颜色多用红色,零线为兰色,地线为黄绿双色。直流....
的头像 电子魔法师 发表于 02-23 04:04 565次 阅读
led吸顶灯两根线可以随便接吗

刘海屏瀑布屏水滴屏到底什么手机屏幕会成为最火的屏幕

如果要问哪项配置对于手机来说是最重要的,相信许多人的回答会是处理器、相机等内部元件。但实际上,对于手....
的头像 Wildesbeast 发表于 02-22 16:25 845次 阅读
刘海屏瀑布屏水滴屏到底什么手机屏幕会成为最火的屏幕

物联网的三大核心是哪些

物联网这个概念早就存在于未来发展的宏图中,我们了解物联网可能是在智能城市的建设和智能家居的使用等众多....
的头像 Wildesbeast 发表于 02-22 12:08 646次 阅读
物联网的三大核心是哪些

疫情冲击下UV LED紫外光源迎来新机遇

新冠肺炎疫情持续蔓延,对社会众多细分产业发展造成很大的冲击,与此同时,部分市场也将迎来新“机遇”,比....
的头像 汽车玩家 发表于 02-20 21:47 548次 阅读
疫情冲击下UV LED紫外光源迎来新机遇

使用什么芯片可以代替TP8561S

TP8561S是一款带有PWM调光功能的非隔离型LED恒流驱动IC,在一些LED日光灯、球泡灯及蜡烛....
的头像 Wildesbeast 发表于 02-20 18:05 532次 阅读
使用什么芯片可以代替TP8561S

三家LED企业市值破千亿 两家受益于半导体?

在疫情笼罩的阴云之下,资本市场却持续走高。大盘的推高,带动更多上市公司股价一路飘红,诸如乾照光电已经....
发表于 02-20 12:26 593次 阅读
三家LED企业市值破千亿 两家受益于半导体?

安装智能家居需要注意什么问题

随着生活水平的挺高,智能家居产品的也在迅猛的发展,智能家居也受到了更多的消费者关注和认可。可以说智能....
的头像 Wildesbeast 发表于 02-20 12:10 415次 阅读
安装智能家居需要注意什么问题

Micro-LED将成为显示产业的新势头

2019第三届中国(国际)Micro-LED显示高峰论坛在近日举行,论坛上透露出LED产业发展的新特....
的头像 电子魔法师 发表于 02-18 20:57 822次 阅读
Micro-LED将成为显示产业的新势头

LED显示屏逐渐成熟,未来将何去何从

咱们都了解,每个行业都按照着必定的顺序启展,咱们称之为行业性命周期表面。行业的性命启展周期重要包罗四....
的头像 电子魔法师 发表于 02-18 20:52 434次 阅读
LED显示屏逐渐成熟,未来将何去何从

一文解析中国LED显示屏发展成果的原因

毫无疑问,在近几十年全球经济起起落落和产业发展转型的过程中,中国LED显示屏行业凭借自身的勇气、力量....
的头像 电子魔法师 发表于 02-18 20:50 385次 阅读
一文解析中国LED显示屏发展成果的原因

如何利用手机充电器控制发光LED

这是一种比较简单的LED光控电路,所用的电压在4.5V左右,一般手机充电器输出电压在5V至9V,我们....
的头像 电子魔法师 发表于 02-18 19:40 668次 阅读
如何利用手机充电器控制发光LED

TP8561S芯片典型应用及代换

在LED照明应用中,需要用到AC转DC的恒流驱动芯片,提供恒定电流给LED串阻,以获得均匀的亮度。其....
的头像 电子魔法师 发表于 02-18 19:31 464次 阅读
TP8561S芯片典型应用及代换

如何使用废弃的充电器改成LED灯

以手机充电器为例。手机充电器多为5V1A输出,部分快充充电器可以输出5V3A。USB接口的手机充电器....
的头像 Wildesbeast 发表于 02-16 11:37 812次 阅读
如何使用废弃的充电器改成LED灯

如何使用手机充电器作电源给挂钟加装一个光控LED照明灯

想用手机充电器作电源,给挂钟加装一个光控LED照明灯,采用下图所示的简单光控电路即可。该光控电路在白....
的头像 Wildesbeast 发表于 02-15 17:38 1081次 阅读
如何使用手机充电器作电源给挂钟加装一个光控LED照明灯

2020年市场环境将更加莫测 LED显示屏产业机遇与挑战并存

当前,对于众多LED显示屏企业而言,面对持续升级的消费需求、多变的经济和商业环境、以及难以捉摸的未来....
发表于 02-14 11:12 406次 阅读
2020年市场环境将更加莫测 LED显示屏产业机遇与挑战并存

LED照明芯片成价格杀手 逐渐开始横向扩张加速成长

LED产品对电流十分敏感,无法直接连接交流市电,需要恒流驱动电路对其进行稳定和保护。作为整个电路的核....
发表于 02-13 17:07 260次 阅读
LED照明芯片成价格杀手 逐渐开始横向扩张加速成长

AMOLED与OLED的区别是什么

到底什么是AMOLED,与OLED有什么关系呢。当前主流的屏幕是AMOLED、OLED、super ....
的头像 Wildesbeast 发表于 02-13 10:23 1260次 阅读
AMOLED与OLED的区别是什么

旧手机锂电池制作的微功耗光控LED小夜灯

手机废弃的锂电池有不少都是蓄电能力变差了,不适合给手机等大电流负载使用,但是用来给门铃、遥控发射器等....
的头像 陈翠 发表于 02-12 16:06 1088次 阅读
旧手机锂电池制作的微功耗光控LED小夜灯

LED台灯的检修方法

普通的LED台灯,一般包括电源开关、电源驱动板、LED灯板等几部分组成。这几部分发生故障都有可能造成....
的头像 电子魔法师 发表于 02-12 13:40 883次 阅读
LED台灯的检修方法

LED显示屏助力疫情 智慧调控交通运输

2020年春节期间,一场突如其来的新型冠状病毒感染肺炎疫情迅速向全国蔓延,疫情打断了中国人传统的春节....
发表于 02-12 11:57 302次 阅读
LED显示屏助力疫情 智慧调控交通运输

一个LED超亮工程灯如何实现

首先是光源的选择,LED达到超亮,有两种LED灯珠可供选择。一种是选择单颗LED灯珠,经过串并联组成....
的头像 陈翠 发表于 02-12 02:12 676次 阅读
一个LED超亮工程灯如何实现

有负载时的电压计算

1,发现接入LED时的电压计算不准确,请帮忙计算看看。谢谢 计算下列各点电压: 1,4两点 1,2两点 2,4两点 2,3两点 3...
发表于 01-16 00:04 476次 阅读
有负载时的电压计算

无聊发个程序,求分析

[code]求分析。 #include #define uchar unsigned char #define        duan P0 sbit led1...
发表于 01-08 22:38 608次 阅读
无聊发个程序,求分析

LED驱动电路当H+输入12V电压时,灯珠闪烁异常问题

图中电路未LED驱动电路,当H+输入12V电压时,灯珠3-4秒会有比较明显的微闪,求助 ...
发表于 01-07 10:17 645次 阅读
LED驱动电路当H+输入12V电压时,灯珠闪烁异常问题

小白求一个5V输入5-10W输出的LEDmultisim电路图 感激不尽

发表于 12-30 21:34 624次 阅读
小白求一个5V输入5-10W输出的LEDmultisim电路图 感激不尽

Labview自动门模拟

自动门模拟(难度等级:★★) (1)设计任务 采用计数器模块控制实现模拟自动门的运行。 (2)基本要求 采用事件结构完成相...
发表于 12-27 21:34 445次 阅读
Labview自动门模拟

这个LED电路的问题出在哪里?

这是一个光控循环小夜灯的电路图,我在Multisim14上仿真时,电路没有提示错误,但并没有实现LED的循环亮灭,下面附几张说明图...
发表于 12-27 16:47 827次 阅读
这个LED电路的问题出在哪里?

51单片机控制4个串联的贴片LED,大家帮我看看方案是否可行

我想用51单片机控制4个串联的LED的通断,想出了两个方案,大家帮我看看方案是否可行。如果有问题望大家给我指出,谢谢。 ...
发表于 12-26 11:37 649次 阅读
51单片机控制4个串联的贴片LED,大家帮我看看方案是否可行

【雨的笔记】STM32F1系列部分程序汇总-----------按键

按键 PA0  下拉 按键按下检测为低电平 PE2、PE3、PE4 上拉 按键按下检测为高电平 功能:按下KEY_U...
发表于 12-25 20:42 856次 阅读
【雨的笔记】STM32F1系列部分程序汇总-----------按键

【雨的笔记】STM32F1系列部分程序汇总-----------led、蜂鸣器

标准库 4种输入输出: 模拟输入       GPIO_Mode_AIN         &n...
发表于 12-25 20:24 797次 阅读
【雨的笔记】STM32F1系列部分程序汇总-----------led、蜂鸣器

51单片机加按键控制led花样闪烁(非用中断)

51单片机加按键控制led花样闪烁(非用中断),51中用一个main主函数来控制led花样闪烁,实现和用中断控制差不多的效果......
发表于 12-25 19:39 461次 阅读
51单片机加按键控制led花样闪烁(非用中断)

NCL30000 功率因数校正可调光LED驱动器

00是一款开关电源控制器,应用于中小功率单级功率因数(PF)校正的隔离型反激LED驱动器。它采用临界导通模式(CRM)控制技术,以确保在宽范围的 特性 优势 恒定导通时间PWM控制 接近理想功率因数 逐周期电流保护 强大的保护 低电流检测阈值500 mV 提高整体效率 TRIAC线路调光器的参考设计 缩短开发时间 源500 mA / Sink 800 mA图腾p ole gate driver 低2.0 mA典型操作当前 极低的24μA典型启动电流 无铅,不含卤素/不含BFR,符合RoHS标准 应用 终端产品...
发表于 04-18 21:24 22次 阅读
NCL30000 功率因数校正可调光LED驱动器

NCP1370 用于电视背光的LED驱动器 可调光准谐振初级侧电流模式控制器

0是一款PWM电流模式控制器,主要用于隔离式反向和非隔离恒流拓扑。该控制器以准谐振模式运行以提供高效率。感谢一种新颖的控制方法,该装置能够精确地调节来自初级侧的恒定LED电流。这消除了对次级侧反馈电路,偏置和光耦合器的需求。该器件与最少数量的外部元件高度集成。内置强大的安全保护套件以简化设计。该器件支持模拟/数字调光,两种模式可以结合使用,以提高调光精度。 NCP1370具有可编程峰值电流限制,可在各种应用中优化设计兼容性。控制器具有减少电流消耗的待机模式。 特性 优势 准确的初级侧检测 不需要光耦合器&电流调节在±1%以内 准谐振峰值电流模式控制操作 效率高 行前馈 提高监管准确性 可编程逐周期峰值电流限制 提高驾驶员可靠性 模拟和/或PWM调光 提高不同电视LED调光技术的灵活性 二次二极管短路保护 避免故障情况下过热 V CC 欠压和过压保护 稳健的故障处理 开路和短路输出LED保护 常见LED系统故障的稳健故障处理 Brown-out 低交流电源时的强大保护 应用 终端产品 LED电视的背光控...
发表于 04-18 21:20 127次 阅读
NCP1370 用于电视背光的LED驱动器 可调光准谐振初级侧电流模式控制器

NCS29001 LED驱动器 单通道

01是用于LCD显示器背光应用的集成LED驱动器。可配置的物料清单使设计人员能够为各种LCD屏幕尺寸创建高效的解决方案。 NCS29001使用升压型转换器在一串LED中提供恒定电流。高达500 Hz的频率支持高精度PWM调光。集成的软启动功能可在上电过程中提供出色的控制,以避免电流过冲。该器件可防止输出过压,开路和短路LED以及热过载。 NCS29001采用经济高效的SOIC14封装。 特性 3%LED电流精度 PWM控制调光 软启动限制InRush Current 打开反馈保护 打开LED保护 短LED保护 LED灯串阴极对地保护 最高工作周期超过90% SOIC14包 这是一个无铅设备 8.5 V至18 V输入电压范围 驱动单个LED灯串,最高240 V 应用 TFTLCD电视面板 电路图、引脚图和封装图...
发表于 04-18 21:20 28次 阅读
NCS29001 LED驱动器 单通道

NCP5623D LED驱动器 三路输出 RGB I2C控制

3混合模拟电路是三输出LED驱动器,专用于RGB照明或背光LCD显示器。该IC采用工业标准TSSOP-14封装,适用于消费电子应用。 特性 优势 2.7至5.5V输入电压范围 完整操作便携式电池电压范围 完全支持RGB功能 处理标准RGB照明 可编程集成渐变调光 保存MCU软件和引脚 90 mA输出电流能力 能够驱动大显示屏。最重要的是,可以直接连接+ vbat,必要时将LED电流增加到100 mA 提供三个独立的LED驱动器 三重内置PWM可轻松实现每个LED的独立调光 支持完整的I2C协议 使用合法的I2C地址,NCP5623在共享公共I2C总线时可以避免数据冲突。 这是无铅设备 保护环境 每个通道32步恒定电流,32k颜色组合 平滑的颜色变化为人眼 应用 终端产品 多色照明 LCD背光 RGB指标 RGB Fun Lighting 手机 MP3, PMP,DSC和其他便携式消费者设计 电路图、引脚图和封装图...
发表于 04-18 21:13 31次 阅读
NCP5623D LED驱动器 三路输出 RGB I2C控制

NCP5623B LED驱动器 三路输出 RGB I2C控制

3B混合模拟电路是三输出LED驱动器,专用于RGB照明或背光LCD显示器。内置DC-DC转换器基于高效电荷泵结构,工作模式为1x和2x。它提供94%的峰值效率。小巧的封装使该器件适用于房间有限的便携式应用。 特性 优势 2.7至5.5 V输入电压范围 在整个锂离子电池电压范围内工作。 RGB功能完全支持 支持多种照明功能。 可编程集成渐变调光 嵌入式数字功能保存I / O和MCU级别的额外软件 90 mA输出电流能力 驱动任何RGB LED。 94%峰值效率 高效率可节省电池寿命。 已建成-in短路保护 保护系统免受输出电流接地短路。 提供三个独立的LED驱动器 使用简单的软件命令轻松实现轻量组合。 支持完整的I2C协议 注册的I2C地址避免了在总线系统中运行时的冲突。 嵌入式OVP /开放负载保护 预防系统在空载状态下运行时电路损坏。 应用 终端产品 多色灯饰 便携式背光 数码手机相机照片闪光灯 LCD和键盘同时驱动 手机 汽车收音机 移动MP3播放器 电路图、引脚图和封装图...
发表于 04-18 21:12 43次 阅读
NCP5623B LED驱动器 三路输出 RGB I2C控制

NCP5623C LED驱动器 I2C控制RGB 三路输出

3C混合模拟电路是三路输出LED驱动器,专用于RGB照明或背光LCD显示器。内置DC-DC转换器基于高效电荷泵结构,工作模式为1x和2x。它提供了94%的峰值效率。小巧的封装使该器件适用于房间有限的便携式应用。 特性 优势 2.7至5.5 V输入电压范围 支持任何锂离子电池供电系统 RGB功能完全支持 处理宽色显示 可编程集成逐渐调光 最大限度地减少CPU软件工作量 90 mA输出电流能力 支持非常明亮的LCD背光 94%峰值效率 减少电池电流消耗 内置短路保护 无风险支持输出短路 提供三个独立的LED驱动器 生成广泛的配色方案 支持完整的I 2 C协议 提供简单的面向数据总线的操作 嵌入式OVP和开放式负载保护 支持无负载的开放状态 应用 终端产品 多色照明 便携式背光 相机闪光灯 LCD和键盘同时驱动 手机 电路图、引脚图和封装图...
发表于 04-18 21:12 115次 阅读
NCP5623C LED驱动器 I2C控制RGB 三路输出

NCP5603 白光LED驱动器 高效率 电荷泵转换器

3是一款专用于中等功率白光LED应用的集成电路。电源转换是通过电荷泵结构实现的,使用两个外部陶瓷电容器,使系统极小。该器件通过低电池电压源为负载提供恒定电压。它特别适用于低成本,低功耗应用中的高效LED,具有较长的电池寿命。 特性 宽电池供电电压范围:2.7
发表于 04-18 21:11 67次 阅读
NCP5603 白光LED驱动器 高效率 电荷泵转换器

HBL5006 LED电子分流器

6系列是电子分流器,在LED进入开路状态时提供电流旁路。当受到瞬态和喘振条件时,LED本质上非常脆弱。还有许多情况必须保持LED照明的高可靠性,例如前灯,灯塔,桥梁,飞机,跑道等。在这些情况下,分流装置的低成本添加将充分保证如果一个LED失效打开,整串LED将不会熄灭。分流装置也适用于需要电路连续性的其他负载。这些器件设计用于30至500 mA的电流。 特性 双向设备 如果LED自行恢复或被替换,则自动重新安装 导通电压通常为1.1 V 关断状态电流小于1.0μA 需要UniqueSite和控制变更要求的汽车和其他应用的SZ前缀; AEC-Q101合格且PPAP能力 这些器件无铅且符合RoHS标准 应用 预防性维护不切实际的LED 汽车LED大灯 汽车LED应用 具有高可靠性要求的LED 开路条件下的撬棍保护 敏感电路的过压保护 电路图、引脚图和封装图...
发表于 04-18 20:48 26次 阅读
HBL5006 LED电子分流器

HBL1015 LED分流器

5 / 25系列是电子分流器,在LED进入开路状态时提供电流旁路。当受到瞬态和浪涌条件时,LED是非常脆弱的。在许多情况下,LED照明的高可靠性必须保持,例如在前灯,灯塔,桥梁,飞机,跑道等中。在这些情况下,HBL设备的低成本添加将充分保证如果一个LED失效打开,整个LED串将会熄灭。 HBL器件也适用于需要电路连续性的其他负载。这些设备可以使用140至500 mA的电流。 特性 双向设备 如果LED自行恢复或已更换,则自动重置 导通电压通常为1.8 V 关断状态电流小于0.5μA 这些是无铅设备 应用 预防性维护不切实际的LED LED大灯 具有高可靠性要求的LED 开路条件下的撬棒保护 敏感电路的过压保护 电路图、引脚图和封装图...
发表于 04-18 20:48 24次 阅读
HBL1015 LED分流器

HBL1025 LED分流器

信息 HBL1015 / 25系列是电子分流器,在LED进入开路状态时提供电流旁路。当经受瞬态和浪涌条件时,LED非常脆弱。在许多情况下,必须保持LED照明的高可靠性,例如前灯,灯塔,桥梁,飞机,跑道等。在这些情况下,HBL设备的低成本添加将充分保证如果一个LED失效打开,整个LED串将会熄灭。 HBL器件也适用于需要电路连续性的其他负载。设备可以使用140至500 mA的电流。 双向设备 如果LED自身恢复或更换,则自动重置 ON状态电压通常1.8 V 关断状态电流小于0.5μA 这些是无铅器件...
发表于 04-18 20:48 17次 阅读
HBL1025 LED分流器

LC75805PE LCD驱动器,1/1至1/4负载,带LED驱动器,通用

信息 LC75805PE是1/1至1/4占空比的通用LCD显示驱动器,LED驱动器通过控制器控制用于仪表板显示。此外,LC75805PE能够直接驱动多达48个LED和最多140个段的LCD,并具有内置的7ch PWM功能,用于LED的亮度调节。此外,由于内置振荡器电路,可以减少外部电阻和电容振荡。 静态驱动开关,1/2负载驱动,1/3负载驱动和1/4负载驱动器可通过串行数据控制。 静态驱动器(1/1负载驱动器):最多可驱动38段。 1/2负载驱动器:能够驱动 1/3 Duty Drive:最多可驱动108段。 1/4 Duty Drive:最多可驱动140段。 通用和段输出波形的帧频可以通过串行数据控制。 打开/关闭LED可以通过串行数据控制。 (最多可驱动48个LED) 内置7ch PWM功能,用于LED的亮度调节。 (128步的分辨率) LED驱动器输出波形的帧频可以通过串行数据控制。 串行数据输入支持与系统控制器的“计算机控制总线”格式通信。 (支持5 V操作) 备份功能和通过省电模式强制关闭所有段可由串行数据控制。 内部振荡器操作模式和外部开关时钟操作模式可以通过串行数据控制。 通用性很高,因为显示数据直接显示而无需解码器电路的干预。 INH引脚允许强制显示 内置振荡器...
发表于 04-18 20:26 68次 阅读
LC75805PE LCD驱动器,1/1至1/4负载,带LED驱动器,通用

LM3644 双 1.5A 电流源相机闪光灯 LED 驱动器

信息描述 LM3644 是一款双 LED 闪存驱动器,能够以较小的解决方案尺寸提供高度可调节性。LM3644 采用 2MHz 或 4MHz 固定频率同步升压转换器为 1.5A 恒流 LED 源供电。 两个 128 级电流源可灵活调整 LED1 与 LED2 之间的电流比,。自适应调节方法可确保电流源保持可调节状态,并且最大限度地提升效率。 LM3643 LM3644 的功能由兼容 I2C 的接口控制。这些 功能 包括:硬件闪光灯和硬件手电筒引脚(STROBE 和 TORCH/TEMP)、TX 中断和负温度系数 (NTC) 热敏电阻监视器。器件在每个输出引脚均提供了可独立编程的电流,以便在闪存模式或录像(手电筒)模式条件下驱动 LED。该器件的开关频率选项为 2MHz 或 4MHz,具备过压保护 (OVP) 和可调节限流功能,因此可采用微型超薄电感和 10μF 陶瓷电容。该器件的工作环境温度范围为 -40°C 至 +85°C。特性 两个可独立编程的 1.5A LED 电流源 准确的可编程 LED 电流范围为 1.4mA 到 1.5A 手电筒电流最高可达 360mA (LM3644TT) 闪光灯超时值最长可达 1.6 秒 (LM3644TT) 优化了低电池电量条件下的闪存 LED 电流(输入电压闪存监控器 (IVFM)) 手...
发表于 04-18 20:25 34次 阅读
LM3644 双 1.5A 电流源相机闪光灯 LED 驱动器

LM36010 LM36010同步升压LED闪光灯驱动器

信息描述The LM36010 is an ultra-small LED flash driver that provides a high level ofadjustability. With a total solution size of 7 mm2, it can produce up to1.5 A of LED flash current or up to 376 mA of torch current.The device utilizes a 2-MHz or 4-MHz fixed-frequency,synchronous boost converter to power the 1.5-A constant current LED source. An adaptive regulationmethod ensures the current source remains in regulation and maximizes efficiency as it controls thecurrent from 11 mA up to 1.5 A in flash mode or from 2.4 mA up to 376 mA in torch mode.Features of the LM36010 are controlled via an I2C-compatibleinterface. These features include: hardware flash (STROBE) and 128 programmable currents for bothflash and movie mode (torch). The 2-MHz or 4-MHz switching frequency, overvoltage protection (OVP),and adjustable current limit allow for the use of tiny, low-profile inductors and ceramiccapacitors. The device operates over a –40°C to ...
发表于 04-18 20:25 85次 阅读
LM36010 LM36010同步升压LED闪光灯驱动器

LM36011 LM36011同步升压LED闪光灯驱动器

信息描述LM36011 是一款超小型 LED 闪光灯驱动器,具有高度可调节性。总解决方案尺寸为 4mm2,可提供高达 1.5A 的 LED 闪光灯电流或高达 376mA 的手电筒电流。以上所有的操作均可通过精确的可编程电流源来完成,无需预调节电压,从而减小解决方案尺寸并节省成本。 LM36011 的功能由与 I2C 兼容的接口控制。这些 特性 包括:硬件闪光灯 (STROBE)、闪光灯超时、UVLO、热比例缩减、LED 故障检测以及适用于闪光灯和影片模式(手电筒)的 128 级可编程电流。该器件可在 -40°C 至 +85°C 的环境温度范围下工作。特性精确且可编程 LED 电流闪光灯/IR 电流范围:11mA 至 1.5A(128 个级别) 手电筒电流范围:2.4mA 至 376mA(128 个级别) 闪光灯超时时间长达 1.6 秒优化了低电池电量条件下的闪光灯 LED 电流 (IVFM) LED 阴极对地短路运行以提高热管理 较小的总体解决方案尺寸:< 4mm2 硬件闪光灯使能 (STROBE)输入电压范围:2.5V 至 5.5V400kHz I2C 兼容接口I2C 地址 = 0x64All trademarks are the property of their respective owners....
发表于 04-18 20:24 148次 阅读
LM36011 LM36011同步升压LED闪光灯驱动器

LM3648 LM3648 具有 1.5A 高侧电流源的同步升压 LED 闪存驱动器

信息描述 LM3648 是一款 LED 闪光灯驱动器,其采用小型解决方案尺寸,并且具备更强的适应能力。 LM3648 采用 2MHz 或 4MHz 固定频率的同步升压转换器为 1.5A LED 恒流源供电。 自适应调节方法确保电流源保持可调节状态,并且最大限度地提高效率。 LM3648 的功能通过 I2C 兼容接口进行控制。 其功能包括:硬件闪光灯和硬件手电筒引脚(STROBE 和 TORCH/TEMP)、TX 中断以及 NTC 热敏电阻监视器。 该器件在闪光灯模式下可提供 64 种电流,在摄像模式(手电筒)下可提供 128 种电流。而且还提供有 2MHz 或 4MHz 开关频率选项、过压保护 (OVP) 功能以及可调限流功能,允许使用微型、超薄的电感器和 (10μF) 陶瓷电容。 该器件的工作环境温度范围为 -40°C 至 85°C。特性 1.5A LED 电流源可编程性 精确的可编程 LED 电流范围为 1.954mA 至 1.5A 优化了低电池电压条件下的闪存 LED 电流(输入电压闪存监控器 (IVFM)) 在火炬模式 (@ 100mA) 和闪存模式(@1A 至 1.5A)下效率超过 85% 支持阴极接地 LED 操作,改进了热管理 小型解决方案尺寸:< 16mm2 硬件选通使能 (STROBE)射频功率放大器脉冲事...
发表于 04-18 20:24 75次 阅读
LM3648 LM3648 具有 1.5A 高侧电流源的同步升压 LED 闪存驱动器

TLC59582 48 通道、16 位 ES-PWM LED 驱动器,具有预充电 FET、LOD Caterpillar 和

信息描述The TLC59581/82are 48-channel constant-current sink drivers. Each channel has an individually-adjustable, 65536-step, pulse width modulation (PWM) grayscale (GS) brightness control.The TLC59581 can support 32-multiplexing while TLC59582 can support 16-multiplexing.The output channels are divided into three groups. Each group has a 512-step color brightness control (CC). CC adjusts brightness control between colors. The maximum current value of all 48 channels can be set by 8-step global brightness control (BC). BC adjusts brightness deviation between LED drivers. GS, CC and BC data are accessible through a serial interface port.See application note Build High Density, High Refresh Rate, Multiplexing LED Panel with TLC59581, SLVA744. The TLC59581/82 device has one error flag: the LED open detection (LOD), which can be read through a serial interface port. To resolve this caterpillar issue caused by an open L...
发表于 04-18 20:09 82次 阅读
TLC59582 48 通道、16 位 ES-PWM LED 驱动器,具有预充电 FET、LOD Caterpillar 和

TLC5958 具有 48k 位存储器的 48 通道、16 位 PWM LED 驱动器

信息描述TLC5958 是一款 48 通道恒流灌电流驱动器,适用于占空比为 1 至 32 的多路复用系统。 每个通道都具有单独可调的 65536 步长脉宽调制 (PWM) 灰度 (GS)。采用 48K 位显示存储器以提升视觉刷新率,同时降低 GS 数据写入频率。输出通道分为三组,每组含 16 个通道。 各组都具有 512 步长颜色亮度控制 (CC) 功能。 全部 48 通道的最大电流值可通过 8 步长全局亮度控制 (BC) 功能设置。 CC 和 BC 可用于调节 LED 驱动器之间的亮度偏差。 可通过一个串行接口端口访问 GS、CC 和 BC 数据。如需应用手册:,请通过电子邮件发送请求。TLC5958 有一个错误标志:LED 开路检测 (LOD),可通过串行接口端口读取。 TLC5958 还具有节电模式,可在全部输出关闭后将总流耗设为 0.8mA(典型值)。特性 48 通道恒流灌电流输出具有最大亮度控制 (BC)/最大颜色亮度控制 (CC) 数据的灌电流: 5VCC 时为 25mA 3.3VCC 时为 20mA 全局亮度控制 (BC):3 位(8 步长) 每个颜色组的颜色亮度控制 (CC):9 位(512 步长),三组使用多路复用增强型光谱 (ES) PWM 进行灰度 (GS) 控制:16 位 支持 32 路多路复用的 48K 位灰度数据...
发表于 04-18 20:08 197次 阅读
TLC5958 具有 48k 位存储器的 48 通道、16 位 PWM LED 驱动器

TLC59116 16 通道 Fm+ I2C 总线恒流下沉式 LED 驱动器

信息描述The TLC59116 is an I2C bus controlled 16-channel LED driver that is optimized for red/green/blue/amber (RGBA) color mixing and backlight application. Each LED output has its own 8-bit resolution (256 steps) fixed-frequency individual PWM controller that operates at 97 kHz, with a duty cycle that is adjustable from 0% to 99.6%. The individual PWM controller allows each LED to be set to a specific brightness value. An additional 8-bit resolution (256 steps) group PWM controller has both a fixed frequency of 190 Hz and an adjustable frequency between 24 Hz to once every 10.73 seconds, with a duty cycle that is adjustable from 0% to 99.6%. The group PWM controller dims or blinks all LEDs with the same value. Each LED output can be off, on (no PWM control), or set at its individual PWM controller value at both individual and group PWM controller values. The TLC59116 operates with a supply voltage range of 3 V to 5....
发表于 04-18 20:08 108次 阅读
TLC59116 16 通道 Fm+ I2C 总线恒流下沉式 LED 驱动器

TLC59581 48 通道、16 位 ES-PWM LED 驱动器,具有预充电 FET、LOD Caterpillar 和

信息描述 TLC59581 是一款 48 通道恒定灌电流驱动器。每个通道都具有单独可调的 65536 步长脉宽调制 (PWM) 灰度 (GS) 亮度控制。输出通道分为三组。各组都具有 512 步长颜色亮度控制 (CC) 功能。CC 可调节颜色之间的亮度。全部 48 通道的最大电流值可通过 8 步长全局亮度控制 (BC) 功能设置。BC 调节 LED 驱动器之间的亮度偏差。可通过一个串行接口端口访问 GS、CC 和 BC 数据。TLC59581 具有一个错误标志:LED 开路检测 (LOD)。该标志可通过串行接口端口读取。为解决开路 LED 引发的此类 caterpillar 问题,TLC59581 器件具有一个增强型电路。该电路可提供 caterpillar 效应消除、热关断 (TSD) 和 IREF 电阻短路保护 (ISP) 功能,以确保较高的系统稳定性。TLC59581 器件还具有节电模式,可在输出全部关闭后将总流耗降为 0.8mA(典型值)。TLC59581 器件是一款提升多路复用面板低灰度显示模式性能的良好解决方案。请参见应用笔记,SLVA744。特性 48 个恒定灌电流输出通道 具有最大亮度控制 (BC)/最大颜色亮度控制 (CC) 数据的灌电流:5 VCC 时为 25mA 3.3 VCC 时为 20mA 全局亮度控制 (BC):...
发表于 04-18 20:08 92次 阅读
TLC59581 48 通道、16 位 ES-PWM LED 驱动器,具有预充电 FET、LOD Caterpillar 和

TLC5951-DIE 具有 7 位点校正和 3 组 8 位全局亮度控制功能的 24 通道、12 位 PWM LED 驱动器

信息描述 TLC5951是一款 24 通道,恒定灌电流驱动器。 每个通道具有一个独立可调节,4096 步长,脉宽调制 (PWM) 灰度 (GS) 亮度控制和 128 步长的恒定电流点校正 (DC)。 此点校正调节通道和其它 LED 驱动器之间的亮度偏差。 输出通道是被分成三组的 8 个通道。 每个通道组有一个 256 步长全局亮度控制 (BC) 功能和一个独立的灰度时钟输出。可通过一个串行接口访问 GS,DC 和 BC 数据。 通过一个专用串行端口可对 DC 和 BC 进行编程。TLC5951 有三个针对 LED 开路检测 (LOD),LED 短路检测 (LSD) 和热错误标志 (TEF) 的错误检测电路。 LOD 检测损坏或者断开的 LED,而 LSD 检测一个短接的 LED。 TEF 表示一个过热条件。特性 24 通道恒定灌电流输出 电流功能 使用 PWM 的可选灰度 (GS) 控制:12 位(4096 步长),10 位(1024 步长),8 位(256 步长)针对三色组的三个独立灰度时钟 点校正 (DC):7 位(128 步长) 针对每个颜色组的全局亮度控制 (BC):8 位(256 步长) 自动重复显示功能 针对 GS,BC 和 DC 数据的独立数据端口 每个数据端口间的通信路径 LED 电源电压 VCC=3.0V 至 5.5V...
发表于 04-18 20:08 69次 阅读
TLC5951-DIE 具有 7 位点校正和 3 组 8 位全局亮度控制功能的 24 通道、12 位 PWM LED 驱动器