Разгон шагового двигателя

Я в данный момент пытаюсь плавно передвигать шаговый двигатель. Проблема с шаговым двигателем заключается в том, что он издает высокий шум во время движения или иногда потрескивает от двигателя.

Поэтому я попробовал увеличить частоту шагового сигнала, что, похоже, немного помогло, но не идеально. Затем я попробовал микрошаг вместо полного шага, что тоже немного помогло, но шум все равно очень отчетливый.

Я использую двигатель PK244-01A И драйвер, к которому он подключен, — этот

Я совсем не уверен, что заданное мной линейное изменение слишком крутое или совершенно неправильное, но вот код, который управляет двигателем.

void stepper_motor::step_pwm()
{

    digitalWrite(en_pin,HIGH);

    delay(0.005);

    digitalWrite(dir_pin,HIGH);
    //LOW - Двигаемся к датчику
    //ВЫСОКИЙ — отойти от датчика

    delay(0.005);
    int increment = 0;
    int step_count = 0;
    while(step_count <= max_step)
    {
      digitalWrite(step_pin,LOW);
      delayMicroseconds(2000);
      digitalWrite(step_pin,HIGH);
      delayMicroseconds(2000-increment);
      step_count++;

      if(step_count >= 1)
      {
        increment++;
        step_count = 0;
      }
    }

}

Что можно сделать, чтобы уменьшить шум двигателя?

, 👍0