Overview
In this lesson, we will program the Arduino for RGB LED control, and make RGB LED emits various colors
Components
- 1 * Arduino UNO
- 1 * USB Cable
- 1 * RGB LED
- 3* 220Ω Resistor
- 1 * Breadboard
- Several jumper wires
Principle
RGB LEDs consist of three LEDs: red, green and blue. These three colored LEDs are capable of producing any color. Tri-color LEDs with red, green, and blue emitters, in general using a four-wire connection with one common lead (anode or cathode).
What we use in this experiment is a common anode RGB LED. The longest pin is the common anode of the three LEDs. The pin is connected to the +5V pin of the Arduino, and the rest pins are connected to pin D9, D10, and D11 of the Arduino with a current limiting resistor between.
In this way, we can control the color of an RGB LED by 3-channel PWM signals.
Procedures
Step 1: Build the circuit
Step 2: Program
/*********************************************************** File name: 09_rgbLed.ino Description:Control the RGB LED emitting red, green, blue, yellow, white and purple light, then the RGB LED will be off, each state continues 1s, after repeating the above procedure. Website: www.adeept.com E-mail: support@adeept.com Author: Tom Date: 2015/05/02 *************************************************************/ int redPin = 11; // R petal on RGB LED module connected to digital pin 11 int greenPin = 10; // G petal on RGB LED module connected to digital pin 9 int bluePin = 9; // B petal on RGB LED module connected to digital pin 10 void setup() { pinMode(redPin, OUTPUT); // sets the redPin to be an output pinMode(greenPin, OUTPUT); // sets the greenPin to be an output pinMode(bluePin, OUTPUT); // sets the bluePin to be an output } void loop() // run over and over again { // Basic colors: color(255, 0, 0); // turn the RGB LED red delay(1000); // delay for 1 second color(0,255, 0); // turn the RGB LED green delay(1000); // delay for 1 second color(0, 0, 255); // turn the RGB LED blue delay(1000); // delay for 1 second // Example blended colors: color(255,255,0); // turn the RGB LED yellow delay(1000); // delay for 1 second color(255,255,255); // turn the RGB LED white delay(1000); // delay for 1 second color(128,0,255); // turn the RGB LED purple delay(1000); // delay for 1 second color(0,0,0); // turn the RGB LED off delay(1000); // delay for 1 second } void color (unsigned char red, unsigned char green, unsigned char blue)// the color generating function { analogWrite(redPin, 255-red); // PWM signal output analogWrite(greenPin, 255-green); // PWM signal output analogWrite(bluePin, 255-blue); // PWM signal output }
Step 3: Compile the program and upload to Arduino UNO board
Now, you can see the RGB LED flash red, green, blue, yellow, white and purple light, and then go out. Each state lasts for 1s each time, and the LED flashes colors repeatedly in such sequence.