当使用Lua和GPIO
模块与我的NodeMCU
时,我的高值和低值反向发生。
我从NodeMCU自定义版本下载了我的版本:Link
要打开ESP8266
上的蓝色LED,通常将GPIO
引脚0设置为高电平。发生在我身上的是我必须把它设置得低。
这就是我在串行控制台中执行以点亮蓝色LED的原因:
gpio.write(0, gpio.LOW)
如果我把这个引脚直接接地,它也会点亮我认为正确的蓝色LED。
导致我的低值和高值在NodeMCU
中被错误地读取的原因是什么?
答案 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,没有电流流过。