我正在玩Arduino Uno和RGB LED灯条(Ikea Dioder 4条,只有一条连接)。将255写入一种或两种颜色时,主要和次要颜色看起来很好。问题是当我需要白光(例如所有三个LED上的255)时,它就会关闭而不是变成完全白色。
我有一个连接到Arduino的以太网屏蔽,以及一个独立的12V直流电源。当我将电源连接到Arduino时,它可以正常工作,但是调节器变得非常热(已知问题)。所以我将LED直接连接到12V电源(它们的额定值为12V,Ikea的额定值为12V)。只有这会导致问题。
在下面的程序中,我可以非常清楚地看到它。代码应该执行以下操作:淡入淡出;淡黄色;淡化为白色;重复。前两个很好,但是当它褪色到白色的时候,它会变成黑色而不是黑色。它只是关闭。我不明白为什么。
int redPin = 3;
int greenPin = 5;
int bluePin = 6;
int color[] = {3, 5, 6};
int i = 0;
int j = 0;
void setup(){
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop(){
for(i=0;i<=2;i++)
{
for(j=0;j<=255;j++)
{
analogWrite(color[i],j);
delay(5);
}
}
delay(1000);
analogWrite(redPin, 0);
analogWrite(bluePin, 0);
analogWrite(greenPin, 0);
}
答案 0 :(得分:1)
由于它工作正常,然后从Arduino供电,我想这是硬件,而不是软件问题。 Arduino端口提供约40mA电流,而Dioder的每种颜色同步约140mA。您是否使用任何放大器,如FET或ULN2003?你可以张贴你的原理图吗?
答案 1 :(得分:0)
通过将适配器的IC 和( - )侧的GND连接到Arduino的GND,问题已经解决了(我认为)。