71 lines
1.9 KiB
Lua
71 lines
1.9 KiB
Lua
|
|
--- 模块功能:LED闪灯模块
|
|||
|
|
-- @module led
|
|||
|
|
-- @author openLuat
|
|||
|
|
-- @license MIT
|
|||
|
|
-- @copyright openLuat
|
|||
|
|
-- @release 2018.02.04
|
|||
|
|
module(..., package.seeall)
|
|||
|
|
|
|||
|
|
--- 闪烁指示灯
|
|||
|
|
-- @function ledPin ledPin(1)用pins.setup注册返回的方法
|
|||
|
|
-- @number light light-亮灯时间ms
|
|||
|
|
-- @number dark dark-灭灯时间ms
|
|||
|
|
-- @return nil
|
|||
|
|
-- @usage led.blinkPwm(lenPin,500,500)
|
|||
|
|
-- @usage 调用函数需要使用任务支持
|
|||
|
|
function blinkPwm(ledPin, light, dark)
|
|||
|
|
ledPin(1)
|
|||
|
|
sys.wait(light)
|
|||
|
|
ledPin(0)
|
|||
|
|
sys.wait(dark)
|
|||
|
|
end
|
|||
|
|
--- 等级指示灯
|
|||
|
|
-- @function ledPin ledPin(1)用pins.setup注册返回的方法
|
|||
|
|
-- @number bl 亮灯时间ms
|
|||
|
|
-- @number bd 灭灯时间ms
|
|||
|
|
-- @number cnt 重复次数 (等级的级别,亮灭1次算数字1)
|
|||
|
|
-- @number gap 间隔时间 (每次循环周期的间隔)
|
|||
|
|
-- @return nil
|
|||
|
|
-- @usage led.leveled(ledPin,200,200,4,1000)
|
|||
|
|
-- @usage 调用函数需要使用任务支持
|
|||
|
|
function levelLed(ledPin, bl, bd, cnt, gap)
|
|||
|
|
if not (ledPin and bl and bd and cnt and gap) then return end
|
|||
|
|
for i = 1, cnt do blinkPwm(ledPin, bl, bd) end
|
|||
|
|
sys.wait(gap)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
--- 呼吸灯
|
|||
|
|
-- @function ledPin 呼吸灯的ledPin(1)用pins.setup注册返回的方法
|
|||
|
|
-- @return nil
|
|||
|
|
-- @usage led.breateLed(ledPin)
|
|||
|
|
-- @usage 调用函数需要使用任务支持
|
|||
|
|
function breateLed(ledPin)
|
|||
|
|
-- 呼吸灯的状态、PWM周期
|
|||
|
|
local bLighting, bDarking, LED_PWM = false, true, 18
|
|||
|
|
if bLighting then
|
|||
|
|
for i = 1, LED_PWM - 1 do
|
|||
|
|
ledPin(0)
|
|||
|
|
sys.wait(i)
|
|||
|
|
ledPin(1)
|
|||
|
|
sys.wait(LED_PWM - i)
|
|||
|
|
end
|
|||
|
|
bLighting = false
|
|||
|
|
bDarking = true
|
|||
|
|
ledPin(0)
|
|||
|
|
sys.wait(700)
|
|||
|
|
end
|
|||
|
|
if bDarking then
|
|||
|
|
for i = 1, LED_PWM - 1 do
|
|||
|
|
ledPin(0)
|
|||
|
|
sys.wait(LED_PWM - i)
|
|||
|
|
ledPin(1)
|
|||
|
|
sys.wait(i)
|
|||
|
|
end
|
|||
|
|
bLighting = true
|
|||
|
|
bDarking = false
|
|||
|
|
ledPin(1)
|
|||
|
|
sys.wait(700)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|