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次后停止)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容