Difference between revisions of "Lesson 7--Microduino “RGB LED”"

From Microduino Wiki
Jump to: navigation, search
(Program)
(Program)
Line 35: Line 35:
 
void setup()
 
void setup()
 
{
 
{
  pinMode(redPin, OUTPUT);
+
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
+
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);   
+
  pinMode(bluePin, OUTPUT);   
 
}
 
}
 
void loop()
 
void loop()
 
{
 
{
  setColor(255, 0, 0);  // Red
+
    setColor(255, 0, 0);  // Red
  delay(1000);
+
    delay(1000);
  setColor(0, 255, 0);  // Green
+
    setColor(0, 255, 0);  // Green
  delay(1000);
+
    delay(1000);
  setColor(0, 0, 255);  // Blue
+
    setColor(0, 0, 255);  // Blue
  delay(1000);
+
    delay(1000);
  setColor(255, 255, 0);  // Yellow
+
    setColor(255, 255, 0);  // Yellow
  delay(1000);   
+
    delay(1000);   
  setColor(80, 0, 80);  // Purple
+
    setColor(80, 0, 80);  // Purple
  delay(1000);
+
    delay(1000);
  setColor(255, 255, 255);// White  
+
    setColor(255, 255, 255);// White  
  delay(1000);
+
    delay(1000);
  setColor(0, 0, 0);  //Black
+
    setColor(0, 0, 0);  //Black
  delay(1000);
+
    delay(1000);
  for(int i=0;i<255;i+=5)//Red coming on
+
    for(int i=0;i<255;i+=5)//Red coming on
  {
+
    {
     setColor(i, 0, 0);   
+
        setColor(i, 0, 0);   
     delay(30);
+
        delay(30);
  }
+
    }
  delay(100);
+
    delay(100);
  for(int i=255;i>0;i-=5)//Red coming off
+
    for(int i=255;i>0;i-=5)//Red coming off
  {
+
    {
     setColor(i, 0, 0);   
+
        setColor(i, 0, 0);   
     delay(30);
+
        delay(30);
  }
+
    }
  delay(100);
+
    delay(100);
  for(int i=0;i<255;i+=5)//Blue coming on
+
    for(int i=0;i<255;i+=5)//Blue coming on
   {
+
  {
     setColor(0, i, 0);  
+
        setColor(0, i, 0);  
     delay(30);  
+
        delay(30);  
  }
+
    }
  delay(100);
+
    delay(100);
  for(int i=255;i>0;i-=5)//Blue coming off
+
    for(int i=255;i>0;i-=5)//Blue coming off
  {
+
    {
     setColor(0, i, 0);   
+
        setColor(0, i, 0);   
     delay(30);
+
        delay(30);
  }
+
    }
  delay(100);
+
    delay(100);
  for(int i=0;i<255;i+=5)//Green coming on
+
    for(int i=0;i<255;i+=5)//Green coming on
  {
+
    {
     setColor(0, 0, i);   
+
        setColor(0, 0, i);   
     delay(30);   
+
        delay(30);   
  }
+
    }
  delay(100);
+
    delay(100);
  for(int i=255;i>0;i-=5)//Green coming off
+
    for(int i=255;i>0;i-=5)//Green coming off
  {
+
    {
     setColor(0, 0, i);   
+
        setColor(0, 0, i);   
     delay(30);
+
        delay(30);
  }
+
    }
  delay(100);
+
    delay(100);
 
}
 
}
 
void setColor(int red, int green, int blue)//Color display program
 
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(redPin, 255-red); //A total of anode RGB, low level light red LED
  analogWrite(greenPin, 255-green);
+
    analogWrite(greenPin, 255-green);
  analogWrite(bluePin, 255-blue);   
+
    analogWrite(bluePin, 255-blue);   
 
}
 
}
 
</source>
 
</source>

Revision as of 09:32, 2 July 2015

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