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);
}
}
}
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