首页 文章

为什么NodeMCU在使用Lua时会反向触发gpio?

提问于
浏览
1

当我用 NodeMCU 使用Lua和 GPIO 模块时,我的高值和低值反向发生 .

我从NodeMCU自定义版本下载了我的版本:Link

要打开 ESP8266 上的蓝色LED,通常将 GPIO 引脚0设置为高电平 . 对我来说发生的事情是我必须将它设置为低 .

这就是我在串行控制台中执行以点亮蓝色LED的原因:

gpio.write(0, gpio.LOW)

如果我将此引脚直接连接到地,它也会点亮我认为正确的蓝色LED .

是什么导致我的低值和高值在 NodeMCU 中被错误地读取?

2 回答

  • 1

    这是正常的 - 板载LED以低电平值亮起,并以高电平值关闭 . 我已经在Lua和Arduino中对它们进行了编程,并且板载LED以相同的方式工作 .

    尝试将常规LED连接到同一个引脚 . 您会注意到它是反向的 - 它将以HIGH值打开,并以LOW值关闭 .

  • 2

    HIGH表示引脚设置为电源电压(“输出”电压),LOW表示设置为0V(“吸收”电压) .

    假设这块电路板像大多数电路板一样接线,这是LED的粗略原理图(请注意,gpio.write中的"0"指的是每个diagram here的GPIO16硬件引脚):Diagram of the GPIO16 pin

    你可以看到二极管“指向”电流流过它的方向,二极管发光,这是“朝向”GPIO16 . 因此,为了获得电流,您需要将GPIO16设置为低电平(0V),以便存在电压差 . 否则二极管的两侧都处于3.3V且没有电流流过 .

相关问题