Ardunio控制RGB的LED灯显示彩虹渐变色.

Posted sun_catboy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ardunio控制RGB的LED灯显示彩虹渐变色.相关的知识,希望对你有一定的参考价值。

由于我使用的是共阴极的RGB LED,如果你的是共阳极的,接线的时候要注意一下.

其他没什么不同

//定义RGB色彩的输出I/O
int redPin = 11;
int greenPin = 10;
int bluePin = 9;

//标记颜色变化的方式,增加值还是减小值
bool redBool =false;
bool greenBool=true;
bool blueBool=false;
//颜色值,初始化为0,127,255
int redVal =0;
int greenVal=127;
int blueVal=255;

void setup()
{
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

/**
 * 改变颜色的增减顺序
 */
void changeStatus()
{
   if (redVal==0)
  {
    redBool=true;
  }
  else if (redVal==255)
  {
    redBool=false;
  }

  if (greenVal==0)
  {
    greenBool=true;
  }
  else if (greenVal==255)
  {
    greenBool=false;
  }

  if (blueVal==0)
  {
    blueBool=true;
  }
  else if (blueVal==255)
  {
    blueBool=false;
  }  
}

/**
 * 改变颜色的变化量,增加还是减少
 */
void changeColorVal()
{
    if (redBool)
  {
    redVal++;
  }
  else
  {
    redVal--;
  }
  if (greenBool)
  {
    greenVal++;
  }
  else
  {
    greenVal--;
  }
  if (blueBool)
  {
    blueVal++;
  }
  else
  {
    blueVal--;
  }
}
/**
 * 设置led灯颜色
 */
void setColor(int red, int green, int blue)
{
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);
}
void loop()
{
  //更新颜色变化状态
  changeStatus();
  //更新颜色值
  changeColorVal();
  //设置颜色
  setColor(redVal, greenVal, blueVal);
  delay(50);
}

 

以上是关于Ardunio控制RGB的LED灯显示彩虹渐变色.的主要内容,如果未能解决你的问题,请参考以下文章

arduino两个led灯交替闪烁

求单片机控制rgb灯颜色渐变的代码。控制一个灯就行。颜色要都包括。

Arduino控制RGB灯(WS2812B)

使用 Cortana 语音助手和 Arduino 声音控制 RGB Led 灯!

全彩LED灯

又是一个渐变色生成算法