视频:
nodeMCU制作RGB三色LED呼吸灯_腾讯视频
原料:
支持nodeMCU的开发板一个
三色LED一个,淘宝购买,没有的话也可以拿三个不同颜色的LED代替
杜邦线4条
面包板(可选)
接线:
LED的红、绿、蓝脚分别接板子的D1、D2、D3
LED的负极接板子的G端(随便找一个)
代码:
local r, g, b = 0, 0, 0
local _r, _g, _b = 0, 0, 0
local tick, _tick = 0
local pinR, pinG, pinB = 1, 2, 3
local MAX = 1023
function led(r,g,b)
-- print("led", r, g, b)
pwm.setduty(pinR,r)
pwm.setduty(pinG,g)
pwm.setduty(pinB,b)
end
function nextColor()
_r, _g, _b = r, g, b
r = math.random(0, 5) * MAX / 5
g = math.random(0, 5) * MAX / 5
b = math.random(0, 5) * MAX / 5
tick = 10--math.random(10, 20)
_tick = tick
end
function update()
if(tick <= 0) then
nextColor()
end
local percent = (_tick - tick) / _tick
local rr = _r + (r - _r) * percent
local gg = _g + (g - _g) * percent
local bb = _b + (b - _b) * percent
led(rr, gg, bb, percent)
tick = tick - 1
end
pwm.setup(pinR,500,MAX)
pwm.setup(pinG,500,MAX)
pwm.setup(pinB,500,MAX)
tmr.alarm(1,100,1,update)
网友评论