Я делаю школьный проект, используя несколько шаговых двигателей с драйверами drv8825 (на самом деле это будет мостовой кран) с Arduino UNO. Во-первых, у нас нет огромных денег, которые можно было бы тратить. Теперь проблема заключается в следующем: мы собираемся использовать ПИД-регулятор через гироскоп MPU6050 acc +, который будет контролировать скорость двигателей (нагрузка должна быть как можно более жесткой во время движений), и единственный два способа изменить скорость шагового двигателя:
1) Через метод задержки, например:
for (i = 0; i<400; i++)
{
digitalWrite(StepPinB, LOW);
delayMicroseconds(500);
digitalWrite(StepPinB, HIGH);
delayMicroseconds(500);
}
Используя этот метод, Arduino будет постоянно занят, поэтому я не смогу постоянно проверять значение датчика, чтобы достичь правильной скорости. Из-за этого я не могу использовать этот метод.
2) За счет внешнего регулирования тактовой частоты drv8825, например, с помощью «преобразователя напряжения в частоту» (переменное напряжение может быть задано с помощью «Arduino PWM» + «фильтр нижних частот») или с помощью «нестабильного мультивибратора». («нестабильный генератор») с «цифровым потенциометром» для изменения частоты. Я уже пробовал метод «преобразователя напряжения в частоту», но он не сработал из-за шумов в цепи.
Я бы хотел, чтобы вы помогли мне выяснить, как лучше всего постоянно изменять скорость шагового двигателя во время программы (а также найти лучший способ сделать переменную частоту, как показано в пункте 2).