加入收藏夹 设为首页
位置:主页 >> 新闻 >> 电子

产品分类

产品标签

Fmuser网站

WS2812B 可寻址 RGB LED | 使用 Arduino 控制

Date:2021/10/18 21:55:58 Hits:
在这个项目中,我们将看看一个有趣的产品,称为 WS2812B 可寻址 LED。 它们是可单独寻址的 RGB LED,也有不同的名称,例如 Adafruit 的 NeoPixel。 在本教程中,我们将了解 WS2812B LED 及其内部结构和构造,以及如何使用 Arduino 控制可单独寻址的 LED。 大纲介绍 WS2812B 可寻址 LED WS2812B LED 应用电路如何使用 Arduino 控制 WS2812B LED?电路图所需的组件编程 ArduinoCode 结论介绍如果你已经做了一些某种 LED 相关项目,那么您可能使用过分立 LED(通孔或 SMD)。 这些 LED 可能是单色 LED 或 RGB LED。离散 LED 的主要缺点是,如果您在阵列中使用它们,您将失去单独控制它们的特权。 例如,如果您使用晶体管将三个或四个 LED 连接到 Arduino 的单个引脚,那么阵列中的所有 LED 将具有相同的行为,即 亮度控制或颜色变化。另一种情况是您可能还使用 LED 灯条进行圣诞装饰或常规家居照明。 您可能已经观察到,即使在昂贵的 LED 灯条中,您也没有控制单个 LED 的功能。如果您的目标是控制灯条中的单个 LED,那么 WS2812B 可寻址 RGB LED 就是您的答案。WS2812B 可寻址 LED WS2812B可寻址 LED 灯带是一种智能光源,在同一封装中包含控制 IC 和 RGB LED,通常采用 SMD 5050 外形。 下图显示了一条 WS2812B LED。乍一看,它看起来像一个普通的 LED 灯条。 但仔细检查后,您会发现 WS2812B LED 控制 IC 集成在 SMD 5050 RGB LED 封装中。 以下放大图显示相同。单个 WS2812B LED 块有四个引脚,即 VDD、VSS (GND)、DIN 和 DOUT。 这些引脚的功能非常简单,下表给出了引脚的简单功能说明。引脚功能VDD电源为LEDVSSGroundDIN控制数据信号输入DOUT控制数据信号输出WS2812B IC的电源也是通过VDD引脚提供的。WS2812B LED应用电路了解如何单独控制 WS2812B LED,下面的应用电路会很有用。 所有 WS2812B LED 都以级联方式连接,其中第一个 LED 的 DO 连接到第二个 LED 的 DIN,依此类推。但第一个 LED 必须通过其 DIN 引脚从像 Arduino 这样的微控制器接收数据。 下图显示了典型的应用电路框图。WS2812B LED 使用的数据传输协议是NRZ 模式。 WS2812B LED 阵列的第一个 DIN 端口接收来自微控制器的数据。 单个像素的数据为 24 位,由各自 8 位的红、绿和蓝 LED 控制数据组成。 数据顺序必须是GRB,24位数据的组成如下所示。 请注意,首先发送高位数据。一旦第一个 WS2812B 块接收到第一个 24 位数据,数据将发送到其内部锁存器进行进一步解码。 剩下的数据由其信号整形和放大电路整形,并通过DO引脚传递到级联中的下一个像素。如何使用Arduino控制WS2812B LED?现在,让我们继续使用Arduino控制WS2812B LED阵列。 在进一步设计原理图之前,我们需要解决一件重要的事情,即 项目的电源。每个单独的 WS2812B LED 像素具有三个 LED 和一个控制 IC。 因此,一个像素的电流要求约为 60 mA。 如果您有一个包含 20 个 WS2812B 可单独寻址 LED 的灯条,则总电流要求为 20 * 60 mA = 1.2 A。这超出了 Arduino 能够通过 USB 端口(最多可提供 300 mA)提供的电流或通过 5V 桶形插孔(可提供最大 900 mA)。因此,为项目供电的最佳方式即 Arduino 和 WS2812B LED Strip 都是借助外部 5v 电源可以提供足够的电流。 现在项目的电源部分已经清楚了,我们现在可以继续进行项目的原理图。 电路图如下图所示Arduino UNO 和 WS2812B RGB LED 灯条之间的连接。 Arduino UNO 的 5V 和 LED 与 GND (VSS) 一起连接到外部电源。 LED 灯条的 DIN 引脚通过 7Ω 电阻连接到 Arduino 的数字 IO 引脚 330。所需组件Arduino UNOWS2812B LEDs5V 电源供应(最小 2A)330Ω 电阻器编程 Arduino 编程 Arduino 的第一步是下载一个名为“FastLED”的支持库。 您可以从以下链接下载库:“FastLED 库”。解压缩 zip 文件的内容并将文件夹重命名为“FastLED”。 #define LEDPIN 7 #define NUMOFLEDS 10 CRGB LEDs[NUMOFLEDS]; void setup() { FastLED.addLeds(LED,NUMOFLEDS); } void loop() { for (int i = 0; i <= 9; i++) { leds[i] = CRGB (0, 0, 255); FastLED.show(); 延迟(40); } for (int i = 9; i >= 0; i--) { leds[i] = CRGB (255, 0, 0); FastLED.show(); 延迟(40); } }结论本教程中通过一个项目简单介绍了 WS2812B 可单独寻址 LED,以展示我们如何使用 Arduino 控制 WS2812B LED。 如果您了解这些基础知识,那么您就可以实施范围广泛的项目。 相关文章:使用Arduino的POV显示如何使用Arduino 74HC595移位寄存器?555 LED闪光灯电路| 555 IC 和 4017 ICArduino 多任务教程带 LED 的无偏电子骰子 LED 电阻计算器 | 需要串联电阻

留言 

名字 *
电邮 *
电话
地址
代码 查看验证码? 点击刷新!
想说的话
 

邮件列表

评论载入中...
主页| 关于我们| 热销产品| 新闻| 下载| 支持| 反馈| 联系我们| 服务

联系人:Zoey 张 网址: www.fmuser.net

Whatsapp /微信: +86 183 1924 4009

Skype: tomleequan 电子邮件: [电子邮件保护] 

Facebook:FMUSERBROADCAST Youtube: FMUSER ZOEY

英文地址:Room305, HuiLanGe, No.273 HuangPu Road West, TianHe District.,GuangZhou, China, 510620 中文地址:广州市天河区黄埔大道西273号惠兰阁305(3E)