步骤1 参考下图连线:
务必注意:WS2812需要单独供电,电压为5V
步骤2 编写代码:
代码
// 调用Adafruit_NeoPixel模块
#include <Adafruit_NeoPixel.h>
// 设置灯珠数量
#define NUMPIXELS 24
// 设置SPI输出数据引脚
#define PIN_NEOPIXEL 6
// LED引脚设置
#define PIN_LED 10
// 初始化灯珠控制实例
Adafruit_NeoPixel pixels(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800);
// 当前灯珠指向
int16_t idx = 0;
// 上一课灯珠指向
int16_t idx_prev = 0;
// 方向
int16_t direction = 0;
// 转换方向
int16_t type = 1;
// 启动设置
void setup() {
// 调试串口速率设置
Serial.begin(115200);
pinMode(PIN_LED, OUTPUT);
// 灯珠控制开始
pixels.begin();
// 设置亮度为20
pixels.setBrightness(20);
// 设置灯珠颜色,全部关闭
pixels.fill(0x000000);
delay(100);
// 设置灯珠颜色
pixels.fill(0xFF0000);
delay(100);
pixels.clear();
if(direction==0) {
// 当前灯珠指向
idx = 0;
// 上一课灯珠指向
idx_prev = NUMPIXELS - 1;
} else {
// 当前灯珠指向
idx = 0;
// 上一课灯珠指向
idx_prev = 1;
}
}
// 循环主体程序
void loop() {
if (idx % 2 == 0) {
// 点亮LED
digitalWrite(PIN_LED, HIGH);
} else {
digitalWrite(PIN_LED, LOW);
}
// 设置灯珠颜色
if(direction==0) {
if (idx == 0) {
idx_prev = NUMPIXELS - 1;
} else {
idx_prev = idx - 1;
}
} else {
if (idx == NUMPIXELS - 1) {
idx_prev = 0;
} else {
idx_prev = idx + 1;
}
}
// 串口输出
Serial.print("type=");
Serial.print(type);
Serial.print(" direction=");
Serial.print(direction);
Serial.print(" index=");
Serial.print(idx);
Serial.print(" prev=");
Serial.print(idx_prev);
// 熄灭上一课灯珠
pixels.setPixelColor(idx_prev, pixels.Color(0, 0, 0));
// 点亮当前灯珠
uint16_t c1 = idx % 3 == 0 ? (100 + random(100)) : (0 + random(50));
uint16_t c2 = idx % 3 == 1 ? (100 + random(100)) : (0 + random(50));
uint16_t c3 = idx % 3 == 2 ? (100 + random(100)) : (0 + random(50));
Serial.print(" c1=");
Serial.print(c1);
Serial.print(" c2=");
Serial.print(c2);
Serial.print(" c3=");
Serial.print(c3);
Serial.println("");
pixels.setPixelColor(idx, pixels.Color(c1, c2, c3));
// 显示
pixels.show();
// 延时
delay(50);
if(direction==0) {
idx++;
if (idx >= NUMPIXELS) {
if(type==0) {
idx = 0;
} else {
idx = NUMPIXELS - 1;
direction = 1;
}
}
} else {
idx--;
if (idx<0) {
if(type==0) {
idx = NUMPIXELS - 1;
} else {
idx = 0;
direction = 0;
}
}
}
}
步骤3 编译下载:
参考上图,选择好对应的配置选项
步骤4 实际效果:
三春牛-创客2023.01.28
赞
三春牛-创客2023.01.28
厉害