volatile float A=1;      //задаем амплитуду сигнала ВАЖНО!!! амплитуда сигнала здесь переменная, использующаяся в прерывании. перед такими переменными ставится приставка volatile 
float res; 
float shag=0.05;// задаем шаг (период отсчёта)
float t0 = 0; //задаём начальное значение по оси //времени

void IRAM_ATTR BUTTON_S1_press() // объявили функцию-обработчик прерывания 
{
  A = 0; 
}

void setup()
{
  Serial.begin(9600); 
  pinMode(5, INPUT_PULLUP);
  attachInterrupt(5, BUTTON_S1_press, FALLING); //прикрепили функцию-обработчик прерывания к 5 пину и указали, что событием прерывания является спадающий фронт
} 

void loop()
{ 
  A = 1; 
  for (uint16_t t = 0; t < 1000; t++)
  {
    res=A*sin(t0 + shag*t);
    Serial.println(res); 
  }
  delay(1); 
}
