类: WS2812B 驱动
约 1086 字大约 4 分钟
2026-03-19
构建固件和导入到JS
WS2812B 类由 ws2812b 模块提供:
import { WS2812B } from 'ws2812b'简介
WS2812B LED 灯带驱动类
用于控制 WS2812B 全彩 LED 灯带,支持设置单个像素颜色、清空灯带和刷新显示。 使用 RMT 硬件模块实现精确的时序控制。
示例:
import { WS2812B } from "ws2812b"
// 创建 WS2812B 实例(30个LED)
const strip = new WS2812B()
// 初始化配置
strip.setup({
pin: 18, // 数据引脚
length: 30 // LED 数量
})
// 设置第一个 LED 为红色
strip.setPixel(0, 255, 0, 0)
// 设置第二个 LED 为绿色
strip.setPixel(1, 0, 255, 0)
// 刷新显示(将数据发送到灯带)
strip.flush()
// 清空灯带(所有 LED 熄灭)
strip.clear()
strip.flush()WS2812B LED 灯带驱动类
用于控制 WS2812B 全彩 LED 灯带,支持设置单个像素颜色、清空灯带和刷新显示。 使用 RMT 硬件模块实现精确的时序控制。
类方法
方法 constructor
原型: constructor ()
构造函数
创建一个新的 WS2812B 实例。
返回值:
类型WS2812B
说明返回 WS2812B 实例
方法 setup
原型: setup (config:object)
初始化 WS2812B LED 灯带
配置 LED 灯带的数据引脚和 LED 数量。
配置参数说明:
- pin: 连接 LED 灯带数据线的 GPIO 引脚号
- length: LED 灯带上的 LED 数量(1-1024)
示例:
// 基本配置
strip.setup({
pin: 18,
length: 30
})参数:
config
类型object (详见下方类型定义)
参数说明配置对象
config 类型定义:
{ pin: number, // 数据引脚 GPIO 号 length: number // LED 数量(1-1024) }
异常:
- LED 数量必须在 1-1024 范围内
- LED 灯带初始化失败
返回值:
类型undefined
方法 setPixel
原型: setPixel (idx:number, red:number, green:number, blue:number)
设置单个像素的颜色
设置指定索引位置的 LED 颜色。颜色值使用 RGB 格式,每个通道范围为 0-255。 注意:调用此方法后需要调用 flush() 才能将颜色数据发送到灯带。
示例:
// 设置第 0 个 LED 为红色
strip.setPixel(0, 255, 0, 0)
// 设置第 1 个 LED 为绿色
strip.setPixel(1, 0, 255, 0)
// 设置第 2 个 LED 为蓝色
strip.setPixel(2, 0, 0, 255)
// 设置第 3 个 LED 为白色(低亮度)
strip.setPixel(3, 50, 50, 50)
// 刷新显示
strip.flush()参数:
idx
类型number
参数说明像素索引(从 0 开始)
red
类型number
参数说明红色通道值(0-255)
green
类型number
参数说明绿色通道值(0-255)
blue
类型number
参数说明蓝色通道值(0-255)
异常:
- 请先调用 setup()
- 无效的像素索引
- 无效的红色值
- 无效的绿色值
- 无效的蓝色值
返回值:
类型undefined
方法 clear
原型: clear ()
清空灯带
将所有 LED 的颜色设置为关闭(黑色)。 注意:调用此方法后需要调用 flush() 才能将数据发送到灯带。
示例:
// 清空灯带
strip.clear()
// 刷新显示
strip.flush()异常:
- 请先调用 setup()
返回值:
类型undefined
方法 flush
原型: flush ()
刷新显示
将设置的颜色数据发送到 LED 灯带。在调用 setPixel() 或 clear() 后, 必须调用此方法才能将更改应用到实际的 LED 灯带上。
示例:
// 设置颜色
strip.setPixel(0, 255, 0, 0)
strip.setPixel(1, 0, 255, 0)
// 刷新显示(必须调用)
strip.flush()异常:
- 请先调用 setup()
返回值:
类型undefined
