Задать вопрос
@Lexluter20

Не работает шаговый двигатель, в чём пролема?

Здравствуйте, подключил шаговый двигатель nema23hd 1000y-30B 3А к arduino через драйвер tb6600. на вход к драйверу идёт 30 вольт.

Подключение через общий минус EN- PUL- DIR- идут на минус питания 5v,
EN + DIR+ PUL+ подключены к ардуино.
Обмотки прозвонил подключил по схеме на драйвере.
простой скетч для этого
int step = 2; 
int direction = 4;
int enable = 5;

//переменная задержки между шагами
int wait;

void setup()//Эта функция работает только один раз при запуске ардуино
{
//подключаемся ардуиной к компьютеру, чтобы выводить информацию в монитор порта
Serial.begin(9600);

//Устанавливаем пины ардуины в режим "выход".
pinMode(step, OUTPUT);
pinMode(direction, OUTPUT);
pinMode(enable, OUTPUT);
}

void loop()                  //Эта функция работает циклически
{

wait=100;                     //Устанавливаем задержку между шагами, так как задержка включается 2 раза за шаг, "шагать" движек будет каждые 32мс.


Serial.println("Устанавливаем целый шаг и делаем 200 шагов в одну сторону"); //выводим строку в монитор порта
  ////
digitalWrite(enable, LOW);
digitalWrite(direction, HIGH);      // устанавливаем начальное направление вращения
delay(wait);
for(int i=0; i<100; i++){    // Запускаем цикл, который выполнит действия 200 раз
digitalWrite(step, LOW);    // Подаем логическую 1 на вывод STEP драйвера, чтобы двигатель сделал шаг.
delay(wait);                 // Задержка времени
digitalWrite(step, HIGH);     // Подаем логический 0 на вывод STEP драйвера, после этого драйвер будет ожидать новую 1, чтобы сделать еще 1 шаг.
delay(wait);
}

digitalWrite(direction, LOW);  // устанавливаем начальное направление вращения
delay(wait);
for(int i=0; i<100; i++){    // Запускаем цикл, который выполнит действия 200 раз
digitalWrite(step, LOW);    // Подаем логическую 1 на вывод STEP драйвера, чтобы двигатель сделал шаг.
delay(wait);                 // Задержка времени
digitalWrite(step, HIGH);     // Подаем логический 0 на вывод STEP драйвера, после этого драйвер будет ожидать новую 1, чтобы сделать еще 1 шаг.
delay(wait);
}

}

проверял этот код через двигатель nema17 драйвер a4988 - всё работает.
Двигатель стучит как будто на него есть пульс но не поворачивает, также этот пульс не стабилен в временном промежутке. Менял провода обмоток местами, всё тоже самое. В чём проблема, подскажите, пожалуйста?
  • Вопрос задан
  • 798 просмотров
Подписаться 2 Простой 3 комментария
Решения вопроса 1
@evgeniy_lm
проверял этот код через двигатель nema17 драйвер a4988 - всё работает.
Ну, значит можно сделать вывод, что проблема не в коде. Остается только либо драйвер, либо двигатель.

Двигатель стучит как будто на него есть пульс но не поворачивает, также этот пульс не стабилен в временном промежутке.
Очень может быть, что двигатель не получает свои 3А. Вы либо не выставили ток на драйвере, либо не хватает напряжения питания чтобы обеспечить требуемый ток.

Проверьте для начала драйвер, например, подключите тот самый 100% работающий nema17. НЕ ЗАБУДЬТЕ ВЫСТАВИТЬ СООТВЕТСТВУЮЩИЙ ТОК!

Так же может не соблюдена полярность включения обмоток
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы