//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(" ");
}