// Super Simple Mood Lamp
// Automatically cycles through rainbow colors
int redPin = 9;
int greenPin = 10;
int bluePin = 11;
// Starting color: Red
int redValue = 255;
int greenValue = 0;
int blueValue = 0;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
// Red → Yellow (Red + Green)
while (greenValue < 255) {
greenValue++;
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
delay(10);
}
// Yellow → Green (Red goes away)
while (redValue > 0) {
redValue--;
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
delay(10);
}
// Green → Cyan (Green + Blue)
while (blueValue < 255) {
blueValue++;
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
delay(10);
}
// Cyan → Blue (Green goes away)
while (greenValue > 0) {
greenValue--;
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
delay(10);
}
// Blue → Magenta (Blue + Red)
while (redValue < 255) {
redValue++;
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
delay(10);
}
// Magenta → Red (Blue goes away)
while (blueValue > 0) {
blueValue--;
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
delay(10);
}
}