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);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM