const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // Piny pro LED
const int buttonPin = 12; // Pin pro tlačítko
const int numLeds = 10; // Počet LED diod
int timer = 200; // Globální nastavení časových prodlev
int currentSequence = 0; // Aktuální sekvence
int numSequences = 4; // Počet sekvencí
bool buttonPressed = false;
void setup() {
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
pinMode(buttonPin, INPUT_PULLUP); // Tlačítko s vnitřním pull-up rezistorem
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
if (!buttonPressed) {
buttonPressed = true;
currentSequence = (currentSequence + 1) % numSequences;
delay(100); // Debouncing tlačítka
}
} else {
buttonPressed = false;
}
switch (currentSequence) {
case 0:
sequenceOne();
break;
case 1:
sequenceTwo();
break;
case 2:
sequenceThree();
break;
case 3:
sequenceRandom();
break;
}
}
void sequenceOne() {
// Jednoduchá sekvence: všechny LED blikají současně
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(timer);
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(timer);
}
void sequenceTwo() {
// Sekvence: postupné rozsvěcení LED
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(timer/2);
digitalWrite(ledPins[i], LOW);
}
}
void sequenceThree() {
// Sekvence: střídavé blikání LED
for (int i = 0; i < numLeds; i++) {
if (i % 2 == 0) {
digitalWrite(ledPins[i], HIGH);
} else {
digitalWrite(ledPins[i], LOW);
}
}
delay(timer);
for (int i = 0; i < numLeds; i++) {
if (i % 2 == 0) {
digitalWrite(ledPins[i], LOW);
} else {
digitalWrite(ledPins[i], HIGH);
}
}
delay(timer);
}
void sequenceRandom() {
// Náhodná sekvence: náhodně rozsvěcovat LED
for (int i = 0; i < numLeds; i++) {
int randomState = random(2); // Náhodně vybrat HIGH (1) nebo LOW (0)
digitalWrite(ledPins[i], randomState);
}
delay(timer/2);
}