The code smoothly fades an RGB LED using PWM through 3 different basic colors (red, green and blue).
Hardware
- Arduino Board
- RGB LED
- 3x Resistors 220 Ohm
Schematic
The schematic is very simple. Just connect the common cathod (+) to the GND pin. Then connect the 3 other leads to 3 PWM pins on your Arduino with a 220 Ohm resistor between.Code
#define RED_PIN 9 // where the red pin is connected to
#define GREEN_PIN 10 // where the green pin is connected to
#define BLUE_PIN 11 // where the blue pin is connected to
#define DELAY 20 // 20ms internal delay; increase for slower fades
void setup() {
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
pinMode(RED_PIN, OUTPUT);
}
void loop() {
// fade from green to red
for(int i=0; i<255; i++) {
analogWrite(RED_PIN, i);
analogWrite(GREEN_PIN, 255-i);
analogWrite(BLUE_PIN, 0);
delay(DELAY);
}
// fade from red to blue
for(int i=0; i<255; i++) {
analogWrite(RED_PIN, 255-i);
analogWrite(GREEN_PIN, 0);
analogWrite(BLUE_PIN, i);
delay(DELAY);
}
// fade from blue to green
for(int i=0; i<255; i++) {
analogWrite(RED_PIN, 0);
analogWrite(GREEN_PIN, i);
analogWrite(BLUE_PIN, 255-i);
delay(DELAY);
}
}
References
Fading RGB LED (Arduino)Arduino ColorCrossfader
RGB LEDs
Make an RGB LED Fader


Thanks... work perfect...
ReplyDeletebr
Nice explain
ReplyDeleteGoing to sound a right idiot now! Is there any way to get an led to change from red to blue continuously, holding each colour for a couple of seconds and another led to change from green to yellow, any suggestions would be most welcome.
ReplyDelete