ESP8266 ESP-01内置LED能否常亮?相关代码问题咨询
解决ESP8266 ESP-01内置LED持续常亮的问题
这问题我之前折腾ESP-01的时候也踩过坑,核心原因是ESP-01的内置LED引脚逻辑和Arduino Uno完全相反!
先搞清楚差异:
- Arduino Uno的
LED_BUILTIN是高电平触发:输出HIGH时LED点亮,LOW时熄灭。 - 而ESP8266 ESP-01的内置LED是低电平触发:引脚输出
LOW时LED导通点亮,输出HIGH时LED断电熄灭。这是因为它的LED是接在GPIO1(TX引脚)和VCC之间的,需要引脚拉低才能形成回路。
正确的常亮代码:
你只需要把输出电平改成LOW就行,代码非常简单:
void setup() { pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); // 关键:用LOW替代HIGH } void loop() { // 空循环即可,不需要任何额外操作 }
为什么你的闪烁代码能工作?
看你提供的闪烁代码:
void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, LOW); delay(1000); digitalWrite(LED_BUILTIN, HIGH); delay(2000); }
这里其实已经体现了逻辑:LOW时亮1秒,HIGH时灭2秒。所以要常亮的话,只需要在初始化时把引脚固定在LOW状态就可以了,不需要循环里反复操作。
内容的提问来源于stack exchange,提问作者Patrik Fröhler
相关产品推荐
相关产品推荐

