#define PIN_BUZZER_SWITCH 14
#define PIN_BUTTON        21
#define PWM_CHANNEL       0

void setup() {
  pinMode(PIN_BUZZER_SWITCH, OUTPUT);
  pinMode(PIN_BUTTON, INPUT);
  // Tutorial had a bug here. Needs to be freq=1000, not freq=1.
  ledcAttachChannel(PIN_BUZZER_SWITCH, 1000, 10, PWM_CHANNEL);
  ledcWriteTone(PIN_BUZZER_SWITCH, 2000);
  delay(300);
}

void alarm() {
  float sine;
  int tone;
  for ( int i = 0; i < 360 ; i += 10 ) { 
    sine = sin(i * (PI / 180));
    tone = 2000 + sine * 500;
    ledcWriteTone(PIN_BUZZER_SWITCH, tone);
    delay(50);
  }
}

void loop() {
  if ( digitalRead(PIN_BUTTON) == LOW ) {
    alarm();
  } else { 
    ledcWriteTone(PIN_BUZZER_SWITCH, 0);
  }
}
