Загрузка данных


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 секунд до нового раунда
}