Драйвер управления гибридными шаговыми двигателями DM420A. Подключение к Ардуино.
Драйвер крайне умный и умеет работать в двух режимах. Переключение между режимами автоматическое и никакие переключатели трогать не надо.
— режим управления отрицательным сигналом;
— режим управления положительным сигналом типа LOW (0, Сток) и HIGH (5 В), который используется для цифровых Pin’ов Arduino в режиме OUTPUT.
Драйвер DM420A. Управление отрицательным сигналом
Драйвер DM420A. Подключение к Arduino и управление сигналами LOW-HIGH цифровых пинов в режиме OUTPUT.
Этот режим подходит для работы с Ардуино. Схема подключения представлена ниже:
Замечания по работе шагового двигателя 17HS3404N и драйвера ШД DM420A, подключенного к Ардуино в режиме управления значениями LOW-HIGH.
Обозначение переключателя | Положение переключателя |
---|---|
SW1 | ON |
SW2 | ON |
SW3 | ON |
SW4 | OFF |
SW5 | ON |
SW6 | ON |
SW7 | ON |
— Находясь в состоянии удержания шаговые двигатели 17HS3404N греются гораздо сильнее, чем во время вращения.
По аналогичной схеме подключаем ещё два комплекта драйвер ШД DM420A — шаговый двигатель 17HS3404N. Питание для ШД 17HS3404N я сделал общее из блока питания для роутера (12В, 2А).
Драйверы поставил стопочкой с небольшим смещением, чтобы иметь лёгкий доступ к входам. Всё собрал на листе фанеры.
Цвет провода двигателя 17HS3404N | Метка пина драйвера DM420A |
---|---|
черный | A+ |
зелёный | A- |
красный | B+ |
синий | B- |

Урок 2. Как подключить A4988 (DRV8825) к Arduino? Скетч, библиотека.
Подключение драйвера шагового двигателя A4988 и DRV8825 с помощью модуля.
Для облегчения подключения драйверов к Arduino существуют специальные модули, которые помогут без лишних усилий и пайки подключить драйвер A4988 или DRV8825. Подробнее о модулях для подключения драйвера A4988 и DRV8825 читайте тут. Подробно останавливаться на типах модулей и особенностях подключения не буду.
Внимание! При установке драйвера на модуль будьте осторожны.Драйвер может сгореть, если не правильно установить его на модуль.
С подключением определились, пора перейти к коду, который позволит управлять шаговым двигателем.
Код для Arduino и A4988 (DRV8825),который позволяет вращать шаговым двигателем без библиотеки.
Следующий код даст представление о том, как управлять скоростью и направлением вращения биполярного шагового двигателя с помощью драйвера шагового двигателя A4988. Данный скетч может служить основой для более интересных экспериментов и проектов на Arduino.
Скетч начинается с определения выводов Arduino, к которым подключены выводы STEP и DIR драйвера A4988. Здесь также определяем stepsPerRevolution – количество шагов на оборот. Установите данное значение в соответствии со спецификациями шагового двигателя 200 (поскольку NEMA 17 делает 200 шагов за оборот).
В разделе настройки кода setup(), все контакты управления двигателем объявлены как цифровой выход ( OUTPUT ).
В основном цикле loop() будем медленно вращать двигатель по часовой стрелке, а затем быстро вращать его против часовой стрелки, с интервалом в секунду.
Управление направлением вращения.
Для управления направлением вращения двигателя мы устанавливаем контакт DIR на высокий уровень HIGH, или низкий LOW. При значении HIGH — вращает двигатель по часовой стрелке, а LOW — против часовой стрелки.
Управление скоростью шагового двигателя.

Настройка тока драйвера шагового двигателя просто и доступно на
Код для Arduino управления драйвером A4988 (DRV8825)с использованием библиотеки AccelStepper.
Управление шаговым двигателем без библиотеки идеально подходит для простых проектов на Arduino с одним двигателем. Но если вы хотите управлять несколькими шаговыми двигателями, вам понадобится библиотека. Итак, для нашего следующего примера будем использовать библиотеку шаговых двигателей под названием AccelStepper library.
AccelStepper library поддерживает.
Ускорение и замедление. Несколько одновременных шаговых двигателей с независимыми одновременными шагами на каждом шаговом двигателе. Эта библиотека не включена в IDE Arduino, поэтому вам необходимо сначала установить ее.
Установка библиотеки AccelStepper.
Чтобы установить библиотеку, перейдите в «Скетч» -> «Подключить библиотеку» -> «Управление» библиотеками. Подождите, пока диспетчер библиотек загрузит индекс библиотек и обновит список установленных библиотек.
Отфильтруйте свой поиск, набрав «Accelstepper». Щелкните первую запись и выберите «Установка».
Код Arduino с использованием библиотеки AccelStepper.
Вот простой пример, который ускоряет шаговый двигатель в одном направлении, а затем замедляется до полной остановки. Как только двигатель делает один оборот, меняет направление вращения. Данный цикл повторяется снова и снова.
Дальше определяем выводы Arduino, к которым подключаются выводы STEP и DIR A4988. Мы также устанавливаем motorInterfaceType на 1. (1 означает внешний шаговый драйвер с выводами Step и Direction).
Затем мы создаем экземпляр библиотеки под названием myStepper .
В функции настройки мы сначала устанавливаем максимальную скорость двигателя равной тысяче. Затем мы устанавливаем коэффициент ускорения для двигателя, чтобы добавить ускорение и замедление к движениям шагового двигателя. Дальше устанавливаем обычную скорость 200 и количество шагов, которое мы собираемся переместить, например, 200 (поскольку NEMA 17 делает 200 шагов за оборот).
Это небольшой пример использования библиотеки AccelStepper. В следующем уроке подробнее рассмотрим данную библиотеку и сделаем пару классных примеров использования шаговых двигателей в Arduino проектах.
Настройка тока двигателя на A4988
На плате драйвера предусмотрен потенциометр для регулировки тока. Для настройки понадобиться мультиметр, для замера напряжения на потенциометре.
Расположение токоограничительных резисторов и потенциометра Vref
Формула Vref для A4988 изменяется от номинала токочувствительных резисторов (Обведены на фото выше). . Обычно подписаны R050 или R100.
RS — сопротивление резистора. В моем случае RS = 0,100.
Для 17HS4401 Vref = 1,7 * 8 * 0,100 = 1,36 В.
Рабочий ток двигателя равен 70% от тока удержания. Умножим полученные значения чтобы двигатель не грелся при простое.
Для 17HS4401 Vref ист. = 1,36*0,7 = 0,952 В.
Подключаем драйвер к микроконтроллеру, включаем и меряем напряжение Vref на драйвере. Если оно не соответствует нужному нам номиналу, а оно скорее всего будет не будет соответствовать, крутим потенциометр в какую то сторону и смотрим что поменялось. Доводим до нужного нам значения и радуемся, ведь ток на драйвере теперь настроен!

Опыт изучения Arduino. Подключение шагового двигателя. Часть программная и наладочная. — DRIVE2
- Напряжения питания: 8-35 В
- Режим микрошага: 1, 1/2, 1/4, 1/8, 1/16
- Напряжение логики: 3-5.5 В
- Максимальный ток на фазу: — 1 А без радиатора; — 2 А с радиатором
- Защита от перегрева и короткого замыкания
- Размер: 20 на 15 мм