Arduino上的2针RGB LED

时间:2014-04-13 17:58:16

标签: arduino rgb led

我在设置RGB LED时遇到了一些麻烦。它不是共阳极,因此它只有2个引脚。不是4.我似乎无法设置指示灯来改变颜色。它只会闪烁红色。我希望led能够循环使用颜色。谢谢你的帮助!

int led1 = 2; //Don't worry about the other led variables, they work
int led2 = 7;
int led3 = 9;
int led4 = 12;
int led5 = 13;
int redPin = 5;int greenPin = 4;
int bluePin = 3;

//#define COMMON_ANODE

void setup(){
  pinMode(led1, OUTPUT);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
}

void loop(){
 setColor(0, 255, 0);  // green
  delay(1000);
  setColor(0, 0, 255);  // blue
  delay(1000);
  setColor(255, 255, 0);  // yellow
  delay(1000);  
  setColor(80, 0, 80);  // purple
  delay(1000);
  setColor(0, 255, 255);  // aqua
  delay(1000);

}

 void setColor(int red, int green, int blue){
  #ifdef COMMON_ANODE
    red = 255 - red;
    green = 255 - green;
    blue = 255 - blue;
  #endif
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);  
}

2 个答案:

答案 0 :(得分:3)

首先,这不是一个软件问题。

当遇到问题时,2个固定的LED不能像4个固定的LED一样工作。如果您使用的是带有2个引脚的LED,您可以给它们一个电压并等待它们随时间改变颜色。

但是,你可以改变它们的'换色时间',将PWM应用到它的Vcc引脚。但另一方面,它使它变得更少。

答案 1 :(得分:1)

由于您的换色器较慢,因此无法通过PWM控制时序。 PWM将以高速率打开LED然后关闭。当您施加电压时,那些2针慢/快换色器LED中的变色电路会打开。只要通电,程序就会运行。当您将其关闭然后再打开时(除非它存储内部数据)它将重置并从其编程周期的开始开始。

尝试这个小实验:打开LED并等待5秒钟。注意颜色模式。将其关闭并等待2秒钟。然后再打开它。

如果颜色图案重新开始,则该LED"忘记"它在哪里,并在每次通电时重置。

如果它从中断处继续(我非常怀疑),那么它具有内部NV存储器,您可能能够控制变化速度,但只能使速度变慢。

如果5秒后LED永远不会改变,我不得不说这是一个普通的单色LED。要查看它是否为双色类型,请尝试反转极性。如果你得到另一种颜色,你有我正向反转双色LED。如果没有,你有一个普通的LED。

希望有所帮助!