// System-2: 2 LEDs & 2 Buttons
// LED1 on while Button1 pressed
// LED2 blinking while Button2 pressed
const int LED1 = 13; // D13 -> PA5 (user LED biasa)
const int LED2 = 12; // D12 (pilih pin bebas yang tersedia)
const int BTN1 = 2; // Button1
const int BTN2 = 3; // Button2
unsigned long previousMillis = 0;
const unsigned long blinkInterval = 500; // ms (LED2 toggle every 500ms)
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(BTN1, INPUT_PULLUP); // tombol ke GND: pressed = LOW
pinMode(BTN2, INPUT_PULLUP);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
}
void loop() {
bool btn1Pressed = (digitalRead(BTN1) == LOW);
bool btn2Pressed = (digitalRead(BTN2) == LOW);
// LED1 mirrors Button1 (on while pressed)
if (btn1Pressed) digitalWrite(LED1, HIGH);
else digitalWrite(LED1, LOW);
// LED2 blinks while Button2 pressed
if (btn2Pressed) {
unsigned long current = millis();
if (current - previousMillis >= blinkInterval) {
previousMillis = current;
digitalWrite(LED2, !digitalRead(LED2)); // toggle
}
} else {
// ensure LED2 off when button not pressed
digitalWrite(LED2, LOW);
// reset timer so blink starts fresh next time pressed
previousMillis = millis();
}
}