bool isFunctionActive = false;  // Прапорець для контролю виклику функції

void setup() {
    Serial.begin(9600);
    Serial.println("Натисніть '1' для запуску функції.");
    Serial.println("Натисніть '2' для зупинки функції.");
}

void loop() {
    // Перевіряємо, чи є вхідні дані з серійного порту
    if (Serial.available() > 0) {
        char input = Serial.read();  // Зчитуємо символ з серійного порту

        // Якщо натиснута кнопка '1', активуємо функцію
        if (input == '1') {
            isFunctionActive = true;
            Serial.println("Функція активована.");
        }

        // Якщо натиснута кнопка '2', деактивуємо функцію
        if (input == '2') {
            isFunctionActive = false;
            Serial.println("Функція деактивована.");
        }
    }

    // Викликаємо функцію тільки якщо прапорець isFunctionActive дорівнює true
    if (isFunctionActive) {
        myFunction();
    }

   
}


void myFunction() {
    
  static int value = 0;
  value++;
  
  value = autoResetTimer(value);
    
  
  Serial.println(value); 

}

int autoResetTimer(int receivedData) {
  
  static unsigned long tmr = millis() + 100;
  
  if (receivedData && tmr < millis()) {
   
   tmr = millis() + 100;
   return 0;
  
  }
  
  else{
  
   tmr = millis() + 100;
   return receivedData;

  }
  
  return 0;

}