const int red = 5;
const int green = 6;
const int blue = 9;
int lastState = LOW;
int r = 0; //red
int g = 0; //green
int b = 0; //blue
int dir = 0;
int led = 11;
int b1, b2; // buttons
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
for (int i = 11; i <= 18; i++) {
pinMode(i, OUTPUT);
}
}
void loop() {
b1 = digitalRead(2);
b2 = digitalRead(3);
if (b1 == HIGH) {
dir = 1;
} else {
dir = 0;
}
digitalWrite(led, LOW);
if (dir == 1 && led < 18) {
led++;
} else if (dir == 1 && led == 18) {
led = 11;
}
digitalWrite(led, HIGH);
delay(200);
if(b2 == HIGH && lastState == LOW) {
function(led, 1);
}
if (b2 == HIGH && lastState == HIGH) {
function(led, 0);
}
lastState = b2;
}
void function(int pin, int sw) {
if(pin == 11 && sw == 1) {
digitalWrite(red, HIGH);
} else if (pin == 11 && sw == 0) {
digitalWrite(red, LOW);
}
if (pin == 12) {
if (pin == 12 && sw == 1 || sw == 0){
r = r +5;
}else if (r == 255){
r = 0;
}
analogWrite(red, r);
}
if (pin == 13 && sw == 0) {
digitalWrite(green, HIGH);
} else if (pin == 13 && sw == 1) {
digitalWrite(green, LOW);
} if (pin == 14) {
if (pin == 14 && sw == 1 || sw == 0) {
g = g+5;
} else if (g = 255) {
g = 0;
}
analogWrite(green, g);
}
if(pin == 15 && sw == 0) {
digitalWrite(blue, HIGH);
} else if (pin == 15 && sw == 1) {
digitalWrite(blue, LOW);
} if (pin == 16) {
if (pin == 16 && sw == 1 || sw == 0) {
b = b+5;
} else if (b == 255) {
b = 0;
}
analogWrite(blue, b);
}
if(pin == 17) {
analogWrite(red, 255);
analogWrite(green, 255);
analogWrite(blue, 255);
} else if (pin == 18) {
analogWrite(red, 0);
analogWrite(green, 0);
analogWrite(blue, 0);
}
}
Hi I just want to make it shorter is it possible to make it shorter by using switch case in void function() {
?