我写了一段简单的代码来测试我的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实际上会闪烁。为什么会这样?我该怎么修?
任何帮助都将不胜感激!
更新:
当我完全拔下红线时,程序按预期工作,但现在,当我重新插入时,它会像这样闪烁:
白色
红色
白色
红色
现在有什么问题?
最佳答案
你的问题是你没有关掉红色的发光二极管。关意味着它需要一个HIGH
在引脚上,因为你有一个共同的阳极配置,所以当电压LOW
(不是HIGH
)时,LED元件会亮起。
你正在闪烁蓝色和绿色的输出,但红色的引脚一直很低。所以这意味着它是开的(因为公共阳极在+5V)。这是因为蓝色+绿色+红色=白色(当蓝色和绿色输出LOW
时),而红色单独明显是红色(当蓝色和绿色输出HIGH
时)。
所以加载项:
digitalWrite(redled, HIGH);
关于c - 为什么此代码会使led发光为红色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27890141/