Страница 1 из 1
Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 16 фев 2023, 11:48
xucc
Здравствуйте, уважаемые пользователи форума!
Прошу помочь с вопросом проверки работоспособности драйвера шагового двигателя TB6600: подключил к Ардуино и Шаговому двигателю, загрузил скетч, но в результате двигатель не заработал - вал не крутился. Подозреваю, что драйвер нерабочий (или сгорел в процессе подключения). Прошу подсказать, как мне проверить драйвер?
Драйвер заказан на Aliexpress
Фото
Ардуино - D1 wi-fi esp8266
Фото
Фото
Шаговый двигатель - 17hs19-2004s1
Фото
Фото
Схема подключения, которую использую:
При этом токи положение тумблерова на Драйвере следующее:
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 Вольт
Re: Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 16 фев 2023, 12:42
kfmut
enable то разве active low должен быть? да и вообще, пин направления ставите единичку в скетче, мерите 0 вольт, где логика?

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

а так, нашли парные выводы обмоток шаговика, подключили вместе с питанием, +5в на enable, после этого драйвер встанет на удержание, вал шаговика нельзя будет провернуть свободно.
Спасибо за комментарий! Ищу ошибки в скетче.
Re: Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 18 фев 2023, 13:55
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)" (для первого скетча из этого поста), но положительного результата не добился, вращения у двигателя не случилось.
Отсутствие успеха конечно же укрепляет мое мнение о моих способностях... но и снова начинаю задумываться, исправны ли компоненты. Прошу подскажите, что может быть не так?
Re: Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 18 фев 2023, 14:33
lkbyysq
Проверить светодиодом с резистором 200 Ом, что на нужные импульсы на выходы действительно выходят.
Re: Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 18 фев 2023, 14:46
kfmut
скетч просто с генерацией шагов со скоростью 1кГц накропайте, в loop через delay и дёргание пина с задержкой от 10мкс
для того чтобы имс драйвера правильно отрабатывала, там емнип последовательность подачи сигналов должна соблюдаться, в доках можно посмотреть, для этого правда скорее всего придётся вскрыть драйвер и посмотреть что там реально стоит + оптопары разного быстродействия могут быть...но вообще ковырять это без анализатора или осциллографа - так себе идея

Re: Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 20 фев 2023, 10:05
nevkon
Попробуйте для начала отключить сигнал Enable физически, будет работать скетч или нет и от этого уже плясать.
Re: Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 19 апр 2023, 11:44
PLOTTER2023
Заработало?
Или это такие худшие драйверы?
Re: Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 19 апр 2023, 11:53
lkbyysq
PLOTTER2023 писал(а): ↑19 апр 2023, 11:44
Заработало?
Или это такие худшие драйверы?
О! Вы вот так вот на раз определили о каких драйверах речь! А нам так никто не сказал... Печалька.
TB6600 - это микросхема.
А всякие горе-производители на горе всяким горе-покупателям мастерят на этой микросхеме горе-драйверы, и лепят наклейку почём зря.
На моей памяти микросхема TB6600 ещё никогда не была виновной в проблемах пользователя.
А есть производители, делающие на этой микросхеме достойные драйверы. И тоже ставят почём зря наклейку.
Так что лотерея - не гнаться за минимальной ценой как минимум, брать у проверенных поставщиков и пр.
Re: Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 19 апр 2023, 13:15
PLOTTER2023
lkbyysq писал(а): ↑19 апр 2023, 11:53
PLOTTER2023 писал(а): ↑19 апр 2023, 11:44
Заработало?
Или это такие худшие драйверы?
О! Вы вот так вот на раз определили о каких драйверах речь! А нам так никто не сказал... Печалька.
А всякие горе-производители на горе всяким горе-покупателям мастерят на этой микросхеме горе-драйверы, и лепят наклейку почём зря.
На моей памяти микросхема TB6600 ещё никогда не была виновной в проблемах пользователя.
А есть производители, делающие на этой микросхеме достойные драйверы. И тоже ставят почём зря наклейку.
Так что лотерея - не гнаться за минимальной ценой как минимум, брать у проверенных поставщиков и пр.
Такая в закрытых корпусах идет, на схему не посмотреть. Лейблы любые могут быть, высокая цена на контр не показатель.
Кажется если питать от 24вольт, поставить 8 диодов защиты будет достаточно превратить в более устойчивое изделие.
А так присматриваюсь к тв6560, но на авито 6600 навалом...
Re: Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 19 апр 2023, 14:37
kfmut
новые драйверы вроде идут с tb67-ми микросхемами, причём даже не в выводном корпусе, с упоротой схемой охлаждения
Re: Драйвер TB6600. Вопросы о проверке работоспособности
Добавлено: 19 апр 2023, 15:27
xvovanx
kfmut писал(а): ↑
А так присматриваюсь к тв6560
Вот это поистине самая геморойная микросхема с двойным питанием, в которой подача одного напряжения не в правильной последовательности со вторым приводит к летальному исходу. Ищите драйвера 6600 у продавцов с отзывами и фотками того, что стоит внутри