Подключаем к станку с ЧПУ на базе Ардуино более мощные и быстрые ШД 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.
Этот режим подходит для работы с Ардуино. Схема подключения представлена ниже:

Обратите внимание, что земля (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 можно скачать в разделе Прошивка.