新NodeMCU gpio.pulse模块中循环和计数参数的含义
2018-2-17 5:22:22
收藏:0
阅读:100
评论:1
我想使用ESP8266生成两个可变频率的脉冲训练来步进一对步进电机。新的gpio.pulse模块似乎非常理想,但我无法理解NodeMCU文档中提供的一些信息:
- 计数和循环允许简单的循环。当计有计数和循环的状态完成时,下一个状态在循环处(前提是计数未减至零)。第一个状态是状态1。
我理解一个指令数组是从一个表中构建的,但是参数count和loop的描述却不容易理解。
pulser = gpio.pulse.build( {
{ [1] = gpio.HIGH, [2] = gpio.LOW, delay=100000 },
{ [1] = gpio.LOW, [2] = gpio.HIGH, delay=100000, loop=1, count=100, min=90000, max=110000 }
})
如果我尝试运行文档中提供的上面的示例,gpio2会产生一种持续100个周期(20秒)的周期为200ms的方波。这在某种程度上似乎是有意义的,但gpio1始终保持低电平。例子没有描述期望什么。
如果我尝试将loop设置为2来尝试一下,两个输出都变高,并保持高10秒钟(当pulser:start回调时)。这让我困惑loop应该怎么做?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

loop键就像goto-它指定下一步应该是什么。如果loop = 1,则它有效地按以下顺序运行步骤:1,2,1,2,1,2,....但是,如果
loop=2,则按以下顺序运行步骤:1,2,2,2,2,2,在你给出的示例中,引脚1应该是与引脚2相反的相位方波。另一件要检查的是你是否将引脚1配置为输出。
我今晚会尝试你的示例并回复你.....
......时间过去了......
我尝试了
gpio.mode(1, gpio.OUTPUT) gpio.mode(2, gpio.OUTPUT) gpio.write(1, gpio.LOW) gpio.write(2, gpio.LOW) pulser = gpio.pulse.build( { { [1] = gpio.HIGH, [2] = gpio.LOW, delay=250000 }, { [1] = gpio.LOW, [2] = gpio.HIGH, delay=250000, loop=1, count=20, min=240000, max=260000 } }) pulser:start(function() print ('done') end)我将输出连接到了D1和D2上的几个LED上,它们闪烁得很漂亮(异相)。
然而,似乎如果你不使用gpio.write在引脚上至少一次,则脉冲输出不起作用。我会修复代码,这样就不需要了。对此我很抱歉。