// Nastavenie pinov
const int blueLeds[] = {2, 3, 4, 5, 6};
const int redLeds[] = {7, 8, 9, 10, 11};
const int buzzer = 12;
const int button = 13;
int sirenMode = 0; // Režim sirény
int blinkMode = 0; // Režim blikania
bool buttonPressed = false;
void setup() {
for (int i = 0; i < 5; i++) {
pinMode(blueLeds[i], OUTPUT);
pinMode(redLeds[i], OUTPUT);
}
pinMode(buzzer, OUTPUT);
pinMode(button, INPUT_PULLUP); // Interný pull-up rezistor
randomSeed(analogRead(0)); // Inicializácia generátora náhodných čísel
}
void loop() {
// Kontrola tlačidla (debouncing)
if (digitalRead(button) == LOW && !buttonPressed) {
buttonPressed = true;
sirenMode = (sirenMode + 1) % 2; // Zmena režimu sirény
blinkMode = (blinkMode + 1) % 2; // Zmena režimu blikania
delay(300); // Debouncing
} else if (digitalRead(button) == HIGH) {
buttonPressed = false;
}
// Blikanie LED
if (blinkMode == 0) {
fastBlink();
} else {
randomBlink();
}
// Siréna
playSiren();
}
// Funkcia na rýchle striedavé blikanie LED
void fastBlink() {
for (int i = 0; i < 5; i++) {
digitalWrite(blueLeds[i], HIGH);
digitalWrite(redLeds[i], LOW);
}
delay(50); // Krátky interval
for (int i = 0; i < 5; i++) {
digitalWrite(blueLeds[i], LOW);
digitalWrite(redLeds[i], HIGH);
}
delay(50); // Krátky interval
}
// Funkcia na náhodné preblikovanie LED
void randomBlink() {
int randomLed = random(0, 5); // Náhodný výber LED (0–4)
int randomColor = random(0, 2); // 0 = modrá, 1 = červená
if (randomColor == 0) {
digitalWrite(blueLeds[randomLed], HIGH);
delay(50);
digitalWrite(blueLeds[randomLed], LOW);
} else {
digitalWrite(redLeds[randomLed], HIGH);
delay(50);
digitalWrite(redLeds[randomLed], LOW);
}
}
// Funkcia na prehrávanie sirény
void playSiren() {
if (sirenMode == 0) {
tone(buzzer, 600); // Vysoký tón
delay(200);
tone(buzzer, 400); // Nízky tón
delay(200);
} else {
tone(buzzer, 800); // Rýchlejší vysoký tón
delay(100);
tone(buzzer, 500); // Rýchlejší nízky tón
delay(100);
}
noTone(buzzer);
}