Драйвер tb6600 инструкция на русском

TB6600 Stepper Motor Driver Драйвер для шагового двигателя (общий вид)

Microstep Driver TB6600 распиновка Microstep Driver TB6600

TB6600 радиатор

Характеристики драйвера TB6600 

Входной ток 0…5A;
Выходной ток 0.5…4.0A;
DC 9…42V;
Максимальная мощность 160W;
Максимальная частота ШИМ 200кГц;
Температура эксплуатации от -10 до +45℃;
Габариты 96x56x33 mm;
Вес 0.2 кг;
Микросхема привода TB67S109AFTG.

8 типов микрошагов NC, 1(200), 2/A(400), 2/B(400), 4(800), 8(1600), 16(3200), 32(6400)
8 типов регулирования тока 0,5 А, 1А, 1,5А, 2А, 2,5А, 2,8А, 3,0А, 3,5А

A+,A- подключение I фазной обмотки шагового двигателя;
B+,B- подключение II фазной обмотки шагового двигателя;
PUL (STEP) – генерирует тактовые импульсы для запуска шагового двигателя (активный уровень — 1);
DIR – логический сигнал для установки направления двигателя, смена направления вращения;
осуществляется при отсутствии импульсов на пине PUL; (при изменении состояния должно пройти не менее 10 мкс до подачи импульса на вход «PUL») (активный уровень — 1);
ENA – разрешающий сигнал, отключение и включение двигателя (активный уровень — 0).

Таблица настройки частоты вращения двигателя драйвера шагового двигателя TB6600

Microstep Pulse/rev s1 s2 s3
NC NC ON ON ON
1 200 ON ON OFF
2/A 400 ON OFF ON
2/B 400 OFF ON ON
4 800 ON OFF OFF
8 1600 OFF ON OFF
16 3200 OFF OFF ON
32 6400 OFF OFF OFF

Таблица токов драйвера шагового двигателя TB6600

Current(A) PK Current s4 s5 s6
0.5 0.7 ON ON ON
1.0 1.2 ON OFF ON
1.5 1.7 ON ON OFF
2.0 2.2 ON OFF OFF
2.5 2.7 OFF ON ON
2.8 2.9 OFF OFF ON
3.0 3.2 OFF ON OFF
3.5 4.0 OFF OFF OFF

Схема подключения TB6600 Nema 17 к Arduino Nano

схема подключения TB6600 Nema 17 к Arduino Nano

Вид подключаемого шагового двигателя Nema 17

Nema 17

Usongshine Stepping Motor 17HS4401S-09

Схема обмоток шагового двигателя

motor шаговый обмотки схема

Пример скетч работы шагового двигателя Nema 17 и драйвера TB6600 Arduino

#define MOTOR_PUL_PIN 9
#define MOTOR_DIR_PIN 8 
#define MOTOR_ENA_PIN 5


void setup() {
  pinMode (MOTOR_PUL_PIN, OUTPUT);
  pinMode (MOTOR_DIR_PIN, OUTPUT);
  pinMode (MOTOR_ENA_PIN, OUTPUT);

}

void loop() {

// мотор крутится по часовой стрелки
  for (int i=0; i<3200; i++)  
  {
    digitalWrite(MOTOR_DIR_PIN,HIGH);
    digitalWrite(MOTOR_ENA_PIN,HIGH);
    digitalWrite(MOTOR_PUL_PIN,HIGH);
    delayMicroseconds(200);
    digitalWrite(MOTOR_PUL_PIN,LOW);
    delayMicroseconds(200);
  }
 // мотор крутится по против часовой стрелки
  for (int i=0; i<3200; i++)  
  {
    digitalWrite(MOTOR_DIR_PIN,LOW);
    digitalWrite(MOTOR_ENA_PIN,HIGH);
    digitalWrite(MOTOR_PUL_PIN,HIGH);
    delayMicroseconds(200);
    digitalWrite(MOTOR_PUL_PIN,LOW);
    delayMicroseconds(200);
  }
}

Пример скетча работы шагового двигателя один полный оборот 360 градусов Nema 17 и драйвера TB6600 Arduino

#define MOTOR_PUL_PIN 9
#define MOTOR_DIR_PIN 8 
#define MOTOR_ENA_PIN 5

//временная задержка между шагами 1 мс
const int delay_pause = 1;

void setup() {
  pinMode (MOTOR_PUL_PIN, OUTPUT);
  pinMode (MOTOR_DIR_PIN, OUTPUT);
  pinMode (MOTOR_ENA_PIN, OUTPUT);
}


void loop()
{
    //устанавливаем начальный режим
  digitalWrite(MOTOR_PUL_PIN, HIGH);
  digitalWrite(MOTOR_DIR_PIN, LOW);

  //направление вращения мотора против часовой стрелки
  digitalWrite(MOTOR_DIR_PIN, HIGH);
// делаем 12800 шагов на 360 градусов оборот
   for(int i = 0; i < 12800; i++)
  {
    digitalWrite(MOTOR_PUL_PIN, HIGH);
    delay(delay_pause);
    digitalWrite(MOTOR_PUL_PIN, LOW);
    delay(delay_pause);
  }
  // пауза 5 секунд
  delay(5000);
}

Код скорости вращения на драйвере TB6600 Arduino

#define Motor_PULSE_PIN 9
#define Motor_DIR_PIN   8

uint16_t motor_speed = 15;// скорость мотора
uint16_t motor_Hz = 6400 / 5 / 10; // 6400 пульсация 5 секунд со скоростью 10

void setup() {
  Serial.begin(9600);
  pinMode(Motor_DIR_PIN, OUTPUT);      
  pinMode(Motor_PULSE_PIN, OUTPUT); 
}

void loop() {
uint16_t  motor_speed_pusk=motor_speed * motor_Hz;
tone(Motor_PULSE_PIN, motor_speed_pusk); 
}

Доброго времени суток, уважаемые коллеги! Сегодня сделаем правильное подключение БОЛЬШИХ (или не очень :))) ) внешних драйверов для 3D принтера, чтобы все РАБОТАЛО и работало как надо: без смещений и прочей чепухи, которую даже опытный боец может принять за износ механики!

-На что обратить внимание в первую очереди?

-Напряжение не только ПИТАНИЯ, но и  ЛОГИКИ! Далее капсом не пользуюсь;))

Дело в том, что наши платы выдают до 3,3 вольта на логический сигнал (не нужно сейчас лезть с мультиметром, это на десерт!!!!), для  драйвера по типу А4988 вполне, а вот что побольше и подальше от управляющей платы часто требует 4,5-5 вольт или даже 12/24 вольта но в паре с резисторами (чтобы не спалить мозги). Сегодняшние претенденты на звание идеально совместимой пары управляющей платы и внешнего драйвера для точного перемещения…..

Плата SKR V2.0 и драйвера DM556. У кого что-то другое (хоть пара рампс и tb6600) не переживайте, инструкция универсальна!!!

Собственно драйвер:

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))И плата:

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

От платы на драйвера у нас всегда идут только два управляющих сигнала: STEP (его ещё называют PULSE) — сигнал шага и DIR — в какую сторону «шагать». Можно посмотреть их на обороте платы или на маленьком драйвере (в какую ячейку  втыкивается ножка когда вставляете драйвер), у маленьких драйверов это соседние ножки,  также найдем GND напротив DIR:

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие)) 

Мои STEP (левая ячейка для одной ножки) и DIR (правая ячейка для одной ножки), GND напротив DIR

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

Проверим же наверняка сколько  вольт выдают пины нашей логики! В 99,9% случаев у плат для 3D принтеров это будет до 3,3 вольт. Замеряем напряжение мультиметром в режиме постоянного тока на каком-нибудь из рабочих концевиков (тот что щелкает при парковке), для этого отключаем его и тыкаем щупами в логический пин (тот что не +5V) и GND, у меня получилось +3,25 V (если перепутали плюс и GND,то покажет -3,25 V)

-Почему не измерил пины STEP и DIR?

-Для этого пришлось бы использовать не мультиметр за 450 рублей, а осциллограф, который бы улавливал импульсный ток во время движения по осям. STEP и DIR импульсные сигналы, имеющие частоту (до 200 000 раз в секунду ) и ширину (грубо говоря это длительность импульса),  в отличии от вкл/выкл режима концевичков. Однако и то и то идет по пути логического сигнала от управляющего чипа, вряд ли будет иное напряжение на STEP и DIR. Если нет осциллографа, но очень хочется проверить что выдает именно STEP и DIR , то придется поменять одного из них местами с логическим пином концевика, по этому поводу я снял небольшое видео где меняю пины термисторов https://www.youtube.com/watch?v=oS29VAp2JGo  , главное не забудьте потом вернуть все на место!  

Переходим к драйверу!!! Гуглим DM556 pdf, нам выдается инструкция то ли даташит (уж как не называй) на наш драйвер. Иногда есть несколько инструкций, смело выбирайте наиболее удобную (с красивыми табличками и рисунками)). Листаем до табличек с описанием токов нашим драйверам:Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

Тут нас интересуют:

1) Output current — максимальный ток на двигателе, который указывается в PDF двигателя и выставляется маленькими переключателями на драйвере 

2) Supply voltage — напряжение блока питания драйвера , 36 ок, но пальцы лучше не сувать 

Если набрать название нашего мотора и слово PDF, то там помимо ампер будет указание VDC и значение порядка 1-5 вольт, однако драйвера управляют моторами не постоянным током, а по принципу шим (кто слышит писк мотора — это работа шим), что это читайте отдельно, но если коротко 36 вольт подаются не постоянно, а вкл/выкл много много раз в секунду

3) Logic signal current —  ток для логического сигнала , до 16 мА, то есть до 0,016 А

4) Pulse input frequency — частота логики в кГЦ, до 200 кГЦ (Понадобится при прошивке )

5) Что-то там про сопротивление изоляции, не важно))

Проматываем до таблички управляющих сигналов и тут… 4-5 V для верхнего сигнала PUL (STEP) и DIR!!!  А при наличии резисторов можно и 12 вольт и 24, но у нас только 3,25 V.  

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

Что касается сигнала ENA (Enable) его обычно не подключают т.к. из-за него драйвер будет игнорировать сигналы STEP и DIR , зачем оно нам?)) Но кому надо тому надо!)) Перед тем как начнем паять (или кому удобнее собирать брэдборд) листаем наш pdf и находим схемку с сопротивлением пинов драйвера:Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

Сопротивление 270 Ом, при напряжении 4-5 вольт ток по закону Ома как раз около 16 мА, при 12 и резисторе на 1 кОМ +270 Ом уже 9,5 мА, при 24 и 2кОМ + 270 Ом тоже в районе 10 мА, как того и требует инструкция. На наших платах достаточно 5-ти вольтовых источников питания для концевиков, используем их. Тут нужно загуглить ближайший «Магазин радиотехники» и набрать npn транзисторов и к ним резисторов (dc-dc повышающие преобразователи не прокатят). Стоят они по несколько рублей (а иногда и по рублю), какие именно нужно можно легко подсчитать:

Сопротивление как DIR так и STEP у драйвера 270 Ом, напряжение хотим 4-5V (это напряжение коллектор-эмиттер), а управляющий сигнал порядка 3,25 вольт (это напряжение база-эмиттер) . Под такие цели можно найти много транзисторов, я выберу 2N3904, у которого напряжение база-эмиттер до 6 вольт, а коллектор-эмиттер аж до 40. 

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))На один драйвер понадобится 2 транзистора. Резисторов же нужно аж 2 штуки. Рассчитаем какие нужны:

Т.к. у нас напряжение +5 вольт с платы, а транзисторы снижают напряжение где-то на 0,6 вольт, то при 4,4 вольтах и 270 Ом ток коллектор-эмиттер будет около 16 мА, что хорошо. Смотрим на картинку — база это лапка посередине, к ней подключаем наши 3,25 вольт через резистор номиналом (3,25-0,6)/(0,016/200)=33000 Ом или 33 кОМ, где 3,25 V это напряжение логики, 0,6 V падение напряжение, 0,016 A подсчитанный выше ток, 200 это средний коэффициент усиления (hfe) транзистора с картинки выше. Таким образом нам нужен резистор 33-35 кОМ. Также необходим более мощный резистор на 500-1000 кОМ (1 мегаом), который будет служить стягивающим резистором, получится так:

Правильная настройка и подключение БОЛЬШИХ внешних драйверов под 3D принтер или чпу станок : tb6600, DM556 и другие))

Осталось совсем немного!! Надо подправить прошивку под наш внешний драйвер: задать частоту, длительность импульса и задержки)) Кто перепиновывал пин — вернуть все обратно.  Заходим в Configuration_adv.h, изменяем количество сегментов (у нас ведь теперь хорошие большие драйвера:))

/ Moves (or segments) with fewer steps than this will be joined with the next move

#define MIN_STEPS_PER_SEGMENT 1

Далее устанавливаем задержки для сигнала DIR по PDF файлу драйвера (таблички в начале), у меня это минимум 5 микросекунд, тут её указывают в наносекундах, значит 5000 ns, я поставлю 6000

/**

 * Minimum delay before and after setting the stepper DIR (in ns)

 * 0 : No delay (Expect at least 10µS since one Stepper ISR must transpire)

 * 20 : Minimum for TMC2xxx drivers

 * 200 : Minimum for A4988 drivers

 * 400 : Minimum for A5984 drivers

 * 500 : Minimum for LV8729 drivers (guess, no info in datasheet)

 * 650 : Minimum for DRV8825 drivers

 * 1500 : Minimum for TB6600 drivers (guess, no info in datasheet)

 * 15000 : Minimum for TB6560 drivers (guess, no info in datasheet)

 *

 * Override the default value based on the driver type set in Configuration.h.

 */

#define MINIMUM_STEPPER_POST_DIR_DELAY 6000

#define MINIMUM_STEPPER_PRE_DIR_DELAY 6000

Очень важная штука — ширина импульса, в табличке пишут что pul не менее 2,5 микросекунд, но лучше я поставлю 5 микросекунд.

/**

 * Minimum stepper driver pulse width (in µs)

 * 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers

 * 0 : Minimum 500ns for LV8729, adjusted in stepper.h

 * 1 : Minimum for A4988 and A5984 stepper drivers

 * 2 : Minimum for DRV8825 stepper drivers

 * 3 : Minimum for TB6600 stepper drivers

 * 30 : Minimum for TB6560 stepper drivers

 *

 * Override the default value based on the driver type set in Configuration.h.

 */

#define MINIMUM_STEPPER_PULSE 5

И конечно же частота импульса. Драйвера способны выдавать до 200 кГц, но мы увеличили длительность импульса в 2 раза, поэтому уменьшаем частоту в 2 раза и оставляем 100 кГц  

 * Maximum stepping rate (in Hz) the stepper driver allows

 * If undefined, defaults to 1MHz / (2 * MINIMUM_STEPPER_PULSE)

 * 5000000 : Maximum for TMC2xxx stepper drivers

 * 1000000 : Maximum for LV8729 stepper driver

 * 500000 : Maximum for A4988 stepper driver

 * 250000 : Maximum for DRV8825 stepper driver

 * 150000 : Maximum for TB6600 stepper driver

 * 15000 : Maximum for TB6560 stepper driver

 *

 * Override the default value based on the driver type set in Configuration.h.

 */

#define MAXIMUM_STEPPER_RATE 100000

!!!!И ТЕПЕРЬ САМОЕ ВАЖНОЕ!!!

Без чего драйвера не будут работать (а так могут неплохо «шевелиться» и на 3,25 вольт):

Практически для всех больших драйверов тут нужно поменять false на true

// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.

define INVERT_X_STEP_PIN true

#define INVERT_Y_STEP_PIN false

#define INVERT_Z_STEP_PIN false

#define INVERT_I_STEP_PIN false

#define INVERT_J_STEP_PIN false

#define INVERT_K_STEP_PIN false

#define INVERT_U_STEP_PIN false

#define INVERT_V_STEP_PIN false

#define INVERT_W_STEP_PIN false

#define INVERT_E_STEP_PIN false

Общие сведения:

Шаговый двигатель это бесколлекторный двигатель, ротор которого вращается не плавно, а шагами (дискретно). Один оборот ротора (360°) состоит из определённого количества шагов. Количество полных шагов в одном обороте указывается в технической документации двигателя.

Например, ротор шагового двигателя 17HS1352-P4130, за один полный шаг, поворачивается на 1,8°. Значит для поворота ротора на 360° двигатель должен совершить 200 полных шагов.

Для совершения одного полного шага на обмотки двигателя поступает серия сигналов от драйвера (как в полношаговом «1», так и в микрошаговых режимах «2», «4», «8», «16»).

С принципом работы шаговых двигателей можно ознакомиться в разделе Wiki — ШД.

Микрошаг:

Большинство драйверов позволяют разделить полный шаг двигателя на несколько микрошагов. Выбор микрошага устанавливается согласно таблице в инструкции к драйверу. В таблице указывается количество микрошагов на полный шаг «Microstep» (1/2/4/8/16/32/…) и/или количество тактов на полный оборот вала «Pulse/rev» (200/400/800/1600/3200/6400/…).

Если для целого поворота ротора двигателя в режиме 1 микрошаг на полный шаг требуется 200 тактов, то в режиме 4 микрошага на полный шаг, потребуется уже 800 тактов.

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

Ограничение тока фазы:

Большинство драйверов позволяют ограничить ток фазы (ток протекающий через обмотки двигателя). Выбор тока фазы осуществляется согласно таблице в инструкции к драйверу. В таблице указывается действующий ток «Current» и/или пиковый ток «PK Current». Чем выше ток, тем выше отдаваемый момент (сила двигателя).

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

У некоторых драйверов ограничение тока осуществляется поворотом потенциометра.

Ток удержания:

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

Снижение тока удержания приводит к снижению нагрева двигателя при его удержании.

Силовые выводы драйвера:

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

  • Входы «VCC», «GND» / «+V», «GND» / «AC+», «AC-» — предназначены для получения напряжения питания шагового двигателя.
  • Выводы «A+» и «A-» — предназначены для подключения первой обмотки шагового двигателя.
  • Выводы «B+» и «B-» — предназначены для подключения второй обмотки шагового двигателя.

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

Драйверы DM860H, DM556, TB6600 позволяют работать только с биполярными двигателями. Двигатели с 4 выводами подключаются по схеме А. Двигатели с 6 выводами подключаются по схеме Б или В. Двигатели с 8 выводами подключаются по схеме Г или Д.

Запрещается подключать или отключать обмотки двигателя на включенном драйвере!

Сигналы управления STEP/DIR (PUL/DIR):

  • Вход драйвера «STEP» (он же «PULSE») — предназначен для получения тактовых импульсов. За один импульс ротор двигателя поворачивается на один микрошаг. Вход может работать по фронту или спаду импульса. Чем выше частота импульсов, тем выше скорость вращения ротора.
  • Вход драйвера «DIR» — предназначен для выбора направления вращения двигателя («0» — в одну сторону, «1» — в другую сторону). Смена состояния вывода «DIR» должна осуществляться при отсутствии импульсов на выводе «STEP».
  • Вход драйвера «ENABLE» — разрешает работу двигателя. У большинства драйверов данный вход является инверсным, работа двигателя разрешена при отсутствии напряжения на входе. Некоторые драйверы позволяют вообще не подключать этот вход. Если работа двигателя запрещена, то его обмотки электрически отключаются и вал двигателя не удерживается.

  • Двигатель отключён если на входе «ENABLE» есть напряжение.
    Сигналы на входах «STEP» и «DIR» игнорируются драйвером. Вал двигателя освобождён.
  • Вал поворачивается на один микрошаг с каждым импульсом на входе «STEP», при условии что на входе «ENABLE» нет напряжения.
    Направление поворота вала зависит от состояния на входе «DIR».
  • Вал двигателя удерживается в неподвижном состоянии если на входе «ENABLE» нет напряжения и на вход «STEP» не подаются импульсы.
  • t1: После снятия напряжения со входа «ENABLE» должно пройти не менее 5мкс до изменения уровня на входе «STEP» или «DIR».
  • t2: После изменения состояния на входе «DIR» должно пройти не менее 5мкс до подачи импульса на вход «STEP».
  • t3, t4: Длительность импульса или паузы на входе «STEP» не должна быть меньше 2,5мкс.
  • t5: Автоматическое снижение тока удержания происходит через 1-2 сек после подачи последнего импульса на вход «STEP». Время зависит от типа драйвера.

Сигналы управления CW/CCW:

(Данные сигналы не поддерживаются драйверами DM860H, DM556, TB6600)

  • Вход драйвера «CW» — предназначен для получения тактовых импульсов. За один импульс ротор двигателя поворачивается на один микрошаг. Вход может работать по фронту или спаду импульса. Чем выше частота импульсов, тем выше скорость вращения ротора.
  • Вход драйвера «CCW» — выполняет те же действия что и вход «CW», но ротор двигателя поворачивается в другую сторону.
  • Вход драйвера «ENABLE» — разрешает работу двигателя. У большинства драйверов данный вход является инверсным, работа двигателя разрешена при отсутствии напряжения на входе. Некоторые драйверы позволяют вообще не подключать этот вход. Если работа двигателя запрещена, то его обмотки электрически отключаются и вал двигателя не удерживается.

  • Двигатель отключён если на входе «ENABLE» есть напряжение.
    Сигналы на входах «CW» и «CCW» игнорируются драйвером. Вал двигателя освобождён.
  • Вал поворачивается на один микрошаг с каждым импульсом на входе «CW» или «CCW», при условии что на входе «ENABLE» нет напряжения.
    Направление поворота вала зависит от того, на какой вход поступают импульсы.
  • Вал двигателя удерживается в неподвижном состоянии если на входе «ENABLE» нет напряжения и на входы «CW» и «CCW» не подаются импульсы.
  • t1: После снятия напряжения со входа «ENABLE» должно пройти не менее 5мкс до подачи импульса на вход «CW» или «CCW».
  • t2: После последнего импульса на одном входе должно пройти не менее 5мкс до подачи импульса на дрогой вход.
  • t3, t4: Длительность импульса или паузы не должна быть меньше 2,5мкс.
  • t5: Автоматическое снижение тока удержания происходит через 1-2 сек после подачи последнего импульса. Время зависит от типа драйвера.

Подключение управляющих выводов драйвера:

Для подключения управляющих выводов можно использовать одну их следующих схем:

Допускается подключать драйвер к контроллеру без использования сигнала ENABLE, тогда выводы ENA+ и ENA- остаются свободными (не подключёнными).

  • При уровне логической «1» = 5В, все сопротивления R исключаются из схемы.
  • При уровне логической «1» = 12В, все сопротивления R равны 1кОм.
  • При уровне логической «1» = 24В, все сопротивления R равны 2кОм.

Подключение драйвера к Arduino:

Так как логические уровни Arduino UNO равны 5В, то при подключении управляющих выводов к драйверу, ограничивающие сопротивления R не нужны.

Для подключения драйвера к Arduino воспользуемся схемой где выводы PUL-, DIR-, ENA- подключены к GND контроллера (правая схема на картинке выше).

Если подключить драйвер к Arduino без использования сигнала ENABLE, оставив выводы ENA+ и ENA- не подключёнными, то приведённый ниже скетч не сможет освобождать вал. Вал двигателя будет удерживаться всё время, пока он не вращается.

Выводы драйвера ENA+, DIR+ и PUL+ можно подключить к любым выводам Arduino, их номера указываются в начале скетча. В примере это выводы 2, 3 и 4 соответственно.

Если для подключения драйвера воспользоваться схемой где выводы PUL+, DIR+, ENA+ подключены к 5V контроллера (левая схема на картинке выше), то в скетче нужно изменить логические уровни устанавливаемые функциями digitalWrite().

Управление двигателем при помощи Arduino:

Для работы скетча установите микрошаг 1/4, что соответствует 800 тактов на 1 оборот. Микрошаг устанавливается DIP-переключателями драйвера согласно таблице на его корпусе.

Скетч постоянно повторяет 4 действия:

  • Поворот вала на 2 полных оборота в одну сторону.
  • Остановка двигателя на 5 секунд с удержанием вала.
  • Поворот вала на 2 полных оборота в другую сторону.
  • Остановка двигателя на 5 секунд с освобождением вала.
const uint8_t pin_ENA = 2;                // Вывод Arduino подключённый к входу драйвера ENA+.
const uint8_t pin_DIR = 3;                // Вывод Arduino подключённый к входу драйвера DIR+.
const uint8_t pin_PUL = 4;                // Вывод 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 секунд. В это время двигатель отключен, его вал свободен.
}                                         //
  • Движение вала на 2 оборота в одну сторону:
    Перед началом движения вала мы разрешаем работу двигателя (установив 0 на выводе ENA) и выбираем направление движения (установив 0 или 1 на вывод DIR), далее выполняем движение подачей импульсов на вывод PUL в теле цикла for. Каждый импульс поворачивает ротор на угол одного микрошага. Микрошаг установлен DIP-переключателями в положение 800 тактов на полный оборот. Код цикла выполняется 1600 раз, значит вал повернётся на 2 оборота.
  • Остановка вала с удержанием:
    Двигатель не вращается, если на вывод PUL не поступают импульсы. Значит обычная задержка на 5000 мс приведёт к остановке двигателя на 5 секунд. Так как работа двигателя была разрешена (на выводе ENA ранее был установлен 0), то через обмотки двигателя будет протекать ток удержания вала.
  • Движение вала на 2 оборота в другую сторону:
    Направление движения вала определяется логическим уровнем на выводе DIR. Ранее на нём был установлен 0, значит теперь нужно установить 1. Далее подачей импульсов на вывод PUL мы заставляем вращаться вал, но теперь в другую сторону.
  • Остановка вала без удержания:
    В предыдущий раз мы останавливали двигатель прекращая подавать импульсы на вывод PUL, но не запрещали работу двигателя, в результате через его обмотки протекал ток удержания вала. Теперь мы запретим работу двигателя установив на выводе ENA уровень логической 1, что приведёт к исчезновению токов в обмотках двигателя. Теперь в течении 5 секунд, двигатель будет не только остановлен, но и его вал можно свободно вращать руками.

Управление шаговым двигателем по прерываниям от 2 таймера Arduino:

const uint8_t pin_ENA = 2;                // Вывод Arduino подключённый к входу драйвера ENA+.
const uint8_t pin_DIR = 3;                // Вывод Arduino подключённый к входу драйвера DIR+.
const uint8_t pin_PUL = 4;                // Вывод Arduino подключённый к входу драйвера PUL+.
                                          // Вывод GND Arduino соединён с входами драйвера ENA-, DIR-, PUL-.
volatile uint32_t step=0;                 // Переменная хранит количество микрошагов, которые требуется совершить.
                                          //
void setup(){                             //
     pinMode( pin_ENA, OUTPUT );          // Конфигурируем вывод Arduino как выход.
     pinMode( pin_DIR, OUTPUT );          // Конфигурируем вывод Arduino как выход.
     pinMode( pin_PUL, OUTPUT );          // Конфигурируем вывод Arduino как выход.
     funcSetTimer2( 1000 );               // Запускаем 2 таймер указав частоту следования микрошагов от 1 до 200'000 Гц.
}                                         // Чем выше частота, тем выше скорость вращения вала.
                                          //
void loop(){                              //
//   Готовимся к движению вала:           //
     digitalWrite( pin_ENA, 0 );          // Разрешаем работу двигателя.
     delayMicroseconds(5);                // Выполняем задержку t1 (см. график STEP/DIR).
     digitalWrite( pin_DIR, 0 );          // Выбираем направление вращения.
     delayMicroseconds(5);                // Выполняем задержку t2 (см. график STEP/DIR).
//   Поворачиваем вал на 2 оборота:       //
     step=1600;                           // Указываем количество микрошагов, которые требуется совершить.
     while(step){;}                       // Ждём обнуления переменной.
//   Останавливаем вал удерживая его:     // Двигатель не вращается, если на вывод PUL не поступают импульсы.
     delay(5000);                         // Ждём 5 секунд. В это время двигатель остановлен, его вал удерживается.
//   Меняем направление движения вала:    //
     digitalWrite( pin_DIR, 1 );          // Меняем логический уровень вывода DIR с 0 на 1.
     delayMicroseconds(5);                // Выполняем задержку t2 (см. график STEP/DIR).
//   Поворачиваем вал на 2 оборота:       //
     step=1600;                           // Указываем количество микрошагов, которые требуется совершить.
     while(step){;}                       // Ждём обнуления переменной.
//   Останавливаем вал без удержания:     //
     digitalWrite( pin_ENA, 1 );          // Запрещаем работу двигателя, отключаем токи в обмотках.
     delay(5000);                         // Ждём 5 секунд. В это время двигатель отключен, его вал свободен.
}                                         //
                                          //
//   ОБРАБОТКА ПРЕРЫВАНИЙ 2 ТАЙМЕРА:      //
ISR(TIMER2_COMPA_vect){                   // Функция вызывается по совпадению регистров TCNT2 и OCR2A.
      if( step ){                         // Если требуется выполнять микрошаги, то ...
          bool p = digitalRead(pin_PUL);  // Определяем текущее состояние на выводе PUL.
          digitalWrite(pin_PUL, !p);      // Меняем состояние на выводе PUL.
          if( p ){ step--; }              // Уменьшаем количество требуемых микрошагов.
      }                                   //
}                                         //
                                          //
//    ФУНКЦИЯ НАСТРОЙКИ 2 ТАЙМЕРА:        //
void  funcSetTimer2(uint32_t f){          // Параметр: «f» - частота тактирования ШД от 1 до 200'000 Гц.
      if(f>200000){f=200000;}
//    Определяем значение предделителя:
      uint16_t i; uint8_t  j; f*=2;
      if(f>(F_CPU/255/  1)){i=   1; j=1;}else
      if(f>(F_CPU/255/  8)){i=   8; j=2;}else
      if(f>(F_CPU/255/ 32)){i=  32; j=3;}else
      if(f>(F_CPU/255/ 64)){i=  64; j=4;}else
      if(f>(F_CPU/255/128)){i= 128; j=5;}else
      if(f>(F_CPU/255/256)){i= 256; j=6;}else
                           {i=1024; j=7;}
//    Устанавливаем регистры 2 таймера:
      TCCR2A = 0<<COM2A1 | 0<<COM2A0 | 0<<COM2B1 | 0<<COM2B0 | 1<<WGM21  | 0<<WGM20;
      TCCR2B = 0<<FOC2A  | 0<<FOC2B  | 0<<WGM22  | j;
      OCR2A  = (uint8_t)(F_CPU/(i*f))-1;
      TIMSK2 = 0<<OCIE2B | 1<<OCIE2A | 0<<TOIE2;
      SREG   = 1<<7;
}

Данный скетч выполняет те же действия что и предыдущий. Но подача импульсов на вывод PUL осуществляется не в цикле основного кода, а по прерываниям от таймера.

Как только переменной step присваивается число отличное от 0, то на драйвер начинают поступать импульсы. Значение step убывает с каждым поданным импульсом, пока не достигнет 0, что приведёт к остановке вала двигателя. Частота подачи импульсов в Гц указывается функцией funcSetTimer2().

В данном скетче мы ждём завершение вращения вала проверяя значение step в цикле while, вместо этого можно выполнять другие действия, например, опрашивать концевики, датчики, измерять пройденное расстояние и т.д.

Код работает на Arduino UNO, Pro Mini, Nano, Mega.

Ссылки

  • Шаговые двигатели.
  • Драйвер шагового двигателя, TB6600 (4.0А).
  • Драйвер шагового двигателя DM556 (5.6A).
  • Драйвер шагового двигателя DM860H (7.2A).
  • Wiki — Шаговые двигатели.

Опять я, к вам со своими обзорами, по ЧПУ.
Ну мало ли, может кому и интересно будет, про ЧПУ строение.

Для начала кто не знает, или просто знает такие слова, как контролер, драйвер и опторазвязка. В чем их отличие?

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

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

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

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

Я тоже кстати сглупил, заказал такой. Он по хорошему не сильно то и нужен.
Раб. поле я свое знаю, поэтому детали сразу под него разрабатываю. Конечники не сильно и нужны. Включение шпинделя, мне тоже как то не нужно.
Кто его знает, глюканет там контролер и пока я фрезу на мощном фрезере меняю, он возьмет и включится. Пальцы как с куста, улетят.

В общем теории немного, вам дал. Еще немного схемотехники по подключению драйверов на порты.

Есть 2 такие основные схемы подключения.

Китайцы в основном как один первую советуют. Но она не всегда срабатывает.
Я уже писал обзор покупки TB6600, а на самом деле там оказалась TB67S109AFTG. Микруха намного мелкоскопичней чем первая.

И по даташиту вроде как более слабая по току.
Обзор мой здесь mysku.club/blog/aliexpress/41551.html

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

В общем описываю, что я заказал и получил.
Продавец хороший, быстро отправил и через пару недель, получил на почте, хотя вроде по деньгам и недорого. Был нормальный трек, который всю дорогу бился.
Границу как по маслу проскочил, а также таможню Екатеринбург. Даже удивительно, обычно там «черная яма». Видно от трека зависит.

Пришло в сером пакете, хорошо замотанным скотчем, упаковкой с пупырушками и сами драйвера в картонных коробках, без всяких надписей. Картон хороший.

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

Для любителей рассматривать детали еще вид, крупно. Там и таблица переключателей, чтобы получать различные микрошаги и токи на драйвере.

Ну и еще пару вам видов с боку.

Думаю по самой железке теперь у вас представление есть.
Теорию всё могут и по обзору предыдущему посмотреть и по Инет детали.

Но практика как оказалась, совсем другую картину дает.

Во первых по первым мной заказанным драйверам на TB67S109AFTG, схема подключения которые китайцы дают. То есть вверху №1 Не работает.
Мучился, что только не делал и с подключением и настройками в Масн.
Крутила зараза лишь в одну сторону. Пока не подключил по схеме №2.
Тогда всё стало на свои места и заработало как положено.

Единственно опасаюсь на драйвере ток больше 2.6А давать. Хотя схему охлаждения по своему переделал. Заводская совсем не вдохновила.

Так вот сегодня пробывал и первые драйвера и вторые, на одних и тех же режимах. То есть ток 2.6А и микрошаг 1/16
И здесь все теории и даташиты к чертям просто полетели.
Первый заказанный драйвер, просто шуршит осями. А вот второй на оригинальной TB6600 скрип, дерганье какое то. Чувствуется, что движок как бы рывками крутит.

Вот вам и Термобутерброд. Он то оказался намного лучше.
Конечно ещё нужно поэксперементировать. Но уже видно. Так как перекидывал оси, один шепчет, другой скрипит.

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

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

Также переключатели, смотря какого исполнения, совсем не у всех ON вверху находиться, у некоторых наоборот вниз нужно переключить.

Будьте Внимательны!!! Джин не дремлит.

Ну и бонусы.

Бонусы от меня

Two-phase hybrid, 42 stepper motor, NEMA17, 17HS2408, printer motor, height 28mm Двухфазный гибрид, 42 шагового двигателя, NEMA17, 17HS2408, мотор принтера, высота 28 мм CNY 1020/Шт/Лот 5Nema 17 Stepper Motor Bipolar 2A 59Ncm/84oz.in 42 Stepper Motor Nema 17 шаговый двигатель биполярный 2A 59Ncm/84oz.in 42 шаговый двигатель CNY 80/Шт/Лот 1Shaft diameter 8, 42BYGH60, 42 stepper motor, NEMA17   1.7A, body 60 Диаметр вала 8, 42BYGH60, 42 шаговый двигатель, NEMA17 1.7A, корпус 60 CNY 130/Шт/Лот 142 stepper motor, shaft length 11, 0.45Nm, washing flat shaft, 42BYGH40 motor 42 шаговый двигатель, длина вала 11, 0.45Nm, стиральная плоский Вал, двигатель 42BYGH40 CNY 60/Шт/Лот 1SMT placement machine nozzle 500 501 502 503 504 505 506 507 508 nozzle SMT СОПЛО машины установки 500 501 502 503 504 505 506 507 508 сопло CNY 120/Шт/Лот 1Ultra-thin body, 0.09NM, 0.8A, 42 stepper motor, 20mm NEMA17 Ультратонкий корпус, 0.09NM, 0.8A, 42 шаговый двигатель, 20 мм NEMA17 CNY 70/Шт/Лот 1Single-axis / dual-axis 0.51nm, extended body 60mm, 35 two-phase hybrid motor Одноосный/двухосный 0.51нм, Расширенный корпус 60 мм, 35 двухфазный гибридный мотор CNY 130/Шт/Лот 136 circular stepper motor, 0.9° ultra-thin body, precision small motor, 36mm motor, 0.3A 36 круговой шаговый двигатель, 0,9 ° ультра-тонкий корпус, точность небольшой мотор, 36 мм мотор, 0.3A CNY 115/Шт/Лот 1NeMA 17 Stepper Motor 17HS08-1004S 20MM 1A 16NcM(22.6oz.iN) NeMA 17 шаговый двигатель 17HS08-1004S 20 мм 1A 16NcM (22,6 oz.iN) CNY 70/Шт/Лот 142 stepper motor/1.7A 40mm 17HS4401S 0.45Nm 1.8 degrees 42 шаговый двигатель/1.7A 40 мм 17HS4401S 0.45Nm 1,8 градусов CNY 60/Шт/Лот 1NEMA23 stepper motor, 57 stepper motor, 1.8 degree step angle, 56mm body, two-phase four-wire NEMA23 шаговый двигатель, 57 шаговый двигатель, 1,8 градусов Шаговый угол, 56 мм корпус, двухфазный четырехпроводный CNY 125/Шт/Лот 157H730 Nema 23 Stepper Motor Bipolar 2,0Nm 285oz-in 8mm 57H730 Nema 23 шаговый двигатель биполярный 2 0нм 285oz-in 8 мм CNY 170/Шт/Лот 1Nozzle connecting rod, placement head of placement machine, placement machine SMT, 20 placement machine motor Сопло шатун, размещение головки машины размещения, размещение машины SMT, 20 размещение машинного мотора CNY 150/Шт/Лот 120 hollow shaft, 30mm placement machine, stepper motor, elongated shaft, inner hole 2.5 20 полый вал, 30 мм машина размещения, шаговый двигатель, удлиненный вал, внутреннее отверстие 2,5 CNY 180/Шт/Лот 1BLDC MOTOR DRIVER BLD-300B Brushless motor driver DC18-50V 15A BLDC мотор драйвер BLD-300B бесщеточный мотор драйвер DC18-50V 15A CNY 310/Шт/Лот 1SD-32208 Digital Stepper Motor Driver SD-32208 Цифровой Драйвер шагового двигателя CNY 1120/Шт/Лот 120 28 35 36 396 42 Stepper motor driver, DC10-36V two-phase stepper motor driver 20 28 35 36 396 42 Драйвер шагового двигателя, DC10-36V двухфазный Драйвер шагового двигателя CNY 150/Шт/Лот 1DM542, low-calorie digital driver, STEP MOTOR DRIVER VDC20-50V DM542, низкокалорийный цифровой драйвер, Драйвер шагового двигателя VDC20-50V CNY 156/Шт/Лот 1SH-32206 Three-phase hybrid stepping motor driver SH-32206 трехфазный гибридный шаговый двигатель CNY 1000/Шт/Лот 120 hollow shaft, with M5 thread, mounter motor, hollow shaft stepper motor 20 полый вал, с резьбой M5, монтажный двигатель, полый вал шагового двигателя CNY 70/Шт/Лот 10.9deg Nema17 Stappenmotor 48mm 46Ncm 2A, 42 stepper motor 0.9deg Nema17 Stappenmotor 48 мм 46Ncm 2A, 42 шаговый двигатель CNY 110/Шт/Лот 1Motor driver debugger, handheld smart debugger, HISU-DM, HISU debugger Двигатель драйвер отладчик, ручной умный отладчик, HISU-DM, HISU отладчик CNY 90/Шт/Лот 10.44Nm, 1.68A, 42 stepper motor, printer, 42BYGH48 motor Nema17 0.44Nm, 1.68A, 42 шаговый двигатель, принтер, 42BYGH48 мотор Nema17 CNY 80/Шт/Лот 142BYGH34 double shaft motor, 42 stepper motor, double output shaft, 0.32Nm, 1.8 degrees 42BYGH34 двойной вал двигателя, 42 шаговый двигатель, двойной выходной вал, 0,32 нм, 1,8 градусов CNY 70/Шт/Лот 157 motor lengthened body 112mm, high torque 3N.m, two-phase four-wire, 4.2A, 57 stepping motor 57 мотор удлиненный корпус 112 мм, высокий крутящий момент 3н. М, двухфазный четырехпроводной, 4.2A, 57 шаговый двигатель CNY 250/Шт/Лот 186 three-phase stepping motor, 12Nm, package driver, high voltage 220V, 86 three-phase motor, 1.2 degrees, 3A 86 трехфазный шаговый двигатель, 12 нм, посылка-драйвер, высокое напряжение 220 В, 86 трехфазный двигатель, 1,2 градусов, 3A CNY 1320/Шт/Лот 1CNC accessories, stepper motor driver HY-DIV268N-5A Аксессуары с ЧПУ, Драйвер шагового двигателя HY-DIV268N-5A CNY 110/Шт/Лот 1NEMA17stepper motor for printer 17HS4401 NEMA17stepper двигатель для принтера 17HS4401 CNY 60/Шт/Лот 135 stepper motor, body 52, NEMA14 MOTOR 1.5A 0.4Nm, 35BYG52 35 шаговый двигатель, корпус 52, двигатель NEMA14 1.5A 0.4Nm, 35BYG52 CNY 130/Шт/Лот 157 stepper motor, 57BYG250C, shaft diameter 8mm, 1.8NM, two-phase four-wire, high quality 57 шаговый двигатель, 57BYG250C, диаметр вала 8 мм, 1.8нм, двухфазный четырехпроводной, высокое качество CNY 165/Шт/Лот 157 stepper motor, 57BYGH56, 1.2Nm, two-phase hybrid, shaft diameter 8mm, Nema23 57 шаговый двигатель, 57BYGH56, 1.2нм, двухфазный гибрид, диаметр вала 8 мм, Nema23 CNY 110/Шт/Лот 1Microstep Driver TB6600 DC9-42VDC Upgraded 42/57 Stepper Motor Driver Драйвер микрошагового двигателя TB6600 DC9-42VDC 42/57 CNY 60/Шт/Лот 139 stepper motor, 39BYG small motor, 20mm body, 0.4A, 39BYGH20 motor, thin body 39 шаговый двигатель, 39BYG маленький двигатель, 20 мм корпус, 0.4A, 39BYGH20 двигатель, тонкий корпус CNY 45/Шт/Лот 157BYGH76 stepper motor, 1.8 degrees, 4.2A, 1.8Nm, 57 stepper motor, Nema23 stepper motor 57BYGH76 шаговый двигатель, 1,8 градусов, 4.2A, 1.8нм, 57 шаговый двигатель, Nema23 шаговый двигатель CNY 170/Шт/Лот 1Printer dedicated motor, two-phase hybrid 42 stepper motor, NEMA 17, 17HS2408, washing flat shaft Специальный двигатель для принтера, двухфазный гибридный 42 шаговый двигатель, NEMA 17, 17HS2408, моющий плоский Вал CNY 50/Шт/Лот 142 stepper motor, short body, ultra-thin body 22mm, 0.09Nm, 1.8 degrees, two-phase four-wire 42 шаговый двигатель, короткое тело, ультра-тонкий корпус 22 мм, 0.09Nm, 1,8 градусов, двухфазный четырехпроводной CNY 60/Шт/Лот 1PM25 permanent magnet motor, 25BY permanent magnet motor, 12V, 5 wires, 25mm permanent magnet motor, 25 diameter motor PM25 двигатель с постоянным магнитом, 25BY двигатель с постоянным магнитом, 12 В, 5 проводов, 25 мм двигатель с постоянным магнитом, двигатель с диаметром 25 CNY 30/Шт/Лот 1DM420 low-calorie digital driver, STEP MOTOR DRIVER DC12V-36V DM420 низкокалорийный цифровой драйвер, Драйвер шагового двигателя DC12V-36V CNY 150/Шт/Лот 1Printer motor, 42-20 extrusion motor, 20mm height, 42 stepper motor, 42BYG20 Двигатель принтера, 42-20 экструзионный двигатель, 20 мм высота, 42 шаговый двигатель, 42BYG20 CNY 65/Шт/Лот 1Printer motor, 2A 0.59Nm, printer motor, 42x48mm Мотор принтера, 2А 0.59нм, мотор принтера, 42×48мм CNY 80/Шт/Лот 142 stepper motor, 3D printer accessories, 17HS8401, two-phase four-wire, 1.8 degrees, 1.7A, 0.55Nm 42 шаговый двигатель, аксессуары для 3D-принтера, 17HS8401, двухфазный четырехпроводной, 1,8 градусов, 1.7A, 0,55 нм CNY 70/Шт/Лот 1

024640.jpg

  • Цена: US $8.89

Опять я, к вам со своими обзорами, по ЧПУ. Ну мало ли, может кому и интересно будет, про ЧПУ строение. Для начала кто не знает, или просто знает такие слова, как контролер, драйвер и опторазвязка. В чем их отличие? Контролер, есть универсальный, на несколько осей, обычно под небольшие токи, на нем и опторазвязку обычно ставят, релюхи всякие и т.д. и т.п. Универсальный стоит подороже и если что полетит, то трудней причину искать будет. Есть более простой контролер, там отсутствуют драйвера. Так как двигатели могут разной мощности быть, ну и под них разные драйвера. Так же на осях различных могут шаговые движки разные стоять. На разный ток. То есть драйвер. самый нам нужный, чтобы ШД управлять. Там обычно перемычками, переключателями мы и выставляем ток и микрошаг для ШД. Сейчас драйвера идут почти сплошь, уже с оптронами, то есть с опторазвязкой. Но кто не знает, по привычке покупает, контролер с опторазвязкой на нем, а к ним уже драйвера подключает. Я тоже кстати сглупил, заказал такой. Он по хорошему не сильно то и нужен. Раб. поле я свое знаю, поэтому детали сразу под него разрабатываю. Конечники не сильно и нужны. Включение шпинделя, мне тоже как то не нужно. Кто его знает, глюканет там контролер и пока я фрезу на мощном фрезере меняю, он возьмет и включится. Пальцы как с куста, улетят. В общем теории немного, вам дал. Еще немного схемотехники по подключению драйверов на порты. Есть 2 такие основные схемы подключения.7645da.jpg Китайцы в основном как один первую советуют. Но она не всегда срабатывает. Я уже писал обзор покупки TB6600, а на самом деле там оказалась TB67S109AFTG. Микруха намного мелкоскопичней чем первая. И по даташиту вроде как более слабая по току. Обзор мой здесь mysku.ru/blog/aliexpress/41551.html Там подробно вроде всё обсудили. Поэтому после него я опять заказал драйвера на TB6600, где уже наглядно на фото видно, что стоит именно эта микруха. Также выбирал, чтобы ток перемеником не накручивать, а то ошибка и спалить можно. Так как есть и такого исполнения, они немного подешевле будут. А есть закрытого типа, они подороже. Ну и радиатор там помощней. В общем описываю, что я заказал и получил. Продавец хороший, быстро отправил и через пару недель, получил на почте, хотя вроде по деньгам и недорого. Был нормальный трек, который всю дорогу бился. Границу как по маслу проскочил, а также таможню Екатеринбург. Даже удивительно, обычно там «черная яма». Видно от трека зависит. Пришло в сером пакете, хорошо замотанным скотчем, упаковкой с пупырушками и сами драйвера в картонных коробках, без всяких надписей. Картон хороший.58ebbb.jpg Сами драйвера, неплохо выполненные. Пайка приличная. Емкость немного кривовато стояло на одном. Не стал выправлять. Термопасты под TB6600 тоже не пожалели, даже с лишком, ваткой лишнее убрал с боков. Для любителей рассматривать детали еще вид, крупно. Там и таблица переключателей, чтобы получать различные микрошаги и токи на драйвере. Ну и еще пару вам видов с боку.

Думаю по самой железке теперь у вас представление есть. Теорию всё могут и по обзору предыдущему посмотреть и по Инет детали. Но практика как оказалась, совсем другую картину дает. Во первых по первым мной заказанным драйверам на TB67S109AFTG, схема подключения которые китайцы дают. То есть вверху №1 Не работает. Мучился, что только не делал и с подключением и настройками в Масн. Крутила зараза лишь в одну сторону. Пока не подключил по схеме №2. Тогда всё стало на свои места и заработало как положено. Единственно опасаюсь на драйвере ток больше 2.6А давать. Хотя схему охлаждения по своему переделал. Заводская совсем не вдохновила. Так вот сегодня пробывал и первые драйвера и вторые, на одних и тех же режимах. То есть ток 2.6А и микрошаг 1/16 И здесь все теории и даташиты к чертям просто полетели. Первый заказанный драйвер, просто шуршит осями. А вот второй на оригинальной TB6600 скрип, дерганье какое то. Чувствуется, что движок как бы рывками крутит. Вот вам и Термобутерброд. Он то оказался намного лучше. Конечно ещё нужно поэксперементировать. Но уже видно. Так как перекидывал оси, один шепчет, другой скрипит.Вот такие пироги. Всем Долгих лет жизни и удачи. Спрашиваем не стесняемся. Любители минусовать, имейте все же хоть немного совести, прежде чем по кнопке тыкать. Ну и бонусы.Бонусы от меня

21 января 2018, 00:37 | Блог им. lexus08

Категорически приветствую всех читателей блога Live от iXBT!

Небольшой обзор драйверов TB6600 для шаговых двигателей 42/57/86.

Опять делюсь своим опытом приобретения товаров на китайской торговой площадке Taobao.

Я уже поднимал тему про посредника YOYBUY в прошлом обзоре.

Поэтому подробно останавливаться на выборе и заказе товаров на Таобао не буду (можно посмотреть в этом обзоре).

 Для управления двигателями самосборных ЧПУ станков и 3D принтеров требуются специальные драйверы. Одни из самых распространенных – это дешевые драйверы типа TB6600/TB6560. И если TB6560 — это достаточно бюджетные драйверы, то TB6600 являются более продвинутыми как в плане настроек (ограничения тока, степпинг и т.п.), так и в плане мощности. Драйверы TB6600 позволяют управлять шаговыми двигателями типа 42/57/86 (это соответствует типоразмерам NEMA17/23/34) и выдают до 4.5А на обмотки.

Ссылка на Таобао: TB6600 в корпусе (¥23.80) и TB6600  без корпуса (¥27.50).

Тоже самое, но через посредника: TB6600 в корпусе ($3.78) и TB6600  без корпуса ($4.37). На Али подобное стоит около $10/шт. (за исключением ТВ6560, которые имеют более «слабые» характеристики, подешевле).

На рисунке TB6600 в корпусе (слева) и TB6600 без корпуса (справа).

Заказывал много, сразу под несколько проектов, так как выгоднее, чем на Али или в оффлайне.

Данные драйверы более мощные и имеют микростеппинг до 1/32, а также вполне подходят для 3D принтеров. Основное применение — работа в связке с шаговыми двигателями 42/57/86 в станках ЧПУ и прочих подобных самоделках. 

Характеристики драйверов ТВ6600 (в корпусе)

  • Рабочий ток/пиковый ток, до: 3.5А/4А
  • Микрошаг: 32
  • Импульсов на оборот: 6400
  • Напряжение питания 9….42В постоянного тока.
  • Масса: около 130 г
  • Размеры: 96 х 56 х 35 мм

Это небольшой блок для монтажа в стойку/корпус, с двумя клеммными колодками. Корпус одновременно служит и радиатором охлаждения.

На корпусе нанесена таблица режимов работы

Устанавливаются режимы переключателями SW1-SW6 согласно таблице

Проверка массы (критично для большого заказа с Таобао)

Габаритные размеры 96 х 56 х 35 мм

Для сравнения = рядом со вторым драйвером ТВ6600, который без корпуса.

Характеристики драйверов ТВ6600 (без корпуса)

  •  Рабочий ток/пиковый ток, до: 4.2А/4.5А
  • Микрошаг: 16
  • Импульсов на оборот: 3200
  • Напряжение питания 8….45В постоянного тока.
  • Масса: около 100 г
  • Размеры: 82 х 50 х 35 мм

Внешний вид драйвера ТВ6600 (без корпуса). 

Несмотря на отсутствие корпуса, охлаждение стоит эффективное. Это массивный радиатор, закрывающий практически полностью плату.

Проверка размеров (82 х 50 х 35 мм)

И массы

Обратная сторона платы

Под радиатором скрывается интегральный драйвер от Toshiba TB6600HG. Термопаста присутствует, а также гальваническая развязка  на основе 6N137.

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

Снимаем плату с радиатора

Внешний вид печатной платы драйвера

На фото повторители и развязка

В данном случае установлен драйвер, аналогичный Тошибе, но в другом корпусе SI09AFTG 

Оптроны DP817C

В обоих случаях присутствует гальваническая (оптическая) развязка.

Маркировка выводов

 Сравнение двух плат

Проведем небольшой тест драйверов. 

Соберем небольшую схему с Arduino и двигателем Nema23 57HS8430.

 Загрузим скетч в Ардуино

Спойлер Скетч для проверки.

}

 В результате проверил все драйверы ТВ6600. Двигатель управляется, теперь можно продолжать сборку DIY проекта.

Ну и далее, драйверы будут смонтированы вместе с управляющей платой в небольшой настольный станок ЧПУ.

В целом покупка на Таобао комплектующих для различных самоделок оправдана, выгода по стоимости практически в два раза. 

P.s. обратите внимание: в некоторых лотах есть платная местная доставка. Обычно это около $2. Имеет смысл покупать несколько лотов у одного продавца, стоимость местной доставки так и остается $2. В этом случае доставка «размазывается» по стоимости всего заказа.

 Если есть вопросы по покупкам на Таобао или по посреднику Yoybuy — задавайте!

Спасибо за внимание!

 category.pngСтатьи    comments.png7    icon-calendar.png30.11.2015    icon-calendar-modified2.png30.12.201720-single-default.jpg

Содержание

Основанная на чипе TB6600HG новая модель драйвера BL-TB6600-V1.2 пришла на замену популярному драйверу BL-TB6560-V2.0.Этот драйвер-контроллер подойдет для построения не только любительских систем ЧПУ, но и профессиональных, основаных на двигателях высокой мощности. Если сравнивать с предыдущим поколением драйвера TB6560AHG, то выходная мощность у TB6600HG возросла до 200Вт (как видим практическое удвоение по значению мощности), рабочее напряжение поднято с 35В (TB6560AHG) до 50В, рабочий ток увеличен до 4.5А (5А пиковое значение). Увеличена максимальная рабочая частота. Добавлены схемы защиты.

К основной «вкусности» данного драйвера можно отнести интеллектуальное управление током и использование ШИМ моделяции, благодаря чему есть возможность подключать к драйверу шаговые двигатели любого напряжения питания и тока — на установленном уровне микросхема сама ограничит максимальный ток.

Основные характеристики:

Свойства Параметры
Входное напряжение силовой части от 8В до 50В постоянного напряжения (36В рекомендуется)
Выходной ток от 0.3А до 4.5А (пиковое значение 5А)
Микрошаг 1 .. 2 .. 8 .. 16
Максимальная частота ШИМ 200кГц
1.1А .. 2.2А .. 3.3А .. 4.5А
50% или 100%
Температура эксплуатации от -10 до +45° С
Размеры 80мм*50мм*35мм
Вес 118.3г

Конструктивно драйвер изготовлен с возможностью монтажа в корпус и подключением контактных площадок быстроразъемным способом. Что упрощает его установку, эксплуатацию и замену в случае выхода из строя. Подключение производится по следующей таблице:

Разъемы на плате

Маркировка Описание
24V+ Положительный контакт для подключения блока питания (питания шагового двигателя) постоянное напряжение
GND Отрицательный контакты для подключения блока питания (питания шагового двигателя) постоянное напряжение
CLK- Вход для шаговых импульсов STEP (рабочим является передний фронт, длительность > 10мкс)
CW- Вход для управления направлением вращения вала шагового двигателя (DIR)
EN- Вход для включения/выключения шагового двигателя (ENABLE)
+5V Общий сигнальный провод
A+,A- Контакты для подключения I фазной обмотки шагового двигателя
B+,B- Контакты для подключения II фазной обмотки шагового двигателя

Подключения драйвера к плате коммутации или просто контроллеру осуществляется двумя способами, которые зависят от схемотехнического исполнения и конфигурации портов контроллера.

Пример подключения драйвера к контроллеру на NPN ключах с открытым коллектором

Schema-vklucheniya-NPN.png

Пример подключения драйвера к контроллеру на PNP ключах с открытым коллектором

Schema-vklucheniya-PNP.png

Примечание:

Значение сопротивлений R_CLK, R_CW, R_EN зависят от напряжения питания VCC:

  • При VCC = 5В, R_CLK = R_CW = R_EN = 0;
  • При VCC = 12В, R_CLK = R_CW = 1кОм, R_EN = 1.5кОм;
  • При VCC = 24В, R_CLK = R_CW = 2кОм, R_EN = 3кОм;

BB5001+BL-TB6600.png

Более подробно о интерфейсной плате BL-MACH-V1.1 можно узнать по ссылке Плата коммутационная (контроллер) BL-MACH-V1.1

СТАТЬЯ В ПРОЦЕССЕ НАПИСАНИЯ

Обновлено: 30.12.2017

Используемые источники:

  • https://mysku.ru/blog/aliexpress/42324.html
  • https://www.ixbt.com/live/lexus08/komplektuyuschie-dlya-samodelnogo-chpu-s-taobao.html
  • http://totcnc.com/tblog/20_instr

Понравилась статья? Поделить с друзьями:

Это тоже интересно:

  • Драже гомеовокс инструкция по применению
  • Др д 110 датчик реле давления инструкция
  • Драже гексавит инструкция по применению взрослым
  • Др газэкс инструкция по применению отзывы
  • Доцетаксел инструкция по применению побочные действия

  • Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии