[原创] [ESP32-Audio-Kit音频开发板测评] WS2812彩色灯带控制

jinglixixi   2021-9-23 12:32 楼主

ESP32-Audio-Kit音频开发板配合库文件FastLED.h的使用能轻松地控制WS2812彩色灯带的显示效果,所用的驱动引脚及灯带的点数均可通过参数进行调整。

以7点彩灯带为例,其显示程序如下:

#include <FastLED.h>
#define NUM_LEDS 7
#define DATA_PIN  5
CRGB leds[NUM_LEDS];
void setup() {
       FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
}

void loop() {
  leds[0] = CRGB::Red;
  leds[1] = CRGB::Green;
  leds[2] = CRGB::Blue;
  leds[3] = CRGB::Red+CRGB::Green;
  leds[4] = CRGB::Red+CRGB::Blue;
  leds[5] = CRGB::Green+CRGB::Blue;
  leds[6] = CRGB::Green+CRGB::Blue+CRGB::Red;
  FastLED.show();
  delay(500);
  leds[0] = CRGB::Black;
  leds[1] = CRGB::Black;
  leds[2] = CRGB::Black;
  leds[3] = CRGB::Black;
  leds[4] = CRGB::Black;
  leds[5] = CRGB::Black;
  leds[6] = CRGB::Black;
  FastLED.show();
  delay(500);
}

经编译和上传,其结果如图1所示,图2是其运行效果。

image-20210923122824-1.png

图1完成上传

image-20210923122824-2.png 图2显示效果

 

对于60点的彩色灯带,其显示程序如下:

#include <FastLED.h>
#define NUM_LEDS 60
#define DATA_PIN 5
CRGB leds[NUM_LEDS];

void setup() {
       FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
}

void loop() {
  int i;
  for(i=0;i<10;i++)
  {
  leds[0+i*6] = CRGB::Red;
  leds[1+i*6] = CRGB::Green;
  leds[2+i*6] = CRGB::Blue;
  leds[3+i*6] = CRGB::Red+CRGB::Green;
  leds[4+i*6] = CRGB::Red+CRGB::Blue;
  leds[5+i*6] = CRGB::Green+CRGB::Blue;
  }
  FastLED.show();
  delay(500);
  for(i=0;i<10;i++)
  {
  leds[0+i*6] = CRGB::Black;
  leds[1+i*6] = CRGB::Black;
  leds[2+i*6] = CRGB::Black;
  leds[3+i*6] = CRGB::Black;
  leds[4+i*6] = CRGB::Black;
  leds[5+i*6] = CRGB::Black;
  }
  FastLED.show();
  delay(500); 
}

其运行效果如图3所示:

image-20210923122825-3.png 图3显示效果

c.gif

本帖最后由 jinglixixi 于 2021-9-25 13:15 编辑

回复评论 (9)

灯很炫酷,

代码中对于60点的RGB灯带显示控制是怎么方式,PWM?

点赞  2021-9-24 07:24

正好在玩这个灯,你这个例子不错

回头我也试试

先谢谢了

点赞  2021-9-24 09:52
引用: se7ens 发表于 2021-9-24 09:52 正好在玩这个灯,你这个例子不错 回头我也试试 先谢谢了

点赞  2021-9-24 10:08
引用: Jacktang 发表于 2021-9-24 07:24 灯很炫酷, 代码中对于60点的RGB灯带显示控制是怎么方式,PWM?

 

应该是类似的东西,因为提供色彩值和亮度值均可给予响应。

点赞  2021-9-24 10:13

可以发一下FastLED.h文件吗

我在IDE里找不到这个

多谢了

点赞  2021-10-11 14:04
引用: se7ens 发表于 2021-10-11 14:04 可以发一下FastLED.h文件吗 我在IDE里找不到这个 多谢了

要在ArduinoIDE中编写程序,需添加第三方的FastLED库,其添加与使用方法为:

1.选取“项目”菜单下“加载库”的“管理库”选项,在库管理器的搜索栏,输入“FastLED”;

2. 在出现搜索结果后,点击“安装”按钮;

3. 在完成安装后,即可见到“INSTALLED”的提示,然后点击“关闭”以返回原界面;

a.jpg

在添加FastLED库之后,即可编写相应的控制程序,其操作方法为:

1. 选取“文件”菜单下的“新建”选项,生成一个新文件;

2. 在“项目”菜单的“加载库”下可见到“FastLED”选项,点击它即可在新文件中添加FastLED的头文件;

点赞  2021-10-11 14:26
引用: se7ens 发表于 2021-10-11 14:04 可以发一下FastLED.h文件吗 我在IDE里找不到这个 多谢了

已发出回复,你看一下。

点赞  2021-10-11 16:08
引用: jinglixixi 发表于 2021-10-11 14:26 要在ArduinoIDE中编写程序,需添加第三方的FastLED库,其添加与使用方法为: 1.选取“项目&rdquo ...

可以了,谢谢

点赞  2021-10-11 23:33
引用: se7ens 发表于 2021-10-11 23:33 可以了,谢谢

点赞  2021-10-12 07:48
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复