Lesson 7--Microduino “RGB LED”

From Microduino Wiki
Revision as of 13:41, 22 April 2014 by Jasonsheng (talk) (Program)
Jump to: navigation, search
Language: English  • 中文

Objective

You have learned several LED experiment, then go on studying the RGB LED that is display different color by a RGB LED, including the breathing lamp's effect.

Equipment

RGB

RGB LED contains three LEDs, one is red, the other is green and another it blue. By controlling three LED's brightness, you can mix up almost any color you want.

Lesson7-RGB.jpg

Connection method

  • Method 1: The longest lead wire (anode) will be connected to +5 V. The other three pins are connected the series resistance of 220Ω then connected to Microduino PWM output port. The resistance use to prevent too much current flows and burn the LED.
  • Method 2: RGB anode through 220Ω resistor connect to Vcc, the other three pins connected to the PWM output port. Three LED share a resistance, then the brightness dimmed.

Experimental schematic

The following connection uses method 1 and uses D5,D6,D11.

Lesson7-schematic.jpg

Program

int redPin = 11;
int greenPin = 5;
int bluePin = 6;
void setup()
{
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);  
}
void loop()
{
  setColor(255, 0, 0);  // Red
  delay(1000);
  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(255, 255, 255);// White 
  delay(1000);
  setColor(0, 0, 0);  //Black
  delay(1000);
  for(int i=0;i<255;i+=5)//Red coming on
  {
     setColor(i, 0, 0);  
     delay(30);
  }
  delay(100);
  for(int i=255;i>0;i-=5)//Red coming off
  {
     setColor(i, 0, 0);  
     delay(30);
  }
  delay(100);
  for(int i=0;i<255;i+=5)//Blue coming on
   {
     setColor(0, i, 0); 
     delay(30); 
  }
  delay(100);
  for(int i=255;i>0;i-=5)//Blue coming off
  {
     setColor(0, i, 0);  
     delay(30);
  }
  delay(100);
  for(int i=0;i<255;i+=5)//Green coming on
  {
     setColor(0, 0, i);  
     delay(30);  
  }
  delay(100);
  for(int i=255;i>0;i-=5)//Green coming off
  {
     setColor(0, 0, i);  
     delay(30);
  }
  delay(100);
}
void setColor(int red, int green, int blue)//Color display program
{
  analogWrite(redPin, 255-red); //A total of anode RGB, low level light red LED
  analogWrite(greenPin, 255-green);
  analogWrite(bluePin, 255-blue);  
}

Program custom setColor function and invoked in loop directly which make the program looks clean and clear.

Here just list a few kinds of color, you can get color value through other colors modulus software, such as PhotoShop.

Result

In a light can be seen on red, green, blue, yellow, purple, black, white, and effect like a breathing lamp .

Video