// Configuratieconst int numLeds = 3; // Aantal LED'sconst int ledPins[numLeds] = {2, 3, 4}; // Pinnen waar de LED's op aangesloten zijn// Min en max aan-tijden in milliseconden voor elke LEDconst unsigned long minTimes[numLeds] = {100, 200, 300}; // Minimale aan-tijd per LEDconst unsigned long maxTimes[numLeds] = {500, 800, 1000}; // Maximale aan-tijd per LED// Variabelen voor timingunsigned long previousTimes[numLeds]; // Laatste keer dat elke LED veranderdeunsigned long intervals[numLeds]; // Huidige interval voor elke LEDbool ledStates[numLeds]; // Huidige staat van elke LEDvoid setup() { // Initialiseer seriële communicatie (optioneel voor debugging) Serial.begin(9600); // Initialiseer LED pinnen als OUTPUT for (int i = 0; i < numLeds; i++) { pinMode(ledPins, OUTPUT); ledStates = LOW; digitalWrite(ledPins, ledStates); previousTimes = 0; intervals = random(minTimes, maxTimes); }}void loop() { unsigned long currentTime = millis(); for (int i = 0; i < numLeds; i++) { // Controleer of het tijd is om de LED te schakelen if (currentTime - previousTimes >= intervals) { // Schakel de LED ledStates = !ledStates; digitalWrite(ledPins, ledStates); // Update de vorige schakeltijd previousTimes = currentTime; // Bepaal een nieuw random interval voor de volgende schakeling if (ledStates == HIGH) { // LED gaat aan - gebruik aan-tijd interval intervals = random(minTimes, maxTimes); } else { // LED gaat uit - gebruik een korte uit-tijd (of pas aan-tijd aan) // Hier gebruiken we de helft van de minimale aan-tijd als uit-tijd intervals = minTimes / 2; } // Debug output (optioneel) Serial.print("LED "); Serial.print(i); Serial.print(": "); Serial.print(ledStates ? "AAN" : "UIT"); Serial.print(", Volgende schakeling in: "); Serial.println(intervals); } }}