我编写了这段简单的代码来测试我的 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
在引脚上,因为您有一个公共(public)阳极配置,所以当电压为 LOW
(不是 HIGH
).
您正在闪烁蓝色和绿色输出,但红色引脚一直处于低电平。所以这意味着它是开着的(因为共阳极是+5V)。这是因为蓝色+绿色+红色 = 白色(当蓝色和绿色输出为 LOW
时),而单独的红色显然是红色(当蓝色和绿色输出为HIGH
时) ).
所以在setup()
中加入:
digitalWrite(redled, HIGH);
关于c - 为什么此代码会使 LED 发红光?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27890141/