| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- --- 模块功能: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
|