RGB-LED 环形彩灯是一款可编程控制的模块,内置 WS2812B 驱动芯片,通过 Mixly、Mind+、Arduino 都能轻松控制,支持 Arduino UNO、Arduino Nano、ESP32、掌控板等主流主板。如果你正在折腾这类 RGB 灯环的接线和程序,不妨跟着本文步骤走一遍,过程中遇到问题也可以发到 云栈社区 一起交流。
一、模块介绍
12 位 RGB 灯环采用 12 颗 WS2812B 灯珠串联组成,只需要一个 IO 口即可驱动。WS2812B 灯珠内部集成了控制芯片,因此单 IO 就能完成颜色与亮度的控制。模块上的 S 脚为信号输入,用来控制 RGB 灯珠颜色与串联数量;芯片的 DOUT 引脚负责信号输出,可以继续级联下一颗灯珠;V 脚接电源正极,G 脚接电源负极。

二、原理图

三、模块参数
| 引脚名称 |
描述 |
| G |
GND(电源负极) |
| V |
VCC(电源正极) |
| S |
信号输入,控制 RGB 灯珠颜色与串联数量 |
- 供电电压:3.3V / 5V
- 连接方式:3P PH2.0 接线端子,或 3P PH2.0 接线端子转杜邦线
四、电路板尺寸

五、添加 Arduino 库文件
示例程序依赖 Adafruit_NeoPixel 库。如果之前没装过,需要先找到 Arduino IDE 的库文件夹(通常位于 Arduino IDE 安装目录下的 libraries 文件夹),然后把 Adafruit_NeoPixel 库文件夹完整复制进去即可。不熟悉库安装流程的话,可以先翻阅对应的 技术文档 避坑。

六、Arduino IDE 示例程序
示例程序(UNO 开发板):
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel rgb_display_10 = Adafruit_NeoPixel(12, 10, NEO_GRB + NEO_KHZ800);
void setup() {
rgb_display_10.begin();
}
void loop() {
for (int i = 1; i <= 12; i = i + (1)) {
rgb_display_10.setPixelColor((i) - 1, ((((i * 21) & 0xffffff) << 16) | ((0 & 0xffffff) << 8) | 0));
rgb_display_10.show();
delay(200);
rgb_display_10.setPixelColor((i) - 1, (0xffff00));
rgb_display_10.show();
delay(200);
}
}
示例程序(ESP32 开发板,基于 Python 编程 语言控制 RGB 彩灯,WS2812B):
注意:下面示例用到了 machine.Pin,因此运行时需要先导入 machine 模块。
import machine
import neopixel
import time
rgb = neopixel.NeoPixel(machine.Pin(2), 12)
while True:
for i in range(0, 12, 1):
rgb[i] = (100, 0, 0)
rgb.write()
time.sleep(1)
for i in range(0, 12, 1):
rgb[i] = (0, 0, 0)
rgb.write()
time.sleep(1)
七、米思齐 Mixly 示例程序(图形化语言)

示例程序(ESP32 开发板):

八、电路接线图

九、测试结论
器件连接好线之后,将上述程序上传到 Arduino UNO 开发板,会看到灯环上的灯珠先逐个点亮成黄色,随后接力亮起红灯,整体呈现流水灯的效果。
|