首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino上的2针RGB LED

Arduino上的2针RGB LED
EN

Stack Overflow用户
提问于 2014-04-14 01:58:16
回答 2查看 15.9K关注 0票数 0

我在设置我的RGB led时遇到了一些问题。它不是普通的阳极,所以它只有2个引脚。不是4。我好像不能把led设置成改变颜色。它只会闪烁红色。我想让led在不同颜色之间循环。感谢您的帮助!

代码语言:javascript
复制
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);  
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-14 03:46:46

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

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

然而,你可以改变他们的‘颜色改变时间’应用PWM到它的Vcc引脚。但从另一方面来说,这让它变得更少了。

票数 3
EN

Stack Overflow用户

发布于 2014-11-29 04:39:31

因为你有一个缓慢的颜色转换,你不能通过PWM控制时间。PWM将以高速率打开和关闭LED。当您施加电压时,这些2针慢/快颜色转换器LED中的颜色转换电路就会亮起。只要通电,程序就会运行。当您将其关闭然后再打开时(除非它正在存储内部数据),它将重置并从其编程周期的开始处开始。

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

如果颜色模式重新开始,那么该LED就会“忘记”它曾经在哪里,并且在每次通电时被重置。

如果它继续它停止的地方(我非常怀疑),那么它有内部NV存储器,你也许能够控制变化的速度,但只能让它变得更慢。

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

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23046248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档