//LED BLINK
//0922040056 - TO3C

bool btn_1, btn_2, btnPress, blinkState, ledState;
int counter;
int ledPin[]={13,12,11,10,9};
int totalLed = 5;

#define btn1_pin  3
#define btn2_pin  2

void setup() {
  Serial.begin(9600);
  for(int i=0; i<totalLed; i++){
    pinMode(ledPin[i], OUTPUT);
    digitalWrite(ledPin[i], LOW);
  }
  pinMode(btn1_pin, INPUT_PULLUP);
  pinMode(btn2_pin, INPUT_PULLUP);
  ledState = 1;
}

void loop() {
  check_btn1();
  check_btn2();
  runBlink(blinkState, 500);
  if(!blinkState){
    for(int i=0; i<counter; i++){
      digitalWrite(ledPin[i], HIGH);
    }
    showSerial();
    delay(500);
  }
}

//FUNCTION
void check_btn1(){
  btn_1 = !digitalRead(btn1_pin);
  if(btn_1 && !blinkState){
    while(!digitalRead(btn1_pin));
    counter++;
    if(counter>totalLed){
      for(int i=0; i<totalLed; i++){
        digitalWrite(ledPin[i], LOW);
      }
      counter = 0;
    }
  }
}

void check_btn2(){
  btnPress = btn_2;
  btn_2 = !digitalRead(btn2_pin);
  if(btnPress && !btn_2){
    blinkState = !blinkState;
  }
}

void runBlink(bool toggle, int blink_time){
  if(toggle){
    showSerial();
    for(int i=0; i<counter; i++){
      digitalWrite(ledPin[i], ledState);
    }
    ledState = !ledState;
    showSerial;
    delay(500);
  }
}

void showSerial(){
  Serial.println("====================");
  Serial.print("Logika Tombol: ");
  Serial.print(btn_1);
  Serial.println(btn_2);
  Serial.print("Counter: ");
  Serial.println(counter);
  Serial.print("Blink Start/Stop: ");
  Serial.println(blinkState);
  Serial.println("====================");
  Serial.println("  ");
}
$abcdeabcde151015202530fghijfghij
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
led5:A
led5:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2
r5:1
r5:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r