Hello i am starter with arduino i wrote this code it works but it takes plenty of space and it isnt nice code any idea how can I improve it?
int pinButton = 2;
int LED = 12;
int stateLED = HIGH;//LOW
int stateButton;
int previous = LOW;
String str;
long time = 0;
long debounce = 200;
int pinButton2 = 3;
int LED2 = 11;
int stateLED2 = HIGH;//LOW
int stateButton2;
int previous2 = LOW;
long time2 = 0;
int pinButton3 = 4;
//int LED2 = 11;
int stateLED3 = HIGH;//LOW
int stateButton3;
int previous3 = LOW;
long time3 = 0;
void setup() {
Serial.begin(9600);
pinMode(pinButton, INPUT);
pinMode(LED, OUTPUT);
pinMode(pinButton2, INPUT);
pinMode(LED2, OUTPUT);
pinMode(pinButton3, INPUT);
}
void loop() {
stateButton = digitalRead(pinButton);
stateButton2 = digitalRead(pinButton2);
stateButton3 = digitalRead(pinButton3);
if(Serial.available() > 0)
{
str = Serial.readStringUntil('\n');
Serial.println(str);
if(str.substring(0,2) == "01") {
if(str.substring(2,5) == "ON") {
Serial.println("stateLED HIGH");
stateLED = LOW;//HIGH
digitalWrite(12,LOW);//HIGH
}
else if(str.substring(2,6) == "OFF"){
Serial.println("stateLED LOW");
stateLED = HIGH;//LOW
digitalWrite(12,HIGH);//LOW
}
}
if(str.substring(0,2) == "02") {
if(str.substring(2,5) == "ON") {
Serial.println("stateLED2 HIGH");
stateLED2 = LOW;//HIGH
digitalWrite(11,LOW);//HIGH
}
else if(str.substring(2,6) == "OFF"){
Serial.println("stateLED2 LOW");
stateLED2 = HIGH;//LOW
digitalWrite(11,HIGH);//LOW
}
}
if(str.substring(0,2) == "03") {
if(str.substring(2,5) == "ON") {
Serial.println("stateLED3 HIGH");
stateLED3 = LOW;//HIGH
digitalWrite(LED, LOW);//HIGH
digitalWrite(LED2, LOW);//HIGH
stateLED = LOW;//HIGH
stateLED2 = LOW;//HIGH
}
else if(str.substring(2,6) == "OFF"){
Serial.println("stateLED3 LOW");
stateLED3 = HIGH;//LOW
digitalWrite(LED, HIGH);//LOW
digitalWrite(LED2, HIGH);//LOW
stateLED = HIGH;//LOW
stateLED2 = HIGH;//LOW
}
}
}
if(stateButton == HIGH && previous == LOW && millis() - time > debounce) {
if(stateLED == LOW)//HIGH
{
Serial.println("stateLED LOW");
stateLED = HIGH;//LOW
} else {
Serial.println("stateLED HIGH");
stateLED = LOW; //HIGH
}
time = millis();
}
digitalWrite(LED, stateLED);
previous == stateButton;
if(stateButton2 == HIGH && previous2 == LOW && millis() - time2 > debounce) {
if(stateLED2 == LOW)//HIGH
{
Serial.println("stateLED2 LOW");
stateLED2 = HIGH;//LOW
} else {
Serial.println("stateLED2 HIGH");
stateLED2 = LOW;//HIGH
}
time2 = millis();
}
digitalWrite(LED2, stateLED2);
previous2 == stateButton2;
if(stateButton3 == HIGH && previous3 == LOW && millis() - time3 > debounce) {
if(stateLED3 == LOW)//HIGH
{
Serial.println("stateLED3 LOW");
stateLED3 = HIGH;//LOW
digitalWrite(LED, HIGH);//LOW
digitalWrite(LED2, HIGH);//LOW
stateLED = HIGH;//LOW
stateLED2 = HIGH;//LOW
} else {
Serial.println("stateLED3 HIGH");
stateLED3 = LOW;//HIGH
digitalWrite(LED, LOW);//HIGH
digitalWrite(LED2, LOW);//HIGH
stateLED = LOW;//HIGH
stateLED2 = LOW;//HIGH
}
time3 = millis();
}
previous3 == stateButton3;
}