为什么此代码会使 LED 发红光?

Why does this code make an led glow red?

我写了这段简单的代码来测试我的 arduino 和 RGB led。

int redled=11;
int blueled=10;
int greenled=9;

void setup()
{
  pinMode(redled, OUTPUT);
  pinMode(blueled, OUTPUT);
  pinMode(greenled, OUTPUT);
}

void loop()
{
  digitalWrite(greenled, HIGH);
  digitalWrite(blueled, HIGH);
  delay(1000);
  digitalWrite(greenled, LOW);
  digitalWrite(blueled, LOW);
  delay(1000);
}

这是一张图片:

(220Ω 电阻,如果您想知道的话。)

如您所见,我已将绿色和蓝色编码为闪烁,但在我将其上传到我的 arduino 后,红色 LED 实际上闪烁。为什么会这样?我该如何解决?

如有任何帮助,我们将不胜感激!

更新:

当我完全拔掉红线时,程序按预期运行,但现在,当我重新插入时,它会像这样闪烁:

白色 红色的 白色的 红色

现在是什么问题?

你的问题是你没有关闭红色 LED。关闭意味着它需要一个 HIGH 在引脚上,因为你有一个共阳极配置,所以 LED 元件在电压为 LOW(不是 HIGH)时亮起。

你正在闪烁蓝色和绿色输出,但红色引脚一直处于低电平。所以这意味着它是开着的(因为共阳极是+5V)。这是因为蓝+绿+红=白(当蓝绿输出为LOW时),而单独的红色显然是红色(当蓝绿输出为HIGH时)。

所以加入setup():

 digitalWrite(redled, HIGH);