const int buttonPin = 2;
int buttonState = 0;
int pattern = 0;
void setup() {
DDRD = B11111111;
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
pattern = (pattern + 1) % 5;
delay(200);
}
switch (pattern) {
case 0:
// Pola 1: Menyala satu-satu
PORTD = B10000000;
delay(100);
PORTD = B01000000;
delay(100);
PORTD = B00100000;
delay(100);
PORTD = B00010000;
delay(100);
PORTD = B00001000;
delay(100);
PORTD = B00000100;
delay(100);
PORTD = B00000010;
delay(100);
PORTD = B00000001;
delay(100);
break;
case 1:
// Pola 2: Kelap kelip
PORTD = B11111111;
delay(500);
PORTD = B00000000;
delay(500);
break;
case 2:
// Pola 3: Ganjil genap
PORTD = B10101010;
delay(500);
PORTD = B01010101;
delay(500);
break;
case 3:
// Pola 4: Menyala 3 kanan lalu 3 kiri
PORTD = B11100000;
delay(300);
PORTD = B00011100;
delay(300);
break;
case 4:
// Pola 5: Tubrukan lalu kembali lagi
PORTD = B10000100;
delay(300);
PORTD = B01001000;
delay(300);
PORTD = B00110000;
delay(300);
PORTD = B01001000;
delay(300);
PORTD = B10000100;
delay(300);
break;
}
}