СТАНОК С ЧПУ СВОИМИ РУКАМИ

Открытый проект

Подключаем к станку с ЧПУ на базе Ардуино более мощные и быстрые ШД 17HS3404N в корпусе Nema 17 и драйверы шаговых двигателей DM420A

Порывшись на любимом мной сайте китайских товаров выбрал, как мне кажется самый бюджетный и подходящий вариант: гибридные шаговые двигатели 17HS3404N в корпусе Nema 17 с четырьмя управляющими проводами и драйвера ШД DM420A.
С доставкой такой комплект обошелся в 88 долларов, что более чем в полтора раза увеличило стоимость простого станка с ЧПУ на базе Arduino. Теперь самодельный станок с числовым программным управлением стоит около 170 долларов или 5000 рублей.

Гибридные шаговые двигатели 17HS3404N в корпусе Nema 17 с четырьмя проводами

С шаговыми двигателями всё более или менее понятно. Четыре проводка: черный, зелёный, красный, синий. Обратите внимание, что имеет место следующее соответствие между цветом провода ШД 17HS3404N и выходами драйвера шагового двигателя DM420A:

Цвет провода двигателя 17HS3404N Метка пина драйвера DM420A
черный A+
зелёный A-
красный B+
синий B-

Драйвер управления гибридными шаговыми двигателями DM420A. Подключение к Ардуино.

Драйвер крайне умный и умеет работать в двух режимах. Переключение между режимами автоматическое и никакие переключатели трогать не надо.
  - режим управления отрицательным сигналом;
  - режим управления положительным сигналом типа LOW (0, Сток) и HIGH (5 В), который используется для цифровых Pin’ов Arduino в режиме OUTPUT.

Драйвер DM420A. Управление отрицательным сигналом

Этот режим в чистом виде не подходит для подключения к Ардуино: необходимо использовать дополнительные электронные компоненты. Подключение DM420A в режиме управления отрицательными сигналами:
- на вход +5 драйвера ШД DM420A подаём +5;
- по умолчанию, без подключения сигнала, драйвер находится в состоянии Enable (включен). Если на ENBL подвести -5 В, то драйвер перестанет управлять ШД.
- направление вращения задаётся подачей -5 В (в одну сторону) или размыканием (в другую);
- на вход PUL подаём -5В и размыкаем цепь, это соответствует перемещению ШД на один шаг.

Драйвер DM420A. Подключение к Arduino и управление сигналами LOW-HIGH цифровых пинов в режиме OUTPUT.

Этот режим подходит для работы с Ардуино. Схема подключения представлена ниже:

Схема подключения шагового двигателя 17HS3404N, драйвера ШД DM420A и Arduino.

Обратите внимание, что земля (Gnd) Ардуино НЕ идёт на DC- драйвера DM420A, как это иногда советуют сделать. Дело в том, что при установке значения LOW на цифровом пине Ардуино, находящемся в режиме OUTPUT, этот пин работает как "0", то есть "приёмник" тока.
Это подтверждается документацией по Ардуино, а также примером подключения диода к двум цифровым пинам, находящимся в режиме OUTPUT: на одном пине выставлено значение LOW, на другом HIGH.
Итак:
  - на вход +5 драйвера шагового двигателя DM420A подаём +5В;
  - если на ENBL подаётся значение LOW (0), то драйвер не управляет ШД, если HIGH, то переходит в состояние Enable (включен);
  - направление вращения ШД определяется сигналом, поданным на DIR: LOW или HIGH;
  - подача на PUL значения HIGH, а затем LOW определяет перемещение ротора ШД на один шаг;

Замечания по работе шагового двигателя 17HS3404N и драйвера ШД DM420A, подключенного к Ардуино в режиме управления значениями LOW-HIGH.

  - Время переключения драйвера из режима Disabled в режим Enabled составляет 15 миллисекунд. Таким образом, если вы планируете программно управлять включением и отключением ШД, то после подачи на вход ENBL драйвера DM420A сигнала, включающего управление, необходимо сделать паузу 20 миллисекунд, и только после этого посылать управляющие сигналы на PUL.
  - Если вы не собираетесь контролировать включение-выключение управления шаговым двигателем, то на вход ENBL драйвера DM420A можно подать +5В от выхода Ардуино. Также, если вообще ничего не подключать к входу ENBL драйвера DM420A, то он будет в состоянии включен (Enable).
  - В режиме 200 шагов на оборот между пульсациями на входе PUL необходимо сделать паузу 2 миллисекунды, чтобы дать шаговому двигателю отреагировать на команду перемещения ротора. То есть, если на PUL передать следующие сигналы:
HIGH - LOW - [пауза 2мс] – HIGH – LOW - [пауза 2мс] – HIGH – LOW - [пауза 2мс],
то ротор ШД сделает 3 шага за 6 миллисекунд.
  - Для выставления режима работы 200 шагов на оборот и подключения шагового двигателя 17HS3404N на драйвере ШД DM420A необходимо установить переключатели в следующее положение:

Обозначение переключателя Положение переключателя
SW1 ON
SW2 ON
SW3 ON
SW4 OFF
SW5 ON
SW6 ON
SW7 ON

  - Находясь в состоянии удержания шаговые двигатели 17HS3404N греются гораздо сильнее, чем во время вращения.

По аналогичной схеме подключаем ещё два комплекта драйвер ШД DM420A - шаговый двигатель 17HS3404N. Питание для ШД 17HS3404N я сделал общее из блока питания для роутера (12В, 2А).
Драйверы поставил стопочкой с небольшим смещением, чтобы иметь лёгкий доступ к входам. Всё собрал на листе фанеры.

Фото сборки подсистемы управления шаговыми двигателями для станка с ЧПУ

На фото: 3 драйвера шаговых двигателей DM420A, установленные друг на друга, нижний прикручен к листу фанеры саморезами. За драйверами общий блок питания, приклеен двухсторонним скотчем. Справа плата Ардуино, прикручена саморезами. Пины 13,12,11,10,9,8 Arduino подключены к пинам DIR, PUL трёх драйверов ШД DM420A. Выход +5 Ардуино подключен ко входам +5 и ENBL драйверов. То есть, при включении схемы включается управление шаговыми двигателями 17HS3404N. Программное управление включением-выключением ШД не используется. Схема рабочая.
Прошивку для Ардуино для работы с драйверами шаговых двигателей DM420A можно скачать в разделе Прошивка.