const int sw = 2;
const int ledA = 9;
const int ledB = 10;
const int ledC = 11;
int i = 0;
int val = 0;
int old_val = 0;
int state = 0;
void setup() {
pinMode(sw, INPUT);
pinMode(ledA, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(ledC, OUTPUT);
}
void loop() {
val = digitalRead(sw);
if ((val == HIGH) && (old_val == LOW)) {
state = 1 - state;
delay(10);
if (state == 1) {
for (i = 0; i < 256; i++) {
analogWrite(ledA, i);
delay(5);
}
for (i = 0; i < 256; i++) {
analogWrite(ledB, i);
delay(5);
}
while (digitalRead(sw) == LOW) {
for (i = 0; i < 256; i++) {
analogWrite(ledC, i);
delay(5);
}
delay(800);
for (i = 255; i > -1; i--) {
analogWrite(ledC, i);
delay(5);
}
delay(800);
}
}
else {
for (i = 255; i > -1; i--) {
analogWrite(ledA, i);
analogWrite(ledB, i);
analogWrite(ledC, i);
delay(5);
}
}
}
old_val = val;
}