Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在使用Lua时NodeMCU会反向触发gpio?_Lua_Esp8266_Gpio_Nodemcu - Fatal编程技术网

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

为什么在使用Lua时NodeMCU会反向触发gpio?,lua,esp8266,gpio,nodemcu,Lua,Esp8266,Gpio,Nodemcu,将Lua和GPIO模块与myNodeMCU一起使用时,my的高值和低值发生相反的变化 我从NodeMCU自定义版本下载了我的版本: 要打开ESP8266上的蓝色LED,通常将GPIO引脚0设置为高。对我来说,我必须把它调低 这就是我在串行控制台中点亮蓝色LED所执行的操作: gpio.write(0, gpio.LOW) 如果我把这个引脚直接接地,它也会点亮我认为正确的蓝色LED 是什么导致我的低值和高值在NodeMCU中被错误读取?这是正常的-车载LED以低值点亮,以高值熄灭。 我已经在Lu

将Lua和
GPIO
模块与my
NodeMCU
一起使用时,my的高值和低值发生相反的变化

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

要打开
ESP8266
上的蓝色LED,通常将
GPIO
引脚0设置为高。对我来说,我必须把它调低

这就是我在串行控制台中点亮蓝色LED所执行的操作:

gpio.write(0, gpio.LOW)
如果我把这个引脚直接接地,它也会点亮我认为正确的蓝色LED


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

这是正常的-车载LED以低值点亮,以高值熄灭。 我已经在Lua和Arduino中对其进行了编程,车载LED的工作方式相同


尝试将常规LED连接到同一引脚。您会注意到它是相反的——它将以高值打开,以低值关闭

高表示引脚设置为电源电压(它是“源”电压),低表示它设置为0V(它是“陷”电压)

假设该电路板与大多数电路板一样接线,这是LED的大致示意图(请注意,gpio.write中的“0”表示每个电路板的GPIO16硬件引脚):


您可以看到二极管“指向”电流流过的方向,以便二极管发光,即“朝向”GPIO16。因此,要使电流流动,您需要将GPIO16设置为低(0V),以便存在电压差。否则,二极管的两侧都是3.3V,没有电流。

您是正确的,连接LED的工作方式与我预期的一样。另一方面,我连接了一个继电器,我看到它在
时打开,在
时关闭。这就是一些继电器的工作方式。将其置于低位以打开。通常继电器有3个电源插脚。VIN、NC、否。如果您想在pin高时打开设备,只需在NC和NO之间移动一根电缆即可。