“Lesson 7--Microduino “RGB LED””的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
Pkj讨论 | 贡献
第1行: 第1行:
 +
{{Language|Lesson_7--Control_the_color_of_RGB_LED}}
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-

2014年3月2日 (日) 14:24的版本

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