#define RED 3
#define GREEN 5
#define BLUE 6
enum Color{
red=1,
orange,
yellow,
green,
cyan,
blue,
violet
};
void setup() {
setColorRGB(255,0,0);
delay(1000);
setColorRGB(0,255,0);
delay(1000);
setColorRGB(0,0,255);
delay(1000);
for(int k=0;k<3;k++){
for(int i=red;i!=violet;i++){
setColor(static_cast<Color>(i));
delay(200);
}
}
}
void loop() {
riseColor(15);
}
void setColorRGB(int r, int g, int b){
analogWrite(RED,r);
analogWrite(GREEN,g);
analogWrite(BLUE,b);
}
void setColor(enum::Color color){
switch(color){
case red:
setColorRGB(255,0,0);
break;
case orange:
setColorRGB(255,128,0);
break;
case yellow:
setColorRGB(255,255,0);
break;
case green:
setColorRGB(0,255,0);
break;
case cyan:
setColorRGB(0,255,255);
break;
case blue:
setColorRGB(0,0,255);
break;
case violet:
setColorRGB(255,0,255);
break;
}
}
void riseColor(int speed){
setColorRGB(255,0,0);
for (int i=0;i<=255;i++){
setColorRGB(255,i,0);
delay(speed);
}
for (int i=255;i>=0;i--){
setColorRGB(i,255,0);
delay(speed);
}
for (int i=0;i<=255;i++){
setColorRGB(0,255,i);
delay(speed);
}
for (int i=255;i>=0;i--){
setColorRGB(0,i,255);
delay(speed);
}
for (int i=0;i<=255;i++){
setColorRGB(i,0,255);
delay(speed);
}
for (int i=255;i>=0;i--){
setColorRGB(255,0,i);
delay(speed);
}
}