ARDUINO Помогите решить проблему со стрелочным тахометром на шаговом двигателе

Cunabo

✩✩✩✩✩✩✩
4 Янв 2021
1
0
Зовут Антон. Делаю стрелочный тахометр на шаговом двигателе (шаговик Sonceboz 6405R407 (даташит), плата Arduino Mega 2560) для игры-автосимулятора. Так вот, пока отлаживаю, накидывая на ардуину преобразованные в количество шагов значения оборотов. Что-то получается, но проблема в том, что при малых изменениях значений оборотов стрелка дрыгается, шаговик издаёт страшные звуки и всё такое нехорошее. Уже перепробовал кучу библиотек для шаговиков, миллиард раз переписывал код, но так ничего и не получилось. Наиболее адекватно работал самый примитивный код со стандартной библиотекой для шаговиков, а именно:​
C++:
#include <Stepper.h>

Stepper stepper(600, 31, 33, 35, 37);
int currentPos = 0;
int targetPos = 0;
String inData = "";

void setup() {
  Serial.begin(115200);
  stepper.setSpeed(15);
}

void loop() {
  if((currentPos != targetPos) && (currentPos < targetPos)) {
    stepper.step(1);
    currentPos++;
  }
  if((currentPos != targetPos) && (currentPos > targetPos)) {
    stepper.step(-1);
    currentPos--;
  }
}

void serialEvent() {
  while(Serial.available() > 0) {
    char recieved = Serial.read();
    if(recieved == '\n') {
      targetPos = inData.toInt();
      Serial.println(targetPos);
      inData = "";
    }
    else {
      inData += recieved; 
    }
  }
}
Уже голову сломал, ничё не получается, я уже отчаялся. Корявенько объяснил проблему, надеюсь поймёт кто.​
Может подскажет кто, как это можно реализовать? Или накидает небольшой кодец для примера?​