// Piny pre LED diódy (D1 až D10)
const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
const int ledCount = 10;
// Pin pre tlačidlo
const int buttonPin = 12;
// Pin pre piezo buzzer
const int buzzerPin = 13;
// Delay medzi blikaniami LED
const int delayTime = 100;
// Stav tlačidla
int buttonState = 0;
int lastButtonState = 0;
// Premenná pre aktivovanie sekvencie
bool sequenceActive = false;
void setup() {
// Nastavenie LED pinov ako výstupy
for (int i = 0; i < ledCount; i++) {
pinMode(ledPins[i], OUTPUT);
}
// Nastavenie tlačidla ako vstup s pull-up rezistorom
pinMode(buttonPin, INPUT_PULLUP);
// Nastavenie pinu pre buzzer ako výstup
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// Čítanie stavu tlačidla
buttonState = digitalRead(buttonPin);
// Ak je tlačidlo stlačené a predtým nebolo
if (buttonState == LOW && lastButtonState == HIGH) {
sequenceActive = !sequenceActive; // Zmeniť stav aktivity sekvencie
delay(50); // Krátka pauza, aby sme sa vyhli "preklikaniu"
}
lastButtonState = buttonState; // Uložiť posledný stav tlačidla
// Ak je sekvencia aktivovaná
if (sequenceActive) {
// Blikanie LED diód a zvukový efekt
for (int i = 0; i < ledCount; i++) {
digitalWrite(ledPins[i], HIGH); // Rozsvietiť aktuálnu LED
tone(buzzerPin, 500 + i * 50); // Zvuk s rastúcou frekvenciou
delay(delayTime); // Počkať pred rozsvietením ďalšej LED
digitalWrite(ledPins[i], LOW); // Zhasnúť aktuálnu LED
noTone(buzzerPin); // Zastaviť zvuk
}
// Krátka pauza pred vypnutím všetkých LED
delay(500);
} else {
// Ak nie je sekvencia aktívna, vypnúť všetky LED
for (int i = 0; i < ledCount; i++) {
digitalWrite(ledPins[i], LOW);
}
}
}