Компонент · Исполнительный механизм
Шаговый двигатель NEMA 17
Шаговый двигатель 42 mm для 3D-принтеров и станков с ЧПУ (CNC). Что означают числа, как найти пары обмоток и почему момент удержания почти ничего не говорит.
Что это такое
NEMA 17 — гибридный шаговый двигатель в квадратном корпусе 42 mm. Это двигатель практически каждого настольного 3D-принтера, большинства небольших фрезерных станков с ЧПУ, лазерных гравёров, каретных стоек для камер и графопостроителей не потому, что он особенный, а потому, что размер корпуса оказался удачным компромиссом и вся хобби-экосистема стандартизировалась на нём.
Шаговый двигатель даёт то, чего не обеспечивает редукторный двигатель постоянного тока (DC): положение без обратной связи. Подайте команду переместиться на 3200 микрошагов, и, если нагрузка не превысила возможности, двигатель переместится на 3200 микрошагов — без энкодера, без контура ПИД-регулятора (PID) и без настройки. Это действительно значительное упрощение и причина, по которой 3D-принтер может стоить сотни фунтов и при этом позиционировать сопло с точностью до десятой доли миллиметра.
Оговорка заключается в «если нагрузка не превысила возможности», причём проявиться она может резко, а не постепенно. Если у шагового двигателя запросят больший момент, чем есть, он не замедлится, а пропустит шаги и навсегда потеряет положение — без предупреждения, скачками по четыре полных шага.
Как это работает
Внутри находится постоянный магнит с ротором на 50 зубьев и две обмотки, расположенные так, что их различные комбинации создают магнитное поле в разных направлениях. Драйвер вращает это поле, а ротор следует за ним.
Величина 1.8° непосредственно следует из числа зубьев: 50 зубьев ротора × 4 положения поля за один магнитный цикл = 200 устойчивых положений на оборот, поэтому 360 ÷ 200 = 1.8°. Каждый встречающийся «двигатель 1.8°» имеет такую же геометрию с 50 зубьями, поэтому один полный шаг всегда равен 90 электрическим градусам независимо от размера и производителя двигателя.
Ротор никогда не находится точно напротив поля — он отстаёт на угол запаздывания, а создаваемый им момент пропорционален синусу этого угла. Эта единственная зависимость описывает всё поведение шагового двигателя; её стоит разобраться подробно, поскольку она одновременно объясняет пропуск шагов, микрошаги, резонанс и выбор двигателя.
Как читать числа
| Характеристика | Что она на самом деле сообщает |
|---|---|
| Угловой шаг 1.8° | 200 полных шагов/об. Один полный шаг = 90 электрических градусов. |
| Номинальный ток 1.7 A | Значение для драйвера — используйте 70–85% от него |
| Момент удержания 0.44 N·m | Момент только при нулевой скорости. При движении быстро падает. |
| Сопротивление 2.8 Ω | Вместе с номиналом тока задаёт нагрев: 1.7² × 2.8 = 8 W на фазу |
| Индуктивность 3.2 mH | Насколько быстро драйвер может менять направление тока — это задаёт максимальную скорость |
| Момент инерции ротора 54 g·cm² | Что необходимо разогнать ещё до учёта нагрузки |
| Длина корпуса 40 mm | Реальный показатель момента, скрытый размером корпуса |
Две строки чаще всего неверно понимают: момент удержания и индуктивность.
Момент удержания измеряется без движения. Он реален, удерживает ось от выталкивания в покое и почти не важен для движущейся машины. Доступный момент падает с ростом скорости, поскольку обмотка противодействует изменению тока, и именно индуктивность определяет силу этого противодействия. Двигатель с тем же номинальным моментом, но меньшей индуктивностью достигнет гораздо большей скорости при том же источнике питания; поэтому профессиональные конструкторы читают индуктивность, а любители — момент.
Практическое следствие укладывается в одну фразу: больше ампер даёт момент, больше вольт — скорость. Если машина останавливается под нагрузкой на малой скорости, увеличьте предел тока. Если она останавливается только после разгона, повысьте напряжение питания: увеличение тока не поможет, поскольку после угловой скорости перегиба драйвер всё равно не достигает заданного тока.
Ток, нагрев и энергетический баланс
Шаговый двигатель потребляет полный номинальный ток всегда, когда находится под напряжением, независимо от того, движется ли он. Это удивляет пришедших от двигателей постоянного тока, у которых остановившийся, но не нагруженный двигатель потребляет почти ничего.
На один двигатель при пределе 1.2 A и обмотке 2.8 Ω, когда под напряжением находятся обе фазы:
P = 2 × I² × R = 2 × 1.2² × 2.8 ≈ 8.1 W
Восемь ватт непрерывно на каждый двигатель в неподвижном состоянии. Трёхосевая машина с тремя NEMA 17 рассеивает около 24 W, ещё ничего не делая. Отсюда следуют три решения:
- Выбор источника питания. Источник двигателей должен питать все оси одновременно. Обратите внимание: на стороне питания это не
current limit × motors; преобразователь представляет собой понижающий преобразователь, поэтому при 24 V ток источника значительно ниже тока фазы. Рассчитывайте по мощности, а не по амперам, и оставляйте запас; см. энергетический баланс робота. - Нагрев. Температура корпуса 60–80 °C обычна. По возможности крепите двигатель к металлической детали.
- Отключение. Высокий уровень на ENABLE снимает напряжение с обмоток и прекращает нагрев, но ось становится свободной для внешнего воздействия. Это приемлемо для осей X и Y графопостроителя между заданиями, но опасно для оси Z, удерживающей массу, если винт не самоблокирующийся.
Подключение к драйверу
Четыре провода, две обмотки. Найдите пары мультиметром в режиме сопротивления: между проводами пары будет несколько ом, при несовпадении — обрыв, — а затем выполните подключение:
| Двигатель | Вывод A4988 |
|---|---|
| Обмотка A, провод 1 | 1A |
| Обмотка A, провод 2 | 1B |
| Обмотка B, провод 1 | 2A |
| Обмотка B, провод 2 | 2B |
Порядок внутри пары влияет только на направление, поэтому при движении оси назад можно поменять два провода вместо изменения прошивки. Порядок между парами важен: при ошибке двигатель гудит и вибрирует без вращения, поскольку поле больше не вращается связной последовательностью.
Никогда не отключайте двигатель при включённом драйвере. Прерывание тока в под напряжением обмотке во время широтно-импульсного переключения создаёт выброс напряжения, которому некуда деваться; именно этот выброс убивает драйверы.
Некоторые двигатели имеют шесть или восемь проводов — это униполярные или двухбиполярные обмотки. Для биполярного драйвера вроде A4988 используйте четыре провода, образующие две полные обмотки, и заизолируйте средние отводы; так момент будет больше, чем при униполярном подключении.
Минимальный рабочий код
Импульсы подаются на один вывод, направление — на другой. Здесь библиотека не нужна:
const int STEP_PIN = 3, DIR_PIN = 4, EN_PIN = 5;
const float STEPS_PER_MM = 80.0; // 20T GT2 pulley at 1/16 stepping
void setup() {
pinMode(STEP_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
pinMode(EN_PIN, OUTPUT);
digitalWrite(EN_PIN, LOW); // active low: energise
}
// Blocking, unramped. Fine for a bench test, wrong for a machine.
void moveMillimetres(float mm, unsigned stepDelayUs) {
digitalWrite(DIR_PIN, mm >= 0 ? HIGH : LOW);
long steps = lround(fabs(mm) * STEPS_PER_MM);
for (long i = 0; i < steps; i++) {
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(2);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(stepDelayUs);
}
}
void loop() {
moveMillimetres(50, 300);
delay(500);
moveMillimetres(-50, 300);
delay(500);
}
Этот код запустит двигатель на стенде. От него также следует сразу отказаться, поскольку частота шагов мгновенно переходит от нуля к полной: выше частоты захвата двигателя это вызывает громкий гул без движения. Для любой реальной задачи добавьте профиль ускорения или передайте управление AccelStepper и используйте паттерн неблокирующего хронометража, чтобы концевые выключатели по-прежнему считывались.
Выбор двигателя: пример расчёта
Выбирайте двигатель по нагрузке, а не по сообщению на форуме. Расчёт короткий.
Машина: ремённая ось X со шкивом GT2 на 20 зубьев (40 mm на оборот), каретка 300 g, движение до 200 mm/s с ускорением 2000 mm/s².
Шаг 1 — какой момент нужен для движения? Переведите линейное движение на вал. Эффективный радиус шкива равен 40 mm ÷ 2π = 6.37 mm:
accelerating the carriage: F = m·a = 0.3 kg × 2.0 m/s² = 0.6 N
T = F × r = 0.6 × 0.00637 = 0.004 N·m
friction (rails, belt, a dragging cable) ≈ 5 N
T = 5 × 0.00637 = 0.032 N·m
rotor's own inertia: α = a ÷ r = 2.0 ÷ 0.00637 = 314 rad/s²
T = J·α = 5.4e-6 × 314 = 0.002 N·m
─────────────
total ≈ 0.038 N·m
Стоит остановиться на результате: сила трения в восемь раз больше момента разгона. На лёгкой машине нагрузка почти целиком состоит из трения, поэтому заклинившая направляющая отнимает намного больше запаса, чем более тяжёлая каретка. Измерьте трение до покупки более мощного двигателя.
Шаг 2 — какая скорость нужна? 200 mm/s ÷ 40 mm/rev × 60 = 300 rpm.
Шаг 3 — прочитайте кривую момента на этой скорости, а не паспортное значение. Двигатель 0.44 N·m при пределе 1.2 A и питании 24 V всё ещё имеет постоянный момент около 0.31 N·m на 300 rpm.
Шаг 4 — проверьте запас. 0.038 ÷ 0.31 = 12%. По углу запаздывания sin⁻¹(0.12) = 7° из доступных 90°. Это очень комфортный запас, и он должен быть таким, поскольку расчёт всегда оптимистичен: в нём нет подшипника, который становится жёстче зимой, цепи кабелей, задевающей за препятствие, или ремня, натянутого сильнее, чем предполагалось.
| Использованный запас | Угол запаздывания | Вердикт |
|---|---|---|
| Менее 25% | Менее 15°e | Комфортно — здесь следует проектировать |
| 25–50% | 15–30°e | Допустимо, но измерьте перед повышением скорости |
| 50–70% | 30–45°e | Тесно. Достаточно одного холодного утра до пропуска шагов. |
| Более 70% | Более 45°e | Ожидайте периодический необъяснимый пропуск шагов |
| 100% | 90°e | Двигатель уже срывается |
Обычный совет «выбирайте исходя из половины доступного момента» соответствует второй строке, и это правильное место. Всё после четвёртой строки приводит к самому раздражающему классу неисправностей: машина работает на стенде, работает на демонстрации, но примерно раз в час отказывает при реальной эксплуатации.
Та же ось на винте показывает, почему важен механизм. Эффективный радиус T8 для этой задачи равен 8 mm ÷ 2π = 1.27 mm, то есть в пять раз меньше; поэтому те же 5 N трения дают на валу лишь 0.0064 N·m — запас 2%. Обратная сторона — скорость: для того же перемещения винту нужна в пять раз большая частота шагов, и это предел, заданный параметром шагов на миллиметр.
Двигатели с шестью и восемью проводами
У большинства продаваемых сегодня NEMA 17 четыре провода и однозначно биполярное подключение. На старых и промышленных экземплярах часто встречаются шесть или восемь проводов, причём дополнительные провода являются отводами обмоток:
| Проводов | Что имеется | Как управлять от A4988 |
|---|---|---|
| 4 | Две простые обмотки | Подключить их. Выбирать нечего. |
| 6 | Две обмотки со средним отводом | Игнорировать средние отводы, заизолировать и использовать концы |
| 8 | Четыре полуобмотки | Соединить каждую пару последовательно для момента, параллельно для скорости |
Шестипроводной вариант требует особой внимательности. При использовании среднего отвода и одного конца, то есть как униполярного двигателя, под напряжением находится половина каждой обмотки, и вы теряете примерно 30% момента без всякой пользы при биполярном драйвере. Найдите два конца каждой обмотки, то есть пару с наибольшим сопротивлением; сопротивление от среднего отвода до любого конца примерно вдвое меньше, используйте концы и изолируйте отводы.
Для восьмипроводных двигателей последовательное соединение удваивает индуктивность и сопротивление, повышая момент на малой скорости и снижая угловую скорость перегиба. Параллельное соединение даёт противоположный эффект. Последовательное подключение — правильный вариант по умолчанию для машины с нагрузкой; параллельное — для машины, которой нужна высокая скорость.
Диагностика
| Симптом | Причина | Исправление |
|---|---|---|
| Сильно вибрирует, не вращается | Пары обмоток перепутаны между собой | Определить пары мультиметром в режиме сопротивления |
| Гудит в начале каждого движения | Заданная частота выше частоты захвата | Добавить разгон |
| Теряет несколько mm положения за задание | Пропуск шагов на разгоне | Снизить ускорение, повысить ток или замедлить движение |
| На малой скорости нормально, на большой останавливается | Работа за угловой скоростью перегиба | Повысить напряжение питания, а не ток |
| Слаб на всех скоростях | Слишком низкий предел тока | Переизмерить Vref относительно резистора измерения тока |
| Слишком горячий, чтобы коснуться на секунду | Предел тока выше номинала | Проверить расчёт; обеспечить воздушный поток |
| Резкий и шумный только на одной скорости | Резонанс в средней полосе | Изменить микрошаг или избегать этой скорости |
| Хорошо удерживает, но смещается после отключения | Обмотки обесточены, ось перемещается извне | Использовать самоблокирующий винт или оставить двигатель включённым |
| Вращается в неверную сторону | Полярность обмотки | Поменять два провода одной пары |
NEMA 17 или альтернативы?
| Вариант | Момент | Обратная связь положения | Когда выбирать |
|---|---|---|---|
| Шаговый двигатель NEMA 17 | 0.25–0.65 N·m | Нет — разомкнутый контур | Точное повторяемое линейное движение |
| Шаговый двигатель NEMA 23 | 1.0–3.0 N·m | Нет | NEMA 17 останавливается на нужной скорости |
| Редукторный двигатель N20 с энкодером | Низкий, редукторный | Энкодер — замкнутый контур | Колёса; нужна регулировка скорости, а не положения |
| Редукторный двигатель постоянного тока | Разный | Нет | Привод колёс, где точное положение несущественно |
| Сервопривод SG90 | 0.15 N·m | Внутренний потенциометр, замкнутый контур | Ограниченный угол сустава при небольшой цене |
| Шаговый двигатель с замкнутым контуром | Как у NEMA 17 | Энкодер на задней стороне | Недопустим даже незаметный пропуск шага |
Честный итог: шаговый двигатель является правильным решением, когда требуется повторяемое положение вдоль оси и гарантирован запас по моменту. Для приводного колеса это неверный выбор: колёса проскальзывают, проскальзывание не ограничено, а двигатель, молча теряющий положение, — худшее, что может оказаться под роботом, выполняющим одометрию.
Где он применяется
Этот двигатель является исполнительным механизмом в конструкции графопостроителя и центральной темой всей дорожной карты точного движения. Его поведение — угол запаздывания, пропуск шагов, микрошаги — можно изучить без покупки в симуляторе шагового двигателя.
Исследуйте граф
Используется в этих сборках
Проекты, учебные пути и симуляторы, в которых используется Шаговый двигатель NEMA 17.
Сравнение
Альтернативы
Вопросы
Шаговый двигатель NEMA 17: частые вопросы
Что на самом деле означает NEMA 17?
Это стандарт крепления, а не показатель качества. NEMA 17 задаёт квадратный установочный фланец 1.7 дюйма — 42.3 mm — с четырьмя отверстиями M3 по схеме 31 mm и бобышкой 22 mm. Больше ничего. Два двигателя NEMA 17 могут различаться по моменту в три раза, поскольку стандарт ничего не говорит о длине корпуса, а именно она определяет момент. И двигатель 20 mm «блин», и двигатель 60 mm имеют обозначение NEMA 17.
Как определить, какие провода образуют пару?
Мультиметром в режиме сопротивления. Между двумя проводами одной обмотки будет несколько ом; между проводами разных обмоток — обрыв. Соедините пары по наличию проводимости, одну — к 1A и 1B драйвера, другую — к 2A и 2B. Внутри пары порядок влияет только на направление, поэтому при неверном вращении можно поменять два провода, не меняя прошивку. Если двигатель сильно вибрирует и не вращается, пары определены неверно.
Почему мой двигатель так сильно нагревается?
Потому что шаговый двигатель потребляет полный номинальный ток всегда, когда находится под напряжением, в том числе когда неподвижно удерживает позицию. Именно так он удерживает положение, поэтому шаговый двигатель в покое рассеивает примерно столько же мощности, сколько работающий. Температура корпуса от 60 до 80 °C обычно не является неисправностью. Если к нему нельзя притронуться даже на секунду, проверьте, действительно ли предел тока драйвера соответствует номиналу двигателя, и при необходимости отключайте двигатель, когда осе не требуется удерживать.
Можно ли использовать момент удержания как рабочий момент?
Нет, и это почти всегда становится неожиданностью. Момент удержания измеряется при неподвижном вале и номинальном токе. Как только двигатель вращается, реактивное сопротивление обмоток и противоЭДС (EMF) уменьшают ток, который может обеспечить драйвер, поэтому доступный момент падает: в типичной системе 24 V он остаётся почти постоянным примерно до 600 rpm и стремится к нулю к 1200. Выбирайте двигатель по кривой момента на фактической рабочей скорости и оставляйте запас: нагрузка при 100 процентов доступного момента находится точно на пределе срыва, без резерва.
Следует ли выбрать NEMA 17 или NEMA 23?
NEMA 17, пока момент действительно не закончится. NEMA 23 имеет корпус 57 mm и в два-четыре раза больший момент, но он тяжелее, требует более крупного драйвера и источника питания, а дополнительная инерция ротора затрудняет разгон. Для графопостроителя, небольшого портала, каретного стержня камеры или 3D-принтера NEMA 17 — правильный выбор. Переходите выше, когда NEMA 17 при разумном пределе тока останавливается на нужной скорости.
Можно ли управлять шаговым двигателем без платы драйвера?
Полезно — нет. Обмотка шагового двигателя представляет собой катушку с малым сопротивлением: при подключении 24 V к 2.8 Ω по закону Ома получится 8.6 A, что уничтожит двигатель. Задача драйвера — регулировать ток широтно-импульсной модуляцией, а H-мост с циклом задержки не может сделать это на любой полезной скорости. Технически L298N может управлять таким двигателем, но это схема моста с регулированием напряжения и без ограничения тока, поэтому получится лишь часть момента и много нагрева.
Дополнительные материалы