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;
}