Delay останавливает программный код

Имеется плата(arduinon uno), cnc shield и на нём драйвер подключенный к степперу, для работы со степером я использую библиотеку GyverStepper, когда я пытаюсь запустить delay в коде, он почему то отрабатывает сразу, то есть идёт строчка stepper3.setTarget(10000); потом должна выполниться delay(10000); и потом stepper3.setTarget(20000);, но выполняется сначала delay(10000); а потом всё остальное, как это можно поправить?

#include "GyverStepper.h"

GStepper<STEPPER2WIRE> stepper3(100, 3, 6, 8);
void setup() {
  Serial.begin(115200);

  stepper3.setRunMode(FOLLOW_POS);
  stepper3.setAcceleration(2000);
  stepper3.setMaxSpeed(10000);
}

void loop() {
  // put your main code here, to run repeatedly:
  stepper3.tick();
  if (Serial.available()) {
    char ch = Serial.read();
    //    Кнопка паники "a" - Остановка степперов
    if (ch == 'a') {
      stepper3.brake();
    }
    if (ch == 'x') {
      stepper3.setTarget(10000);
      delay(10000);
      stepper3.setTarget(20000);
    }
  }

Ответы (0 шт):