#define CLK 2
#define DT 3
const int ledPins[8] = {5, 6, 7, 8, 9, 10, 11, 12};
int ledIndex = 0;
int lastStateCLK;
void setup() {
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
for (int i = 0; i < 8; i++) {
pinMode(ledPins[i], OUTPUT);
}
lastStateCLK = digitalRead(CLK);
updateLEDs();
}
void loop() {
int currentStateCLK = digitalRead(CLK);
if (currentStateCLK != lastStateCLK) {
if (digitalRead(DT) != currentStateCLK) {
ledIndex++;
} else {
ledIndex--;
}
if (ledIndex > 7) ledIndex = 0;
if (ledIndex < 0) ledIndex = 7;
updateLEDs();
}
lastStateCLK = currentStateCLK;
}
void updateLEDs() {
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], (i == ledIndex) ? HIGH : LOW);
}
}