Драйвер TB6600. Вопросы о проверке работоспособности

Контроллеры, драйверы, датчики, управляющие устройства.
xucc
Новичок
Сообщения: 3
Зарегистрирован: 16 фев 2023, 10:57
Репутация: 1
Настоящее имя: Владимир
Контактная информация:

Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение xucc »

Здравствуйте, уважаемые пользователи форума!

Прошу помочь с вопросом проверки работоспособности драйвера шагового двигателя TB6600: подключил к Ардуино и Шаговому двигателю, загрузил скетч, но в результате двигатель не заработал - вал не крутился. Подозреваю, что драйвер нерабочий (или сгорел в процессе подключения). Прошу подсказать, как мне проверить драйвер?
Драйвер заказан на Aliexpress
Фото Ардуино - D1 wi-fi esp8266
Фото Фото Шаговый двигатель - 17hs19-2004s1
Фото Фото Схема подключения, которую использую:
Схема_подключения.png (2521 просмотр) <a class='original' href='./download/file.php?id=206706&sid=99305c0321809d22e49b6021503593dc&mode=view' target=_blank>Загрузить оригинал (31 КБ)</a>
При этом токи положение тумблерова на Драйвере следующее:
Microstep 16 Pulse 3200 (пробовал разные значения, в т. ч. 32/6400)
Current (A) - 1,5-1,7 (пробовал еще 2,0-2,2 ампер).
Скетч

Код: Выделить всё

//Globals
#define STEPPIN 7
#define DIRPIN 6
#define ENAPIN 5

const int STEPTIME = 5;
void setup() {
  // put your setup code here, to run once:
  pinMode(STEPPIN,OUTPUT);
  pinMode(DIRPIN,OUTPUT);
  pinMode(ENAPIN,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  forward(400);

}

void forward(int steps){
  int i;
  digitalWrite(ENAPIN,LOW);//ENABLE IS ACTIVE LOW
  digitalWrite(DIRPIN,HIGH);//SET DIRECTION 
  for(i=0;i<steps;i++){
    digitalWrite(STEPPIN,HIGH);
    delay(STEPTIME);
    digitalWrite(STEPPIN,LOW);
    delay(STEPTIME);
  }
  digitalWrite(ENAPIN,HIGH);//DISABLE STEPPER
}

void reverse(int steps){
  int i;
  digitalWrite(ENAPIN,LOW);//ENABLE IS ACTIVE LOW
  digitalWrite(DIRPIN,LOW);//SET DIRECTION 
  for(i=0;i<steps;i++){
    digitalWrite(STEPPIN,HIGH);
    delay(STEPTIME);
    digitalWrite(STEPPIN,LOW);
    delay(STEPTIME);
  }
  digitalWrite(ENAPIN,HIGH);//DISABLE STEPPER
}
При подключенной схеме, лампочки на драйвере горят обе. Напряжения следующие:
На разъемах Signal - 0 Воль
На разъемах High Voltage - 0,25 Вольт
На разъемах питания, как положено - 12 Вольт
kfmut
Мастер
Сообщения: 1249
Зарегистрирован: 30 янв 2021, 21:34
Репутация: 147
Настоящее имя: Максим
Откуда: г.Тверь
Контактная информация:

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение kfmut »

enable то разве active low должен быть? да и вообще, пин направления ставите единичку в скетче, мерите 0 вольт, где логика? :-) а так, нашли парные выводы обмоток шаговика, подключили вместе с питанием, +5в на enable, после этого драйвер встанет на удержание, вал шаговика нельзя будет провернуть свободно.
lkbyysq
Мастер
Сообщения: 2047
Зарегистрирован: 14 май 2016, 09:40
Репутация: 322
Настоящее имя: Станислав Ерофеев
Откуда: Санкт-Петербург

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение lkbyysq »

xucc писал(а): Прошу подсказать, как мне проверить драйвер?
Освобождаете все входы.
Подключаете двигатель.
Подаете питание на драйвер. Двигатель должен встать колом.
Тыкайте и отпускайте на вход PUL 5 вольт - двигатель должен сделать один шаг. Или несколько шагов из-за искрения.
xucc
Новичок
Сообщения: 3
Зарегистрирован: 16 фев 2023, 10:57
Репутация: 1
Настоящее имя: Владимир
Контактная информация:

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение xucc »

lkbyysq писал(а): 16 фев 2023, 14:15
xucc писал(а): Прошу подсказать, как мне проверить драйвер?
Освобождаете все входы.
Подключаете двигатель.
Подаете питание на драйвер. Двигатель должен встать колом.
Тыкайте и отпускайте на вход PUL 5 вольт - двигатель должен сделать один шаг. Или несколько шагов из-за искрения.
Большое спасибо! Выполнил как вы написали, вал двигателя вращается. Стало намного легче - драйвер работает. Буду разбираться с со скечтем, в нем ошибки, как заметил kfmut.
kfmut писал(а): 16 фев 2023, 12:42 enable то разве active low должен быть? да и вообще, пин направления ставите единичку в скетче, мерите 0 вольт, где логика? :-) а так, нашли парные выводы обмоток шаговика, подключили вместе с питанием, +5в на enable, после этого драйвер встанет на удержание, вал шаговика нельзя будет провернуть свободно.
Спасибо за комментарий! Ищу ошибки в скетче.
xucc
Новичок
Сообщения: 3
Зарегистрирован: 16 фев 2023, 10:57
Репутация: 1
Настоящее имя: Владимир
Контактная информация:

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение xucc »

Уважаемые пользователи форума.
К сожалению, с использованием различных скетчей двигатель так и не заработал.
Прошу вас, подскажите, где же моя ошибка? Поменял arduino (предыдущий, кстати, стал сильно греться и перестал прошиваться), решил использовать новый скетч:

Код: Выделить всё

const uint8_t pin_ENA = 5;                // Вывод Arduino подключённый к входу драйвера ENA+.
const uint8_t pin_DIR = 6;                // Вывод Arduino подключённый к входу драйвера DIR+.
const uint8_t pin_PUL = 7;                // Вывод Arduino подключённый к входу драйвера PUL+.
                                          // Вывод GND Arduino соединён с входами драйвера ENA-, DIR-, PUL-.
uint32_t f = 1000;                        // Определяем частоту следования микрошагов от 1 до 200'000 Гц.
                                          // Чем выше частота, тем выше скорость вращения вала.
void setup(){                             //
     pinMode( pin_ENA, OUTPUT );          // Конфигурируем вывод Arduino как выход.
     pinMode( pin_DIR, OUTPUT );          // Конфигурируем вывод Arduino как выход.
     pinMode( pin_PUL, OUTPUT );          // Конфигурируем вывод Arduino как выход.
}                                         //
                                          //
uint32_t t = 1000000/f/2;                 // Определяем длительность импульсов t3 и пауз t4 в мкс.
                                          //
void loop(){                              //
//   Готовимся к движению вала:           //
     digitalWrite( pin_ENA, 0 );          // Разрешаем работу двигателя.
     delayMicroseconds(5);                // Выполняем задержку t1 (см. график STEP/DIR).
     digitalWrite( pin_DIR, 0 );          // Выбираем направление вращения.
     delayMicroseconds(5);                // Выполняем задержку t2 (см. график STEP/DIR).
//   Поворачиваем вал на 2 оборота:       //
     for(int i=0; i<1600; i++){           // Выполняем 1600 проходов цикла (1 оборот = 800 тактов, 2 оборота = 1600).
         digitalWrite( pin_PUL, 1 );      // Устанавливаем на выводе PUL состояние логической «1».
         delayMicroseconds(t);            // Выполняем задержку t3 (см. график STEP/DIR).
         digitalWrite( pin_PUL, 0 );      // Устанавливаем на выводе PUL состояние логического «0».
         delayMicroseconds(t);            // Выполняем задержку t4 (см. график STEP/DIR).
     }                                    //
//   Останавливаем вал удерживая его:     // Двигатель не вращается, если на вывод PUL не поступают импульсы.
     delay(5000);                         // Ждём 5 секунд. В это время двигатель остановлен, его вал удерживается.
//   Меняем направление движения вала:    //
     digitalWrite( pin_DIR, 1 );          // Меняем логический уровень вывода DIR с 0 на 1.
     delayMicroseconds(5);                // Выполняем задержку t2 (см. график STEP/DIR).
//   Поворачиваем вал на 2 оборота:       //
     for(int i=0; i<1600; i++){           // Выполняем 1600 проходов цикла (1 оборот = 800 тактов, 2 оборота = 1600).
         digitalWrite( pin_PUL, 1 );      // Устанавливаем на выводе PUL состояние логической «1».
         delayMicroseconds(t);            // Выполняем задержку t3 (см. график STEP/DIR).
         digitalWrite( pin_PUL, 0 );      // Устанавливаем на выводе PUL состояние логического «0».
         delayMicroseconds(t);            // Выполняем задержку t4 (см. график STEP/DIR).
     }                                    //
//   Останавливаем вал без удержания:     //
     digitalWrite( pin_ENA, 1 );          // Запрещаем работу двигателя, отключаем токи в обмотках.
     delay(5000);                         // Ждём 5 секунд. В это время двигатель отключен, его вал свободен.
}                                         //
И вот такой скетч:

Код: Выделить всё

int PUL=7;
int DIR=6;
int ENA=5;
  
void setup() {
  pinMode (PUL, OUTPUT);
  pinMode (DIR, OUTPUT);
  pinMode (ENA, OUTPUT);
 
}
 
void loop() {
  for (int i=0; i<6400; i++)    // Вперед на 5000 шагов
  {
    digitalWrite(DIR,LOW);
    digitalWrite(ENA,HIGH);
    digitalWrite(PUL,HIGH);
    delayMicroseconds(50);
    digitalWrite(PUL,LOW);
    delayMicroseconds(50);
  }
  for (int i=0; i<6400; i++)   // Назад на 5000 шагов
  {
    digitalWrite(DIR,HIGH);
    digitalWrite(ENA,HIGH);
    digitalWrite(PUL,HIGH);
    delayMicroseconds(50);
    digitalWrite(PUL,LOW);
    delayMicroseconds(50);
  }
}
При этом в обоих случая двигатель крепко стоял без движения (как мне показалось).
Однако изменение значений для ENA: с "digitalWrite( pin_ENA, 0)" на "digitalWrite( pin_ENA, 1)" (для первого скетча из этого поста), но положительного результата не добился, вращения у двигателя не случилось.
Отсутствие успеха конечно же укрепляет мое мнение о моих способностях... но и снова начинаю задумываться, исправны ли компоненты. Прошу подскажите, что может быть не так?
lkbyysq
Мастер
Сообщения: 2047
Зарегистрирован: 14 май 2016, 09:40
Репутация: 322
Настоящее имя: Станислав Ерофеев
Откуда: Санкт-Петербург

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение lkbyysq »

Проверить светодиодом с резистором 200 Ом, что на нужные импульсы на выходы действительно выходят.
kfmut
Мастер
Сообщения: 1249
Зарегистрирован: 30 янв 2021, 21:34
Репутация: 147
Настоящее имя: Максим
Откуда: г.Тверь
Контактная информация:

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение kfmut »

скетч просто с генерацией шагов со скоростью 1кГц накропайте, в loop через delay и дёргание пина с задержкой от 10мкс

для того чтобы имс драйвера правильно отрабатывала, там емнип последовательность подачи сигналов должна соблюдаться, в доках можно посмотреть, для этого правда скорее всего придётся вскрыть драйвер и посмотреть что там реально стоит + оптопары разного быстродействия могут быть...но вообще ковырять это без анализатора или осциллографа - так себе идея :wik:
nevkon
Почётный участник
Почётный участник
Сообщения: 2390
Зарегистрирован: 17 июл 2015, 10:25
Репутация: 302
Настоящее имя: Константин
Откуда: Балаково (Саратовская обл.)
Контактная информация:

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение nevkon »

Попробуйте для начала отключить сигнал Enable физически, будет работать скетч или нет и от этого уже плясать.
PLOTTER2023
Новичок
Сообщения: 4
Зарегистрирован: 16 апр 2023, 21:37
Репутация: 0
Контактная информация:

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение PLOTTER2023 »

Заработало?
Или это такие худшие драйверы?
lkbyysq
Мастер
Сообщения: 2047
Зарегистрирован: 14 май 2016, 09:40
Репутация: 322
Настоящее имя: Станислав Ерофеев
Откуда: Санкт-Петербург

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение lkbyysq »

PLOTTER2023 писал(а): 19 апр 2023, 11:44 Заработало?
Или это такие худшие драйверы?
О! Вы вот так вот на раз определили о каких драйверах речь! А нам так никто не сказал... Печалька.

TB6600 - это микросхема.
А всякие горе-производители на горе всяким горе-покупателям мастерят на этой микросхеме горе-драйверы, и лепят наклейку почём зря.
На моей памяти микросхема TB6600 ещё никогда не была виновной в проблемах пользователя.

А есть производители, делающие на этой микросхеме достойные драйверы. И тоже ставят почём зря наклейку.
Так что лотерея - не гнаться за минимальной ценой как минимум, брать у проверенных поставщиков и пр.
PLOTTER2023
Новичок
Сообщения: 4
Зарегистрирован: 16 апр 2023, 21:37
Репутация: 0
Контактная информация:

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение PLOTTER2023 »

lkbyysq писал(а): 19 апр 2023, 11:53
PLOTTER2023 писал(а): 19 апр 2023, 11:44 Заработало?
Или это такие худшие драйверы?
О! Вы вот так вот на раз определили о каких драйверах речь! А нам так никто не сказал... Печалька.

А всякие горе-производители на горе всяким горе-покупателям мастерят на этой микросхеме горе-драйверы, и лепят наклейку почём зря.
На моей памяти микросхема TB6600 ещё никогда не была виновной в проблемах пользователя.

А есть производители, делающие на этой микросхеме достойные драйверы. И тоже ставят почём зря наклейку.
Так что лотерея - не гнаться за минимальной ценой как минимум, брать у проверенных поставщиков и пр.
Такая в закрытых корпусах идет, на схему не посмотреть. Лейблы любые могут быть, высокая цена на контр не показатель.

Кажется если питать от 24вольт, поставить 8 диодов защиты будет достаточно превратить в более устойчивое изделие.
А так присматриваюсь к тв6560, но на авито 6600 навалом...
kfmut
Мастер
Сообщения: 1249
Зарегистрирован: 30 янв 2021, 21:34
Репутация: 147
Настоящее имя: Максим
Откуда: г.Тверь
Контактная информация:

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение kfmut »

новые драйверы вроде идут с tb67-ми микросхемами, причём даже не в выводном корпусе, с упоротой схемой охлаждения
Аватара пользователя
xvovanx
Мастер
Сообщения: 3647
Зарегистрирован: 25 фев 2016, 12:27
Репутация: 897
Настоящее имя: Владимир
Откуда: Latvia
Контактная информация:

Re: Драйвер TB6600. Вопросы о проверке работоспособности

Сообщение xvovanx »

kfmut писал(а): А так присматриваюсь к тв6560
Вот это поистине самая геморойная микросхема с двойным питанием, в которой подача одного напряжения не в правильной последовательности со вторым приводит к летальному исходу. Ищите драйвера 6600 у продавцов с отзывами и фотками того, что стоит внутри
Ответить

Вернуться в «Электроника»