const int numLEDs = 8;
const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9};
const int buttonPin1 = 10;
const int buttonPin2 = 11;
const int buttonPin3 = 12;
const int buttonPin4 = 13;
const int potPin = A0;

int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int potValue = 0;
int pattern = 0;
int delayTime = 100; // Initial delay time

bool allLedsOn = false; // Variabele om bij te houden of alle lampjes aan zijn of niet

void setup() {
  for (int i = 0; i < numLEDs; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
  pinMode(buttonPin3, INPUT);
  pinMode(buttonPin4, INPUT);
  Serial.begin(9600);
}

int check = 0;

void loop() {
  if (check == 0) {
    Serial.println("Knop1: activeert patroon 1");
    Serial.println("Knop2: activeert patroon 2");
    Serial.println("Knop3: activeert patroon 3");
    Serial.println("Knop4: Zorgt er voor dat alle lampjes branden. Voor reseten: duw knop 1, 2 of 3 kort in.");
    Serial.println("Potentiometer: Regelt snelheid van patroon");
    Serial.println("Om het patroon zich te laten herhalen, hou je de drukknop conctant ingedrukt.");
    check = 1;
  }

  buttonState1 = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);
  buttonState3 = digitalRead(buttonPin3); // Update buttonState3
  buttonState4 = digitalRead(buttonPin4); // Update buttonState4
  potValue = analogRead(potPin);
  delayTime = map(potValue, 0, 1023, 50, 500);

  // Rest van de code blijft hetzelfde
  
  if (buttonState1 == HIGH) {  // Als knop 1 is ingedrukt
    // Lampjes één voor één aanzetten met snelheid ingesteld door potentiometer
    for (int i = 0; i < numLEDs; i++) {
      digitalWrite(ledPins[i], HIGH);
      delay(delayTime);
      digitalWrite(ledPins[i], LOW);  // Huidige LED uitzetten voordat de volgende wordt aangezet
    }
  } else if (buttonState2 == HIGH) {  // Als knop 2 is ingedrukt
    // Lampjes aan in de gewenste volgorde met snelheid ingesteld door potentiometer
    for (int i = 0; i < numLEDs / 2; i++) {
      digitalWrite(ledPins[i], HIGH);
      digitalWrite(ledPins[numLEDs - 1 - i], HIGH);
      delay(delayTime);
    }

    for (int i = numLEDs / 2 - 1; i >= 0; i--) {
      digitalWrite(ledPins[i], LOW);
      digitalWrite(ledPins[numLEDs - 1 - i], LOW);
      delay(delayTime);
    }
    delay(200);
  } else if (buttonState3 == HIGH) { // Als knop 3 is ingedrukt
    // Lampjes één voor één aanzetten met vaste vertraging
    for (int i = 0; i < numLEDs; i++) {
      digitalWrite(ledPins[i], HIGH);
      delay(delayTime); // Vertraging tussen elke LED
    }
    
    // LEDs één voor één uitzetten
    for (int i = numLEDs - 1; i >= 0; i--) {
      digitalWrite(ledPins[i], LOW);
      delay(delayTime); // Vertraging tussen elke LED
    }
    delay(2*delayTime);
  } else if (buttonState4 == HIGH) { // Als knop 4 is ingedrukt
    // Zet alle lampjes aan
    for (int i = 0; i < numLEDs; i++) {
      digitalWrite(ledPins[i], HIGH);
    }
  }
}


$abcdeabcde151015202530fghijfghij
$abcdeabcde151015202530fghijfghij
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
led5:A
led5:C
led6:A
led6:C
led7:A
led7:C
led8:A
led8:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2
r5:1
r5:2
r6:1
r6:2
r7:1
r7:2
r8:1
r8:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn4:1.l
btn4:2.l
btn4:1.r
btn4:2.r
r9:1
r9:2
r10:1
r10:2
r11:1
r11:2
r12:1
r12:2
pot1:GND
pot1:SIG
pot1:VCC