LuatOS的Wiki主页为我们提供不少库和外设的使用方式。其中sys和log基本上是必选的。sys负责嵌入式操作系统任务的创建和调度等任务,加入sys库LuatOS才能够正常运行。
-
local sys = require "sys"
复制代码
而log库可以输出代码信息,方便调试。log可以分为debug、info、warn和error不同等级,可以根据需求屏蔽不同等级的输出,方便了程序调试。
-
log.setLevel("WARN") -- warn以下等级的log不会输出print(log.getLevel())log.debug(PROJECT, "debug message")log.info(PROJECT, "info message")log.warn(PROJECT, "warn message")log.error(PROJECT, "error message")
复制代码
为了保证程序不会跑飞,还可以加入看门狗
-
-- 添加硬狗防止程序卡死wdt.init(15000) -- 初始化watchdog设置为15ssys.timerLoopStart(wdt.feed, 10000) -- 10s喂一次狗
复制代码
通过上面三个库的使用,可以看到LuatOS很容易上手,大大提高了开发效率。
最后,利用温度传感器和PWM配合,完成了一个自适应的风扇调节系统。
-
sys.taskInit(function()
-
local raw = 0
-
local mv = 0
-
while 1 do
-
adc.open(1)
-
sys.wait(500)
-
raw, mv = adc.read(1)
-
log.debug("adc", "adc1", mv)
-
if mv >= 1500 then
-
pwm.open(5, 1000, 100)
-
elseif mv >= 1000 then
-
pwm.open(5, 1000, 80)
-
elseif mv >= 800 then
-
pwm.open(5, 1000, 60)
-
elseif mv >= 500 then
-
pwm.open(5, 1000, 30)
-
elseif mv >= 100 then
-
pwm.open(5, 1000, 20)
-
else
-
pwm.open(5, 1000, 0)
-
end
-
-
adc.close(1)
-
sys.wait(500)
-
end
-
-
end)
复制代码