
WS2812(常称 “内置 IC 幻彩灯珠”)是一种将RGB 三原色 LED 与控制驱动电路(IC)集成在同一 5050 封装内的智能像素光源,核心是单线串行、单点单控、可编程全彩。简单理解:WS2812 把 “控制 + 发光” 合一,一根线控一串、每颗灯独立变色,是低成本做动态全彩灯光的最佳方案。灯带普遍采用低电压安全供电,适配创客、电竞、家装、商装、舞台等动态灯光场景,支持自定义色彩、流光、跑马、律动等复杂效果。
PCB 宽度:8–10mm(常规 60 灯 / 米)
裁剪间距:1 灯 1 剪(可编程款)
防水等级:IP30(不防水)
工作温度:-25℃~+80℃
存储温度:-40℃~+85℃
接口定义:3P 端子(红线正极、黄线信号、黑线负极)


| 以树莓派Pico开发板为例,提醒: 请按下图的引脚标识接线,务必不能接错。如果接错线通电后会导致设备烧毁! |

| ws2812 下载这个ws2812源代码文件直接上传树莓派Pico文件内,直接运行查看数据(如下图) |

运行程序后,可观察灯带颜色变化如下
from machine import Pin,导入控制树莓派 Pico 的引脚
import neopixel ,导入neopixel:专门驱动 WS2812 彩灯的库
import time,导入time:用来控制速度、延时
LED_COUNT = 60 # 60颗灯 可自己修改灯珠数量
LED_PIN = 0 # 数据线接 GP0,灯带信号线接GP0引脚可自己修改
核心功能:颜色函数 hue_to_rgb(hue)这是彩虹渐变的核心!它的作用:输入一个数字(0~360) → 输出一个漂亮的彩虹色(红、橙、黄、绿、青、蓝、紫)
0 = 红
60 = 黄
120 = 绿
180 = 青
240 = 蓝
300 = 紫
360 = 回到红
可以把它理解成:给一个数字,还你一个颜色。
关灯函数 clear()
python
运行
def clear():
np.fill((0, 0, 0))
np.write()
作用:把所有灯变成黑色(熄灭)
程序启动和结束时会调用一次,干净清爽。
流水灯逻辑
python
运行
def flow_water():
hue = 0 # 起点颜色
while True: # 无限循环
for i in range(LED_COUNT):
# 给第i颗灯 设置颜色
# 颜色 = 基础色相 + 灯的位置 × 8
np[i] = hue_to_rgb(hue + i * 8)
np.write() # 把颜色发送到灯带
hue = (hue + 3) % 360 # 整体颜色偏移
time.sleep(0.025) # 控制速度
这里用最通俗的话讲:
① hue = 0
最开始的颜色从 红色 开始。
② for i in range(LED_COUNT)
循环给 60 颗灯逐个设置颜色。
③ np[i] = hue_to_rgb(hue + i * 8)
第 0 颗灯:hue + 0 → 颜色 A
第 1 颗灯:hue + 8 → 颜色 B
第 2 颗灯:hue + 16 → 颜色 C
...
第 59 颗灯:hue + 59*8 → 颜色 Z
结果:60 颗灯形成一条完美彩虹渐变!
④ hue = hue + 3
整体彩虹整体往前挪一点点!
这就是流水、流动的秘密!
⑤ time.sleep(0.025)
延时 25 毫秒,控制流动速度。
数字越小 → 越快
数字越大 → 越慢
三、整体流动原理总结(一句话)
给 60 颗灯设置连续渐变彩虹色
每过 25 毫秒,整体颜色偏移一点点
看起来就像彩虹在灯带上面流动
四、你可以自己改的参数(超简单)
python
运行
np[i] = hue_to_rgb(hue + i * 8)
数字 8 → 越大,颜色渐变越明显
数字 3 → 越大,流动越快
python
运行
hue = (hue + 3) % 360
python
运行
time.sleep(0.025)
越小越快
总结
代码功能:生成一条连续彩虹 → 不断整体偏移 → 形成流动效果全程所有灯都亮,没有熄灭效果。