本帖最后由 沙漠之痕 于 2018-11-7 12:41 编辑
通过使用定时器控制LED闪烁并通过串口打印信息
一.方式1 init.lua文件 LED_Pin=4 gpio.mode(LED_Pin, gpio.OUTPUT) gpio.write(LED_Pin, 0) tmr.alarm(0,2000,1, function() gpio.write(LED_Pin,1-gpio.read(LED_Pin)) print("hello jiangxin") end) init.lua文件结束
使用定时器0, 每2秒执行一次回调函数”function() end” 二. 方式2 下面我们在用另一种方式实现定时器调用函数: 通过关键字”local ”和”function”定义一个本地局部函数LED() ;在定时器的回调函数中调用 init.lua文件: LED_Pin=4 gpio.mode(LED_Pin, gpio.OUTPUT) gpio.write(LED_Pin, 0) local function LED() gpio.write(LED_Pin,1-gpio.read(LED_Pin)) print("hello everyone") end tmr.alarm(0,2000,1, LED) init.lua文件结束 此处只有通过使用print()函数打印观看定时器的运行状态,led 的闪烁状态,实在是贴不上效果了
二. 方式3 重新创建一个init.lua文件当定时时间到时执行打印操作,且只执行一次 init.lua文件 LED_Pin=4 gpio.mode(LED_Pin, gpio.OUTPUT) gpio.write(LED_Pin, 0) local function LED() gpio.write(LED_Pin,1) print("hello tmr0") end tmr.alarm(0,2000,0, LED) init.lua文件结束 下面开始写lua程序,上电打开led;通过2秒后串口打印“hello tmr0” 并熄灭led 看一下led;外接插装的红色led和wifi模块内部蓝色led接的同一个GPIO引脚 通过查看原理图可以GPIO输出高电平,led反而熄灭
使用的函数介绍:
1. tmr.alarm(id, interval_ms, mode, func()) 参数: id: timer id(0-6) interval_ms: 定时时间ms级 mode: 定时器模式 “0” 只运行该定时器 ; “1” 循环运行该定时器 func(): 定时时间到后调用的函数 比如使用定时器0,定时1秒循环打印”hello” : tmr.alarm(0,1000,1,function()print(“hello”)end)
2. print() 直接通过串口打印数据. 使用方式:print(“hello”)打印”hello” data = “ok” print(data) 打印data的内容”ok”
ESP8266 定时器 lua程序源码(单文件).zip
(1.31 KB, 下载次数: 11)
|