//RGB MOOD LAMP
// Define the pins connected to the RGB LED
const int redPin = 9; // Connect red LED leg to Arduino pin 9 (PWM)
const int greenPin = 10; // Connect green LED leg to Arduino pin 10 (PWM)
const int bluePin = 11; // Connect blue LED leg to Arduino pin 11 (PWM)
// Variables to store current color values
int redValue = 0;
int greenValue = 0;
int blueValue = 0;
void setup() {
// Initialize the pins as outputs
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
// Start with all LEDs off
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
}
void loop() {
// Fade through colors smoothly
// Red to Yellow (increase green)
for (int i = 0; i < 255; i++) {
greenValue++;
analogWrite(greenPin, greenValue);
delay(10); // Adjust delay for desired fading speed
}
// Yellow to Green (decrease red)
for (int i = 0; i < 255; i++) {
redValue--;
analogWrite(redPin, redValue);
delay(10);
}
// Green to Cyan (increase blue)
for (int i = 0; i < 255; i++) {
blueValue++;
analogWrite(bluePin, blueValue);
delay(10);
}
// Cyan to Blue (decrease green)
for (int i = 0; i < 255; i++) {
greenValue--;
analogWrite(greenPin, greenValue);
delay(10);
}
// Blue to Magenta (increase red)
for (int i = 0; i < 255; i++) {
redValue++;
analogWrite(redPin, redValue);
delay(10);
}
// Magenta to Red (decrease blue)
for (int i = 0; i < 255; i++) {
blueValue--;
analogWrite(bluePin, blueValue);
delay(10);
}
}