欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-03 17:10:19
-- 2020年10月10日 刘庆 lqjava.com-- 该工具类可以帮助大家快速的使用led闪烁功能LEDBlinker = { LED1 = { pin = 0, timer = tmr.create(), bright = function() LEDBlinker.bright(LEDBlinker.LED1.pin,LEDBlinker.LED1.timer); end, bli...
-- 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次后停止)

本文地址:https://blog.csdn.net/lq545209147/article/details/108992656

相关标签: nodemcu lua gpio