const int buzzerPin = 8;
void setup() {
pinMode(buzzerPin, OUTPUT);
digitalWrite(buzzerPin, LOW);
}
void loop() {
unsigned long startTime = millis();
const unsigned long duration = 40000; // 40 секунд таймер CS2
while (millis() - startTime < duration) {
// Вычисляем прогресс от 0.0 (старт) до 1.0 (финал)
float progress = (float)(millis() - startTime) / duration;
// Плавное уменьшение паузы между писками:
// В начале пауза 900 мс, к 40-й секунде сжимается до 30 мс
int pauseDelay = 900 - (progress * 870);
// Плавное уменьшение длительности самого писка:
// В начале 100 мс, в самом конце 30 мс
int beepDuration = 100 - (progress * 70);
// Звук
digitalWrite(buzzerPin, HIGH);
delay(beepDuration);
digitalWrite(buzzerPin, LOW);
// Задержка между писками (уменьшается с каждым шагом)
delay(pauseDelay);
}
// --- ВЗРЫВ НА 40-Й СЕКУНДЕ ---
digitalWrite(buzzerPin, HIGH);
delay(1500); // Длинный зажатый гул
digitalWrite(buzzerPin, LOW);
delay(5000); // Пауза 5 секунд до нового раунда
}