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

  • Главная

  • /
  • Комплектующие для ЧПУ

  • /
  • Электроника

  • /
  • Драйвер шагового двигателя

  • /
  • Драйвер шагового двигателя DM556

Описание

Драйвер DM556 — драйвер шагового двигателя с цифровым процессором работающий на современных управляющих алгоритмах STET DIR. В основе устройства реализованы максимальная плавность движения шагового двигателя, высокий отдаваемый момент на валу и методы подавления резонанса (двигатели работают тихо, вибрация меньше). Драйвер шагового двигателя  — (анг.) Microstep Driver DM556 (JMC). 

Основные функциональные характеристики DM556

  1. Поддерживает входное напряжение от 20 до 50 В постоянного тока, с рекомендованным значением 36 Вольт.

  2. Максимальное значение выходного тока составляет 5,6 Ампер.

  3. Частоту отклика импульса до 200 кГц, что позволяет ему оперативно реагировать на изменения входных сигналов.

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

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

  6. DM556 снижает ток при холостом ходе, что может снизить энергопотребление и повысить эффективность работы.

  7. Устройство подходит для управления 2-фазными и 4-фазными двигателями с током фазы до 5,6 Ампер.

  8. Поддерживает режимы управления PUL/DIR, что позволяет использовать его с различными системами управления двигателем.

  9. Шаговый драйвер имеет защиту от перегрева и перегрузки по току, что может обеспечить безопасность и защиту от повреждений.

  10. Поддерживает режим микрошага с 15 режимами работы и максимальным значением 25600 импульсов на оборот, что позволяет достичь высокой точности управления двигателем.

характеристики DM556

ВАЖНО: Переключатели на драйвере настраивайте только тогда, когда драйвер полностью отключен от питания.

Подключение и настройка драйвера DM556 (схема)

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

  1. Напряжение питания: Подключите источник питания с напряжением в диапазоне от 20 до 50 В постоянного тока, с рекомендованным значением 36 Вольт, к соответствующим контактам на драйвере.

  2. Подключение двигателя: Подключите ваш двигатель к выходам драйвера DM556. Обычно это делается с использованием соответствующих контактов, таких как A+, A-, B+ и B-, в зависимости от типа двигателя и его фазности. Убедитесь, что правильно подключаете фазы и контакты в соответствии с требованиями вашего двигателя и инструкциями производителя драйвера.

  3. Управляющие сигналы: Подключите управляющие сигналы к соответствующим контактам устройства. Обычно это сигналы PUL (пульсовый сигнал) и DIR (направление вращения), которые используются для управления скоростью и направлением вращения двигателя. Убедитесь, что правильно подключаете эти сигналы в соответствии с требованиями вашей системы управления двигателем.

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

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

  6. Тестирование и настройка: После подключения проведите тестирование и настройку драйвера DM556 в соответствии с инструкциями производителя и требованиями вашей системы управления двигателем. Убедитесь, что двигатель работает правильно, и все функции драйвера настроены и функционируют в соответствии с вашими ожидания.

Размеры драйвера шагового двигателя DM556

Подключение DM556

Почему выгодно купить драйвер DM556 в нашем магазине

DM556 драйвер, доступный в магазине naStanok, представляет собой высокотехнологичное устройство управления шаговыми двигателями. Он работает от постоянного напряжения в диапазоне от 24 до 50 В и поддерживает нагрузку в виде шаговых двигателей с рабочим током до 4 А, с возможностью кратковременного изменения тока до 5,6 А в режиме пика. Прибор предлагает 16 режимов микрошага, что позволяет более точное и гладкое движение вала двигателя. Он также обладает защитными функциями, такими как автоматическое снижение тока в случае перегрузки и автоматическое отключение при отсутствии сигналов управления в течение 0,5 секунды, что способствует безопасной работе системы. 

DM556 драйвер отличается высоким качеством и надежностью, поскольку производится оригинальным производителем. Он идеально подходит для использования в системах ЧПУ с шаговыми двигателями типа Nema, и его приобретение в магазине naStanok позволит минимизировать потери времени и затраты на замену электронной платы в случае ее выхода из строя. Мы предлагаем драйвер по приемлемым ценам, обеспечивая оптимальное соотношение цены и качества.

При покупке DM556 драйвера вы получите высокотехнологичное устройство, способное обеспечить плавное движение шаговых двигателей, снижение вибраций и оптимальный крутящий момент. Драйвер легко настраивается и имеет защитные функции, обеспечивающие безопасную и надежную работу системы. Он подходит для использования с шаговыми двигателями Nema23, Nema34 и предлагается по приемлемым ценам. Для предотвращения возможных простоев вашего предприятия вам рекомендуется приобрести драйверы с запасом в магазине naStanok.ru. Это позволит минимизировать потери времени, так как монтаж и замена электронной платы производятся легко и быстро, без необходимости привлекать дополнительных специалистов.

  • Главная
  • Электроника для 3d принтеров
  • Драйверы для шаговых двигателей
  • Драйвер для шаговых двигателей DM556
  • 01010417

  • 2 шт.

  • Китай

  • Описание
  • Настройки драйверов
  • Доставка и оплата
  • Файлы и документация

 Драйвер DM556 — это универсальный полностью цифровой шаговый драйвер на базе DSP с усовершенствованным алгоритмом управления. DM542 — это следующее поколение цифровых регуляторов для шагового двигателя. Он обеспечивает уникальный уровень плавности системы, обеспечивая оптимальный крутящий момент и обнуляя нестабильность среднего диапазона. Технология самодиагностики двигателя и автоматической настройки параметров обеспечивает оптимальный отклик при работе с различными двигателями и делает его простым в использовании. Двигатели могут работать с гораздо меньшим шумом, выделять меньше тепла и двигаться более плавно, чем большинство других драйверов на рынке.

Уникальные характеристики делают DM556 идеальным решением для приложений, требующих плавности работы на низких скоростях. По сравнению с DM442, DM556 обеспечивает большой диапазон напряжения и более высокий выходной ток, что позволяет управлять большим количеством шаговых двигателей. Кроме того, DSP DM556 способен управлять двигателями на более высоких скоростях (свыше 3000 об/мин), обеспечивая сервоподобную производительность.

Особенности

Антирезонанс, обеспечивает оптимальный крутящий момент и обнуляет нестабильность на средних частотах.
Напряжение питания до +50 В постоянного тока (рекомендуется не превышать 45 В из-за «обратной ЭДС»)
Выходной ток программируется, от 1.4 А до 5.6 А
Автоматическое снижение тока холостого хода (в режиме ожидания) для уменьшения нагрева двигателя; функция переключаемая (скорость снижения может быть настроена программно)
Технология самодиагностики двигателя и автоматической настройки параметров, обеспечивает оптимальную реакцию при работе с различными двигателями
Частота импульсного входа до 200 кГц
TTL совместимый и оптически изолированный вход
Программируемое разрешение микрошагов, от полного шага до 25000 шагов/об.
Подходит для 2-фазных и 4-фазных двигателей
Защита от перенапряжения, перегрузки по току, фазовых ошибок

Применение

Подходит для широкого спектра шаговых двигателей NEMA17, 23, 24 (от 42×42 мм до 86×86 мм). Он может использоваться в различных видах машин, таких как X-Y столы, гравировальные машины, этикетировочные машины, лазерные резаки, устройства захвата и так далее. Особенно хорошо подходит для применения в тех случаях, когда требуется низкий уровень шума, меньшее выделение тепла, высокая скорость и высокая точность.

Настройка микрошага

PU/Rev

По умолчанию

400

800

1600

3200

6400

12800

25600

1000

2000

4000

5000

8000

10000

20000

25000

SW8

ON

ON

ON

ON

ON

ON

ON

ON

OFF

OFF

OFF

OFF

OFF

OFF

OFF

OFF

SW7

ON

ON

ON

ON

OFF

OFF

OFF

OFF

ON

ON

ON

ON

OFF

OFF

OFF

OFF

SW6

ON

ON

OFF

OFF

ON

ON

OFF

OFF

ON

ON

OFF

OFF

ON

ON

OFF

OFF

SW5

ON

OFF

ON

OFF

ON

OFF

ON

OFF

ON

OFF

ON

OFF

ON

OFF

ON

OFF

Настройка выходного тока

Рабочий (RMS), А

0.71

1.04

1.36

1.69

2.03

2.36

2.69

3.0

Пиковый, А

1.0

1.46

1.91

2.37

2.84

3.31

3.76

4.2

SW3

ON

ON

ON

ON

OFF

OFF

OFF

OFF

SW2

ON

ON

OFF

OFF

ON

ON

OFF

OFF

SW1

ON

OFF

ON

OFF

ON

OFF

ON

OFF

SW4: OFF=Половинный ток
SW4: ON=Полный ток

Назначение контактов и индикации

Символ

Функция

Технические характеристики

PWR

Индикатор питания

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

ALARM

Индикатор неисправности

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

DIR-

Сигнал направления, либо импульсный сигнал

В одноимпульсном (PUL/DIR) режиме предоставляет возможность выбрать направление вращения вала двигателя, в двухимпульсном (CW/CCW) , при подаче на него управляющих сигналов, позволяет вращать вал двигателя против часовой стрелке (CCW).
Требуется: низкий уровень 0 ~ 0,5 В, высокий уровень 4 ~ 5 В, при использовании управляющего напряжения выше 5В, необходимо использовать токоограничивающие резисторы (так же касается сигналов PULSE и ENABLE)

DIR+

PUL-

Импульсный сигнал

В одноимпульсном режиме (PUL/DIR) по переднему или заднему прямоугольного импульса управляющий драйвер переместит вал двигателя, в зависимости от выбранного микрошага, на одну дискрету в направлении, установленным сигналом DIR, в двухимпульсном (CW/CCW) вал будет вращаться только по часовой стрелке (CW). Выбор режима управления CW/CCW, и по какому фронту будет отрабатывать привод, выбирается с помощью перемычек. По умолчанию стоит управления PUL/DIR по переднему фронту.
Требуется: низкий уровень 0 ~ 0,5 В, высокий уровень 4 ~ 5 В.
Для надежного отклика ширина импульса должно быть больше 7.5 мкс.

PUL+

ENA-

Сигнал разрешения работы

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

ENA+

+VDC

Электропитание

VDC20~50 В

GND

+A, -A

Подключение обмоток двигателя

+B, -B

Примечание

  1. НИКОГДА не отключайте и не подключайте двигатель, пока источник питания подключен к драйверу и запитан!
  2. Не перепутайте источник питания, входное напряжение не должно превышать VDС 50В.
  3. Уровень входного управляющего сигнала составляет 5 В, если используется питание выше 5В, то необходимо использовать токоограничивающий резистор.
  4. При перегрузке по току, повышенном или пониженном напряжении индикатор ALARM мигает, проверьте правильность схемы подключения, поданных напряжений и перезапустите питание.
  5. Зеленый индикатор PWR загорается, когда привод включен.

Размеры

Размеры драйвера DM556


Технические характеристики

Выходной ток, А:

  • минимальный — 1.4
  • максимальный — 5.5 (3.0 RMS)

Напряжение питания, В:

  • минимальное — 20
  • номинальное — 20-48
  • максимальное — 50

Деление шага: 1:2… 1:128
Частота входного сигнала, кГц: 200
Логический сигнал, мА:

  • минимальный — 7
  • номинальный — 10
  • максимальный — 16

Выходной аварийный сигнал: нет
Порта для связи: нет
Режимы работы: PUL/DIR, CW/CCW
Размеры (мм): 112×87×34

Комплектация

1 × Драйвер для шаговых двигателей DM556

Инструкция (en)

3D модель в STP формате

Подключение к Arduino

Рекомендуемые товары

Доброго времени суток, уважаемые коллеги! Сегодня сделаем правильное подключение БОЛЬШИХ (или не очень :))) ) внешних драйверов для 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 — Шаговые двигатели.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Эманера капсулы кишечнорастворимые инструкция по применению
  • Кипферон свечи для детей инструкция по применению для грудничков
  • Энтеросгель инструкция при алкогольной интоксикации
  • Часы gastar sp 3610 инструкция
  • Инструкция по переезду офиса