const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // LED-pins
const int buttonPins[] = {10, 11, 12, 13}; // Knop-pins
const int potPin = A0; // Potentiometer pin
const int numLeds = 8; // aantal LED
const int numButtons = 4;
bool isOn = false;
int speed = 500; // Start snelheid voor LED-patronen
int brightness = 255; // Maximale helderheid
void setup() {
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
for (int i = 0; i < numButtons; i++) {
pinMode(buttonPins[i], INPUT_PULLUP); // Gebruik interne pull-up weerstand
}
}
void loop() {
brightness = analogRead(potPin) / 4; // Lees de potentiometer voor helderheid
// Lees de status van de knoppen
for (int i = 0; i < numButtons; i++) {
if (digitalRead(buttonPins[i]) == LOW) { // Knoppen zijn actief laag door pull-up
handleButtonPress(i);
delay(200); // Debounce delay
}
}
if (isOn) {
runLedPattern();
} else {
turnOffLeds();
}
delay(speed); // Snelheid van het patroon
}
void handleButtonPress(int button) {
switch (button) {
case 0:
isOn = !isOn; // Aan/Uit toggle
break;
case 1:
speed = max(100, speed - 50); // Versnellen
break;
case 2:
speed = min(1000, speed + 50); // Vertragen
break;
// Geen actie voor knop 4
}
}
void runLedPattern() {
// het patroon
for (int i = 0; i < numLeds; i++) {
analogWrite(ledPins[i], brightness);
delay(100);
analogWrite(ledPins[i], 0);
}
}
void turnOffLeds() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW);
}
}