const int outRed = 11;
const int outGreen = 10;
const int outBlue = 9;
bool btnState = true;
bool btnPrevState = true;
int ledState = 1;
void setup() {
pinMode(outRed, OUTPUT); //RED
pinMode(outGreen, OUTPUT); //GREEN
pinMode(outBlue, OUTPUT); //BLUE
pinMode(A0, INPUT_PULLUP); //Pushbutton
Serial.begin(9600);
}
void loop() {
btnState = digitalRead(A0);
if (btnState != btnPrevState){
if (btnState == LOW){
ledState++;
Serial.println(ledState);
}
delay(50);
}
btnPrevState = btnState;
switch (ledState){
case 1: //Red
digitalWrite(outRed, HIGH);
digitalWrite(outGreen, LOW);
digitalWrite(outBlue, LOW);
break;
case 2: //Yellow
digitalWrite(outRed, HIGH);
digitalWrite(outGreen, HIGH);
digitalWrite(outBlue, LOW);
break;
case 3: //Magenta
digitalWrite(outRed, HIGH);
digitalWrite(outGreen, LOW);
digitalWrite(outBlue, HIGH);
break;
case 4: //Green
digitalWrite(outRed, LOW);
digitalWrite(outGreen, HIGH);
digitalWrite(outBlue, LOW);
break;
case 5: //Cyan
digitalWrite(outRed, LOW);
digitalWrite(outGreen, HIGH);
digitalWrite(outBlue, HIGH);
break;
case 6: //Blue
digitalWrite(outRed, LOW);
digitalWrite(outGreen, LOW);
digitalWrite(outBlue, HIGH);
break;
case 7: //White
digitalWrite(outRed, HIGH);
digitalWrite(outGreen, HIGH);
digitalWrite(outBlue, HIGH);
break;
case 8: //Rainbow
digitalWrite(outRed, LOW);
digitalWrite(outGreen, LOW);
digitalWrite(outBlue, LOW);
int fadeVal = 1;
for (fadeVal =1; fadeVal<254; fadeVal++){
analogWrite(outGreen, i);
delay(10);
}
for (int i=255; i>2; i++){
analogWrite(outGreen, i);
}
break;
case 9: //Reset
ledState = 1;
break;
}
}