// Define pin untuk LED
const int ledPins[] = {1, 2, 3, 4};
// Define pin untuk switch
const int switchPin1 = 11;
const int switchPin2 = 10;
// Variabel untuk menyimpan status switch
int switchState1 = 0;
int switchState2 = 0;
void setup() {
// Set pin mode untuk LED
for (int i = 0; i < 4; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // Matikan LED saat setup
}
// Set pin mode untuk switch
pinMode(switchPin1, INPUT);
pinMode(switchPin2, INPUT);
}
void loop() {
// Baca status switch
switchState1 = digitalRead(switchPin1);
switchState2 = digitalRead(switchPin2);
// Kondisi 1: Led berkedip jika tombol pertama ditekan
if (switchState1 == HIGH) {
blinkLEDs();
}
// Kondisi 2: Led berjalan dari kanan ke kiri jika tombol dua ditekan
else if (switchState2 == HIGH) {
scrollLEDs(true);
}
// Kondisi 3: Led berjalan dari kiri ke kanan jika tombol satu ditekan
else if (switchState1 == LOW && switchState2 == LOW) {
scrollLEDs(false);
}
// Kondisi 4: Led berjalan dari kiri ke kanan jika tombol dua ditekan lagi
else if (switchState1 == LOW && switchState2 == HIGH) {
scrollLEDs(false);
}
// Kondisi 5: Led berkedip jika tombol dua ditekan lagi
else if (switchState1 == LOW && switchState2 == LOW) {
blinkLEDs();
}
// Kondisi 6: Led dimatikan jika tombol dua ditekan lagi
else if (switchState1 == HIGH && switchState2 == HIGH) {
turnOffAllLEDs();
}
}
void turnOffAllLEDs() {
for (int i = 0; i < 4; i++) {
digitalWrite(ledPins[i], LOW);
}
}
void blinkLEDs() {
for (int i = 0; i < 4; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(500);
turnOffAllLEDs();
delay(500);
}
void scrollLEDs(bool leftToRight) {
for (int i = 0; i < 4; i++) {
int index = leftToRight ? i : 3 - i;
digitalWrite(ledPins[index], HIGH);
delay(200);
digitalWrite(ledPins[index], LOW);
}
}