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

时间:2017-09-07 04:29:47

标签: lua esp8266 gpio nodemcu

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

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

要打开ESP8266上的蓝色LED,通常将GPIO引脚0设置为高电平。发生在我身上的是我必须把它设置得低。

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

gpio.write(0, gpio.LOW)

如果我把这个引脚直接接地,它也会点亮我认为正确的蓝色LED。

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

2 个答案:

答案 0 :(得分:2)

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

尝试将常规LED连接到同一个引脚。您会注意到它是反向的 - 它将以高值打开,而以低值打开。

答案 1 :(得分:1)

HIGH表示引脚设置为电源电压("源电压为#34;电压),LOW表示设置为0V(#34; sink"电压)。

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

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