I'm new to Arduino, and I'm trying to make a rather complex code. Can you help me out on fixing this ineffective and inefficient code? like using different structures or using a different type of variable.
EDIT: I'm trying to make a mode switcher, it'll change the mode when I press the button.
const int butt1 = 6;
const int butt2 = 8;
const int led1 = 2;
const int led2 = 3;
const int led3 = 5;
boolean latcher;
int mode;
boolean locker;
void setup() {
pinMode(butt1, INPUT);
pinMode(butt2, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
mode = 0;
Serial.begin(9600);
Serial.println(mode);
}
void loop() {
boolean button1 = digitalRead(butt1);
boolean button2 = digitalRead(butt2);
if(button2 == HIGH && mode == 0 && locker == 0){
mode = 1;
locker = 1;
delay(100);
Serial.println(mode);
}
if(button2 == HIGH && mode == 1 && locker == 0){
mode = 2;
locker = 1;
delay(100);
Serial.println(mode);
}
if(button2 == HIGH && mode == 2 && locker == 0){
mode = 3;
locker = 1;
delay(100);
Serial.println(mode);
}
if(button2 == HIGH && mode == 3 && locker == 0){
mode = 4;
locker = 1;
delay(100);
Serial.println(mode);
}
if(button2 == HIGH && mode == 4 && locker == 0){
mode = 5;
locker = 1;
delay(100);
Serial.println(mode);
}
if(button2 == HIGH && mode == 5 && locker == 0){
mode = 0;
locker = 1;
delay(100);
Serial.println(mode);
}
//looping the menu
if(mode > 6 && locker == 0){
mode = 0;
delay(10);
Serial.println(mode);
}
//detect the button when released
if(button2 == LOW){
if(mode >= 0 && locker > 0){
locker = 0;
delay(100);
}
}
//mode menu
if(mode == 0){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
if(mode == 1){
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}
if(mode == 2){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
}
if(mode == 3){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
}
if(mode == 4){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
}
if(mode == 5){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
}
}
thank you!