NodeMcu使用WS2812

NodeMcu使用WS2812可以控制每一个LED灯珠显示255*255*255种颜色,用法也比较多,具体可以参考官方文档。
ws2812是一款编程控制的led彩灯,使用rgb颜色空间,可以合成不同亮度和颜色的灯光。
注意:WS2812的data固定接到nodemcu的D4
使用前先初始化ws2812.init()
最简单的用法

ws2812.init()
--让第一个灯显示红色
ws2812.write(string.char(0,255,0))
--让第一个灯显示红色,第二个灯显示绿色
ws2812.write(string.char(0,255,0, 255,0,0))
--让第一个灯显示红色,第二个灯显示绿色,第三个灯显示蓝色
ws2812.write(string.char(0,255,0, 255,0,0, 0,0,255))
--依次类推

下面是一个有30个灯珠的ws2812灯带实现彩色变色流水灯的代码

ws2812.init()
i, buffer = 0, ws2812.newBuffer(30,3)
buffer:fill(0,0,0)
r = 255
b = 0
g = 255
tmr.alarm(0,30,1,function()
    i = i + 1
    buffer:fade(2)
    buffer:set(i % buffer:size() + 1, g , r , b )
    r = r - 4 
    b = b + 8
    g = g - 8
    ws2812.write(buffer)
end)

不流水,且显示纯色的代码

ws2812.init()
i, buffer = 0, ws2812.newBuffer(30,3)
tmr.alarm(0,30,1,function()
    buffer:fill(0255, 0)--红色
    ws2812.write(buffer)
end)

你可能感兴趣的:(嵌入式)