材料准备:
ws2812B灯珠偶数个。
arduino开发板任意一个。
锡焊工具和导线若干。(也可以直接买网上的ws2812灯条,贵了些但不用焊了。)
具体步骤如下:
安装arduino IDE。CSDN教程很多且很详细,不再赘述。
给arduino IDE安装fastled库。CSDN教程很多且很详细,不再赘述。(博主好懒啊~~)
记得要给ws2812B灯串接5负,接3负是不亮的。
买回来的灯珠按如下方式焊接起来。图中灯珠是正面朝上的,别焊反了。
GDN接负极,VDD接正极 (接反了是会烧的),D1是通信串口对应代码中的D4。选择左端作为输入,右端可以不用管。
验证成功后,直接上传代码即可(温馨提示:在上传的过程中千万不要乱按arduino板子上的任何按键,否则会上传失败的)。
就这么简单。想要其它模式的可以自己尝试做。欢迎大佬一起讨论。
#include <FastLED.h>
#define LED_PIN D4 //arduino串口,可自行修改
#define NUM_LEDS 10 //灯珠的数量,可自行修改
CRGB leds[NUM_LEDS];void setup() {Serial.begin(9600); FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS); //初始化状态}
void loop() {for(int i=10;i>0;i--){for(int a=0; a<NUM_LEDS/2; a++){leds[a] = CRGB(255, 0, 0);FastLED.show();}delay(150);FastLED.clear();for(int b=NUM_LEDS/2; b<NUM_LEDS; b++){leds[b] = CRGB(0, 0, 255);FastLED.show();}delay(150);FastLED.clear();
}for(int j=25;j>0;j--){for(int c=0; c<NUM_LEDS/2; c++){leds[c] = CRGB(255, 0, 0);FastLED.show();//显示灯}FastLED.clear();//关闭所有灯for(int d=NUM_LEDS/2; d<NUM_LEDS; d++){leds[d] = CRGB(0, 0, 255);FastLED.show();}FastLED.clear();
}
for(int k=10;k>0;k--){for(int h=3;h>0;h--){for(int e=0; e<NUM_LEDS/2; e++){leds[e] = CRGB(255, 0, 0);FastLED.show();//delay(150);}FastLED.clear();}for(int h=10;h>0;h--){for(int g=NUM_LEDS/2; g<NUM_LEDS;g++){leds[g] = CRGB(0, 0, 255);FastLED.show();//delay(150);}FastLED.clear();}
}
}