当前位置: 移动技术网 > IT编程>开发语言>Java > NodeMcu LED闪烁 自带LED闪烁 点灯仪式

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

2020年10月10日  | 移动技术网IT编程  | 我要评论
-- 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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网