Драйвер A4988: выводы, микрошаг и подключение к Arduino

Как устроен модуль A4988, за что отвечают его контакты, как задаётся дробление шага и как управлять шаговым двигателем NEMA17 с платы Arduino.
Зачем шаговому двигателю драйвер
Шаговый двигатель превращает электрические импульсы в поворот вала на строго заданный угол. Угол поворота однозначно связан с числом поданных импульсов, поэтому позиционировать механизм можно без обратной связи. У качественных двигателей погрешность не превышает 2,5 % от величины шага и не накапливается от шага к шагу. Такой мотор быстро стартует, останавливается и меняет направление, а очень низкие обороты получаются без редуктора: скорость определяется только частотой импульсов.
По этим причинам шаговые двигатели ставят туда, где важна точность перемещений: в принтеры, копировальные аппараты, станки с ЧПУ и 3D-принтеры. Управляют ими через специальные драйверы, и A4988 относится к самым распространённым модулям для биполярных двигателей.

Основные параметры модуля
У двигателя NEMA17 на один оборот приходится 200 шагов, то есть один шаг равен 1,8°. A4988 умеет делить шаг на промежуточные положения и поддерживает пять режимов: полный шаг, 1/2, 1/4, 1/8 и 1/16. В модуль встроена защита от перегрузки и перегрева.
| Питание двигателя (VMOT) | 8–35 В |
| Напряжение логики | 3–5,5 В |
| Ток на фазу без радиатора | до 1 А |
| Ток на фазу с радиатором | до 2 А |
| Режимы микрошага | 1, 1/2, 1/4, 1/8, 1/16 |
| Защита | от перегрузки и перегрева |
| Размер платы | 20 х 15 мм |
| Масса без радиатора | 2 г |
Назначение контактов

- ENABLE — включение и отключение драйвера;
- MS1, MS2, MS3 — выбор режима микрошага;
- RESET — сброс микросхемы;
- STEP — вход импульсов: один импульс соответствует одному шагу, частота импульсов задаёт скорость;
- DIR — направление вращения;
- VMOT и GND — питание двигателя 8–35 В и общий провод;
- 2B, 2A, 1A, 1B — обмотки двигателя;
- VDD — питание микросхемы.
Микрошаг и ограничение тока
Режим дробления шага определяется сочетанием логических уровней на входах MS1, MS2 и MS3. В примере из источника используются такие комбинации (MS1, MS2, MS3): 0-0-0 — полный шаг, 1-0-0 — 1/2, 0-1-0 — 1/4, 1-1-0 — 1/8, 1-1-1 — 1/16.
Для работы с микрошагом нужен небольшой ток; предельное значение выставляется подстроечным потенциометром на плате. Драйвер чувствителен к скачкам напряжения в цепи питания двигателя, поэтому производитель советует ставить по линии VMOT электролитический конденсатор большой ёмкости. Ещё одно важное правило: нельзя подключать или отключать двигатель при включённом драйвере — это может вывести оборудование из строя.
Подключение к Arduino и простой скетч

В базовой схеме вывод STEP драйвера соединён с пином 3 платы, DIR — с пином 2. Контакт RESET замыкают на SLEEP, чтобы на нём удерживался высокий уровень. Тестовый скетч настраивает оба пина как выходы, задаёт направление сигналом на DIR и в цикле из 200 повторений формирует импульсы на STEP с паузами по 10 мс — получается один оборот с постоянной скоростью. По замыслу двигатель делает оборот в одну сторону, затем в другую, и так по кругу.
Если вал не вращается, сначала проверяют соединение драйвера с платой и подключение обмоток: к парам выводов 1A–1B и 2A–2B должны идти те провода двигателя, которые прозваниваются между собой тестером. Причиной может быть и недостаточная мощность блока питания двигателя.
Пример: кнопка, переключатель и потенциометр
Более развёрнутый пример позволяет менять режим микрошага и направление прямо во время работы. Для него нужны Arduino Uno, драйвер A4988, двигатель NEMA17, потенциометр на 10 кОм, кнопка, двухпозиционный переключатель, три резистора по 10 кОм и соединительные провода.

Логика такая. Кнопка на пине 9 запускает и останавливает двигатель: скетч отслеживает нажатие с защитой от дребезга и меняет уровень на входе ENABLE (пин 8), где LOW разрешает работу, а HIGH запрещает. Переключатель подаёт сигнал непосредственно на вход DIR и тем самым задаёт направление. Потенциометр подключён к аналоговому входу A0: его показания пересчитываются в номер одного из пяти режимов, после чего нужная комбинация уровней выставляется на пинах 7, 6 и 5, соединённых с MS1, MS2 и MS3. Пока движение разрешено, на STEP непрерывно выдаются импульсы.