NodeMcu LED闪烁 自带LED闪烁 点灯仪式

-- 2020年10月10日 刘庆 lqjava.com
-- 该工具类可以帮助大家快速的使用led闪烁功能
LEDBlinker = {
    LED1 = {
        pin = 0,
        timer = tmr.create(),
        bright = function()
            LEDBlinker.bright(LEDBlinker.LED1.pin,LEDBlinker.LED1.timer);
        end,
        blink = function(rate,num)
            LEDBlinker.blink(LEDBlinker.LED1.pin,LEDBlinker.LED1.timer,rate,num);
        end,
            
    },
    LED2 = {
        pin = 4,
        timer = tmr.create(),
        bright = function()
            LEDBlinker.bright(LEDBlinker.LED2.pin,LEDBlinker.LED2.timer);
        end,
        blink = function(rate,num)
            LEDBlinker.blink(LEDBlinker.LED2.pin,LEDBlinker.LED2.timer,rate,num);
        end,
    },
    init = function()
        gpio.mode(LEDBlinker.LED1.pin, gpio.OUTPUT);
        gpio.mode(LEDBlinker.LED2.pin, gpio.OUTPUT);
        gpio.write(LEDBlinker.LED1.pin,gpio.HIGH);
        gpio.write(LEDBlinker.LED2.pin,gpio.HIGH);
    end,
    unregister = function(pin,timer)
        timer:unregister();
        gpio.write(pin,gpio.HIGH);
    end,
    
    bright = function(pin,timer)
        LEDBlinker.unregister(pin,timer);
        gpio.write(pin,gpio.LOW);
    end,
    
    blink = function(pin,timer,rate,num)
        if(rate == nil) then rate = 500; end;
        LEDBlinker.unregister(pin,timer);
        timer:register(rate, tmr.ALARM_AUTO, function (t)
            gpio.write(pin,gpio.LOW);
            tmr.delay(1000 * (rate / 2));
            gpio.write(pin,gpio.HIGH);
            if(num ~= nil) then
                num = num - 1;
                if(num == 0) then
                    LEDBlinker.unregister(pin,timer);
                end
            end
            
        end)
        timer:start()
    end

}
LEDBlinker.init();--gpio初始化
LEDBlinker.LED1.bright(); --LED1 常亮
LEDBlinker.LED1.blink(); --LED1 闪烁 (每0.5秒闪烁一次)
LEDBlinker.LED1.blink(1000); --LED1 闪烁 (每1秒闪烁次)
LEDBlinker.LED1.blink(1000,3); --LED1 闪烁 (每1秒闪烁次,闪烁3次后停止)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java小庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值