我写了一段简单的代码来测试我的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/

10-14 07:07