当我用 NodeMCU
使用Lua和 GPIO
模块时,我的高值和低值反向发生 .
我从NodeMCU自定义版本下载了我的版本:Link
要打开 ESP8266
上的蓝色LED,通常将 GPIO
引脚0设置为高电平 . 对我来说发生的事情是我必须将它设置为低 .
这就是我在串行控制台中执行以点亮蓝色LED的原因:
gpio.write(0, gpio.LOW)
如果我将此引脚直接连接到地,它也会点亮我认为正确的蓝色LED .
是什么导致我的低值和高值在 NodeMCU
中被错误地读取?
2 回答
这是正常的 - 板载LED以低电平值亮起,并以高电平值关闭 . 我已经在Lua和Arduino中对它们进行了编程,并且板载LED以相同的方式工作 .
尝试将常规LED连接到同一个引脚 . 您会注意到它是反向的 - 它将以HIGH值打开,并以LOW值关闭 .
HIGH表示引脚设置为电源电压(“输出”电压),LOW表示设置为0V(“吸收”电压) .
假设这块电路板像大多数电路板一样接线,这是LED的粗略原理图(请注意,gpio.write中的"0"指的是每个diagram here的GPIO16硬件引脚):Diagram of the GPIO16 pin
你可以看到二极管“指向”电流流过它的方向,二极管发光,这是“朝向”GPIO16 . 因此,为了获得电流,您需要将GPIO16设置为低电平(0V),以便存在电压差 . 否则二极管的两侧都处于3.3V且没有电流流过 .