// Knight Rider
const int LED_MAX = 8;
const int LED[LED_MAX] = {2, 3, 4, 5, 6, 7, 8, 9}; // 8 LEDs
const int POTI = A1; // Poti für Geschwindigkeit
// Geschwindigkeitswerte
const int POTIWERT_MAX = 1023;
const int DURATION_MAX = 510;
const int ANALOGWERT_MAX = 255;
int potiwert, duration, delaywert, fadewert;
int modulo_wert = 2;
void setup() {
Serial.begin(9600);
for (int i=0; i<LED_MAX; i++) {
pinMode(LED[i], OUTPUT);
}
}
void loop() {
potiwert = analogRead(POTI);
duration = map(potiwert, 0, POTIWERT_MAX, 0, DURATION_MAX);
fadewert = POTIWERT_MAX / duration;
for (int i=0; i<LED_MAX; i++) {
Serial.print("potiwert: "); Serial.print(potiwert);
Serial.print(" | duration: "); Serial.print(duration);
Serial.print(" | fadewert: "); Serial.print(fadewert);
digitalWrite(LED[i], HIGH);
if (i>=1) {
Serial.print(" | faded j: ");
for (int j=ANALOGWERT_MAX; j>=0; j--) {
if ((j % fadewert) == 0) {
Serial.print(j);
Serial.print(" ");
analogWrite(LED[i-1], j);
delayMicroseconds(100);
}
}
Serial.println("");
if (duration >= ANALOGWERT_MAX) {
delaywert = duration - ANALOGWERT_MAX;
} else { delaywert = 0; }
} else {
delaywert = DURATION_MAX;
}
delay(delaywert);
digitalWrite(LED[i], LOW);
}
// for (int i=7; i>=0; i--) {
// Serial.println(i);
// digitalWrite(LED[i], HIGH);
// delay(500);
// digitalWrite(LED[i], LOW);
// }
}