点亮LED
|
|
在NodeMCU中init.lua是定义的系统启动时运行的文件, 相当于以前我们DOS系统里的autoexec.bat文件和linux系统中的rc.local文件,即开机运行的意思。将脚本命名为 init.lua 方便开机直接运行。
GPIO
关于GPIO的文档网站文档,Github文档
GPIO(General Purpose I/O Ports)通用输入输出口,简单的说就是这个开发板上留出的针脚。上面程序中的gpio就是nodeMCU的GPIO模块,用于提供对开发板上GPIO针脚的编程控制 。模块和开发板上的针脚并不一定是一一对应的,如这块板的14口控制蓝色LED是对应模块的第5口。GPIO模块有如下方法
gpio.mode()
原型: gpio.mode(pin, mode,pullup)
作用: 初始化引脚的输入输出模式
参数:
- 引脚io索引
- 引脚模式gpio.OUTPUT,gpio.INPUT或gpio.INT(中断模式)
- 内部上拉方式取值为:gpio.PULLUP or gpio.FLOAT, 默认为gpio.FLOAT(即悬空)
例子: gpio.mode(0, gpio.OUTPUT)
返回值: nil
gpio.read( )
原型: gpio.read(pin)
作用: 读取引脚值
参数: 引脚索引
例子: gpio.read(0)
返回值: 0或1,即高低电位
gpio.write( )
原型: gpio.write(pin, level)
作用: 设置引脚值
参数:
- 引脚索引
- 引脚值gpio.HIGH或gpio.LOW
例子: gpio.write(0, gpio.HIGH)
返回值: nil

由上图可知5,6,7口用于控制蓝红绿三色LED,输出模式,高电平时LED灯亮,当输出模式低电平时灯不亮。
所以点亮LED,首先设置对应IO口的模式为输出模式,然后设置对应IO为高电平,这样即可点亮,简化版的代码:
Timer
上面还用到了定时器模块,定时器用于执行定时任务,不过需要注意的是,Timer在精度上并不高,准确性有限。
tmr.register()
原型: tmr.register([id/ref], interval_ms, mode, func())
作用: 配置定时器并注册回调函数以在到期时调用。
参数:
- 定时器id(0-6,NodeMCU提供7个静态定时器,编号为0-6)
- 间隔时间,最多6870947毫秒
- 定时器模式:
1.tmr.ALARM_SINGLE只执行一次,注册后不必调用 tmr.unregister()进行注销
2.tmr.ALARM_SEMI 手动重复,通过调用tmr.start()重启
3.tmr.ALARM_AUTO 自动重复 - 定时器到时运行的函数
需要注意的是注册后还要调用tmr.start()才会启动定时器
tmr.unregister()
原型: tmr.unregister([id/ref])
作用: 停止并注销定时器
参数:
注册的定时器id
tmr.start( )
原型: tmr.start([id/ref])
作用: 启动定时器
参数:
注册的定时器id
如果启动成功将会返回true
tmr.alarm()
使用和tmr.register()完全一样,不同在于它不用调用tmr.start()手动启动定时器。
…