在 arduino 上运行 WS2812B 条带

Posted

技术标签:

【中文标题】在 arduino 上运行 WS2812B 条带【英文标题】:Running WS2812B strip on arduino 【发布时间】:2021-01-02 21:39:46 【问题描述】:

我购买了一条 5 米长的 WS2812B LED 灯带,用于与运动检测器(WS2812B 5 Pins RGBW RGBWW 4 IN 1 LED Strip Light Non-Waterproof DC5V)结合使用。

这些条连接到 5V 电源(USB 移动电源)和 arduino UNO 上引脚 6 上的 GND/5V/信号。

我要注意的是,我到目前为止还没有剪掉LED灯条,所以5米都是完好的。

我已经尝试使用 FASTLED 库使用下面的代码让 LED 发出简单的颜色。蓝色/蓝色/蓝色组合导致 LED 0-2 上的颜色为蓝色/红色/绿色 更改为红色/红色/红色会产生黄色/蓝色/关闭 更改为 Green/Green/Green 会产生 Red/lightgreen-ish/off 的颜色 我已尝试从 RGB 转换为 RBG 配色方案,但无济于事 除了我已经为您提供的信息之外,我没有太多关于 LED 灯条的信息

你能给我一些关于如何进行的想法吗?

#include "FastLED.h"

#define NUM_LEDS 5
#define DATA_PIN 6


// Define the array of leds
CRGB leds[NUM_LEDS];

void setup()

  //FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);   
  FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS); // for GRB LEDs


void loop()

  leds[0] = CRGB::Blue; 
  leds[1] = CRGB::Blue;
  leds[2] = CRGB::Blue;
  FastLED.show();
  delay(500);

【问题讨论】:

【参考方案1】:

这可能不是您正在寻找的确切答案,但我建议为您的 LED 使用 Adafruit_Neopixel.h 库。刚刚使用该库和您正在使用的确切 LED 灯条做了一个 Projekt,到目前为止它运行良好。

#include "Adafruit_NeoPixel.h"`

#define LED_PIN     6              
#define LED_COUNT  60 
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

int red = 100;
int green = 0;
int blue = 0; 

void setup() 
strip.begin();           // INITIALIZE NeoPixel strip object (REQUIRED)
strip.show();            // Turn OFF all pixels ASAP


void loop() 
for (i=0; i<LED_COUNT; i++)   
    strip.setPixelColor(i, strip.Color(Red, Green, Blue));
    strip.show();
    

这应该使 60 个 LED 变为红色。如果你想查看的话,我的 GitHub 页面上也有一个 LED 项目。如果上面的代码仍然不起作用,我认为你的接线是错误的。我用电源为我的芯片和 LED 供电,并使用电源的接地。

【讨论】:

我已经尝试过您的代码,但它没有产生预期的颜色。原来我有一个 RGBW 条带。所以每个 LED 有四个像素:红色、绿色、蓝色和白色......如果我指示 neopixel 库使用这种类型的 LED 灯条,一切似乎都可以工作......我现在希望能够设置褪色 - 是这是我应该在新帖子中发布的东西,还是应该继续使用它。 我会把这个问题放到一个新帖子中,因为它是一个完全不同的问题。您肯定需要 for 循环,您只是想将其淡化为白色还是其他颜色? 最后,我希望使用 PIR 运动传感器来触发 LED 灯带以非常低的强度轻轻打开 - 足以在夜间沿着走廊导航。然后在设定的时间后通过柔和地淡出红灯来转动。现在我已将最大亮度设置为 5(共 255 个),因此使用传统的 for 循环将几个步骤设置为零会使褪色看起来非常笨拙。

以上是关于在 arduino 上运行 WS2812B 条带的主要内容,如果未能解决你的问题,请参考以下文章

Arduino控制RGB灯(WS2812B)

在线仿真Arduino WS2812b环形24颗霓虹灯动态效果显示

在线仿真Arduino WS2812b环形24颗霓虹灯动态效果显示

WS2812B LED灯工作原理

MicroPython实例之TPYBoard v102炫彩跑马灯WS2812B

MicroPython实例之TPYBoard v102炫彩跑马灯WS2812B