为什么此代码会使 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);
我写了这段简单的代码来测试我的 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);