Перейти к основному содержимому

Шаговые двигатели

Микроконтроллер управляет шаговым двигателем через отдельный драйвер

Шаговый двигатель удобен там, где механизм должен не просто вращаться, а перемещаться на подсчитываемое число небольших приращений. Так поднимают захват, поворачивают платформу датчика, двигают каретку или дозатор. Но команды микроконтроллера не питают обмотки напрямую: между программой и мотором работает силовой драйвер.

Коротко

Шаговый двигатель поворачивает ротор последовательными шагами, когда драйвер меняет ток в его обмотках. Программа задаёт направление и количество командных шагов, а драйвер создаёт нужные токи. Если момент нагрузки или ускорение слишком велики, мотор может пропустить шаг, и подсчитанное положение перестанет совпадать с реальным.

Зачем это нужно

Представим робота с линейной кареткой. Чтобы подвести датчик к трём точкам, контроллеру удобно послать разные количества импульсов и посчитать предполагаемое перемещение. Мотор может удерживать вал в выбранном положении, поэтому каретка не обязана свободно катиться после каждой остановки.

Эта схема полезна для:

  • небольших координатных механизмов и учебных станков;
  • поворотных столов и панорамных датчиков;
  • подачи нити, ленты или деталей;
  • дозаторов и клапанов с повторяемой механикой;
  • роботов, которым нужен медленный управляемый поворот.

Однако шаговый двигатель нельзя выбирать только по углу шага. Нужно проверить ток фазы, допустимый нагрев, момент на рабочей скорости, инерцию механизма и возможности драйвера.

Примеры устройств

Примеры шаговых двигателей

УстройствоЧто этоТипичные признакиЧто сравнить перед выбором
NEMA 17распространённый биполярный шаговый двигательчетыре провода, фланец стандартного размераток фазы, момент и драйвер с ограничением тока
28BYJ-48маленький редукторный шаговый мотор5 проводов, часто идёт с платой ULN2003скорость, люфт редуктора и схема включения
12V geared stepperшаговый мотор с редукторомбольше момент на выходе, ниже скоростьпередаточное отношение и допустимый нагрев
NEMA + shieldучебный стенд с драйверомдвигатель подключён через отдельную платусовпадают ли питание, ток и настройки микрошагов

Главный вопрос: программа управляет положением по счёту шагов или ей нужна обратная связь? Шаговый двигатель удобен для повторяемых перемещений, но при перегрузке может пропустить шаг.

Главная идея

Внутри типичного двухфазного шагового двигателя есть две обмотки — фазы A и B. Драйвер меняет величину и направление тока в фазах. Получающееся магнитное поле задаёт устойчивое положение ротора. Следующее состояние токов смещает поле, и ротор следует за ним.

команды движения → драйвер → токи фаз A и B → магнитное поле → поворот ротора

Для двухфазного биполярного двигателя драйверу нужны два полных моста: по одному на каждую обмотку. Они позволяют менять направление тока. Поэтому четыре вывода мотора подключают к силовым выходам драйвера, а не к обычным GPIO микроконтроллера.

Биполярный двигатель

У двухфазного биполярного двигателя обычно четыре моторных провода: два конца фазы A и два конца фазы B. Цвета проводов не универсальны. Пары определяют по документации конкретного двигателя или измерением сопротивления при отключённом питании.

Контроллер, драйвер и мотор — разные звенья

В распространённом варианте интерфейса микроконтроллер посылает драйверу два логических сигнала:

  • STEP — активный фронт продвигает внутренний индексатор драйвера к следующему состоянию;
  • DIR — выбирает направление обхода последовательности состояний.

Драйвер получает отдельное силовое питание, регулирует ток в фазах и защищает силовые ключи в пределах возможностей конкретной микросхемы. Названия и уровни входов, длительность импульса и логика ENABLE зависят от модели — их берут из datasheet.

СвязьЧто переноситКуда подключается
STEPкоманды очередного шага или микрошагового состоянияGPIO контроллера → логический вход драйвера
DIRвыбранное направлениеGPIO контроллера → логический вход драйвера
питание логикиэнергию для управляющей части, если она требуется отдельноисточник логики → драйвер
питание мотораэнергию для обмотоксиловой источник → драйвер
фаза Aдвунаправленный ток первой обмоткидва выхода моста драйвера → первая пара мотора
фаза Bдвунаправленный ток второй обмоткидва выхода второго моста → вторая пара мотора

На первой иллюстрации синий импульсный и фиолетовый постоянный пути обозначают STEP и DIR. Четыре линии от драйвера к двигателю — две пары фаз. Короткий вал через муфту вращает ходовой винт, а гайка в каретке превращает вращение в линейное перемещение.

Полный шаг, полушаг и микрошаг

Схематическое сравнение состояний полного шага, полушага и микрошагового режима

Иллюстрация показывает командные состояния вектора токов, а не реальное число зубцов статора. Четыре, восемь и множество отметок помогают увидеть рост разрешения команды. Они не обещают линейный механический микрошаг и не являются картой абсолютной точности вала.

РежимКак управляются фазыЧто обычно меняется
полный шагиспользуются крупные дискретные состояния токовпростое управление, заметнее рывки и резонанс
полушагмежду полными состояниями добавляются промежуточныеудваивается число командных состояний на оборот, движение часто становится плавнее
микрошагдрайвер регулирует относительные токи фаз небольшими приращениямименьше вибраций и шума, выше разрешение команды

Если мотор имеет N полных шагов на оборот, а драйвер делит каждый полный шаг на m микрошаговых состояний, расчётное число команд на оборот равно:

команд_на_оборот = N × m

Для передачи или ходового винта добавляют их коэффициент. Например, при прямом приводе винта с ходом L миллиметров на оборот расчётное перемещение одной команды:

перемещение_на_команду = L / (N × m)

Это разрешение команды, не гарантированная погрешность механизма. На фактическое положение влияют нагрузка, трение, люфт, упругость муфты, погрешность винта, момент фиксации зубцов и нелинейность микрошаговых положений. Microchip отмечает, что увеличение дробления сверх некоторого уровня может уменьшить шум, но не обязательно заметно улучшает позиционную точность.

Ограничение тока и нагрев

Сопротивление обмотки ограничивает ток, но при движении проявляется и её индуктивность: ток не успевает мгновенно достигнуть заданного значения. Поэтому современные драйверы часто питают мотор напряжением выше указанного для одной фазы и быстро переключают мост, регулируя ток, а не просто постоянно подавая это напряжение на обмотку. Применять такой режим можно только по схеме и настройкам конкретного драйвера.

Ограничение тока

Это настройка максимального тока фазы, которую реализует драйвер. Её определяют по допустимому току двигателя, схеме измерения тока на плате, охлаждению и руководству производителя. Положение подстроечного резистора само по себе не является универсальной шкалой ампер.

Шаговый двигатель способен потреблять ток и нагреваться даже в покое: драйвер удерживает ротор магнитным полем. Некоторые драйверы умеют снижать ток удержания, когда ось остановлена. Допустимость этого зависит от того, должна ли ось сопротивляться внешней нагрузке.

НаблюдениеВозможная причинаЧто проверить безопасно
мотор очень горячий в покоеслишком велик ток удержания или мало охлаждениянастройку тока по документации, температуру корпуса и драйвера
вал гудит, но не вращаетсяперепутаны пары фаз, мало момента, слишком резкий стартпары обмоток при снятом питании, частоту и разгон
драйвер отключаетсяперегрев, перегрузка, просадка питания или ошибка монтажафлаг неисправности, напряжение, охлаждение, соединения
на скорости падает моментток не успевает нарастать, велика нагрузка или скоростькривую момент–скорость и режим драйвера

Не меняйте моторные разъёмы под питанием. Индуктивный выброс и плохой контакт способны повредить драйвер.

Почему двигатель пропускает шаги

В простой системе шаговый двигатель работает без датчика положения. Контроллер знает, сколько импульсов отправил, но не получает подтверждения каждого фактического перемещения. Если ротор не успел за магнитным полем, программный счёт продолжится с ошибкой.

Типичные причины:

  1. сразу задана высокая частота импульсов, хотя ротору и нагрузке нужно разогнаться;
  2. слишком велико ускорение или инерция каретки;
  3. рабочий момент нагрузки превышает доступный момент двигателя;
  4. ток фазы настроен слишком низко либо питание проседает;
  5. механизм заедает, муфта проскальзывает, винт перекошен;
  6. импульсы STEP не соответствуют временным требованиям драйвера.

Для движения используют профиль разгона и торможения: интервалы между импульсами уменьшают постепенно при разгоне и увеличивают перед остановкой. Подходящий профиль зависит от механики; универсальных значений частоты и ускорения нет.

покой → редкие импульсы → постепенное учащение → рабочая скорость
рабочая скорость → постепенное замедление → остановка

Нулевая точка и обратная связь

После включения контроллер часто не знает абсолютного положения открытой оси. Счётчик команд начинается с произвольного места. Поэтому каретку медленно ведут к концевому датчику, фиксируют известную координату, отъезжают и при необходимости подходят повторно медленнее. Такая процедура называется поиском нуля или homing.

LinuxCNC отдельно различает скорость поиска и более медленную скорость точной фиксации датчика. Это полезная инженерная модель даже для небольшого робота: быстрый первый подход сокращает время, медленный повторный — уменьшает разброс из-за торможения и переключения датчика.

Концевик не обнаруживает все пропущенные шаги во время работы. Для контроля фактического положения нужен энкодер или другой датчик обратной связи. Но и система с энкодером требует проверки: где замкнут контур, выдаёт ли драйвер сигнал ошибки и что делает программа при расхождении.

Пример: поворотный стол сортировщика

У робота есть диск с восемью ячейками. Шаговый двигатель вращает его через передачу. Алгоритм запускается так:

  1. медленно вращает стол до датчика нулевой метки;
  2. отходит от датчика и повторяет подход с меньшей скоростью;
  3. обнуляет программный счётчик позиции;
  4. рассчитывает число команд до нужной ячейки с учётом передачи и микрошагового режима;
  5. разгоняет стол, движется и заранее тормозит;
  6. после цикла периодически возвращается к нулевой метке, если накопленная ошибка недопустима.

Здесь микрошаг полезен прежде всего для плавности. Точность попадания проверяют по реальному столу: люфт передачи и пропущенный шаг не исчезают от большего числа команд.

Что запомнить про шаговый привод

  • Микроконтроллер посылает логические команды драйверу, а драйвер коммутирует две фазы мотора.
  • Четыре вывода биполярного двигателя образуют две пары обмоток; порядок и цвета проверяют по документации.
  • Микрошаг повышает разрешение команды и часто снижает вибрации, но не равен гарантированной точности.
  • Ток фазы настраивают по двигателю, драйверу и охлаждению; удержание создаёт момент и тепло.
  • Частота импульсов задаёт скорость команд, а безопасное ускорение ограничивает механика.
  • Открытая система может потерять шаги; поиск нуля восстанавливает известную систему координат, а энкодер даёт обратную связь.

Практика

Задание 1. Проследи энергию и команды

Нарисуйте блок-схему из контроллера, драйвера, отдельного силового источника и двухфазного биполярного двигателя. Отметьте разными цветами STEP, DIR, общий провод, питание мотора и две пары фаз. Объясните, почему ни один вывод обмотки не должен идти прямо на GPIO.

Задание 2. Рассчитайте командное разрешение

Выберите двигатель и ходовой винт из реальных datasheet. Рассчитайте число команд на оборот и миллиметров на команду для полного шага, полушага и одного выбранного микрошагового режима. Отдельно перечислите причины, по которым реальная ошибка окажется больше этого числа.

Задание 3. Спроектируйте поиск нуля

Составьте последовательность homing для каретки с одним концевиком. Укажите направление первого движения, скорость поиска, отъезд, медленный повторный подход, координату после срабатывания и реакцию на ситуацию, когда датчик уже активен при запуске. Готовый код не требуется.

Задание 4. Найдите причину пропусков

Каретка надёжно движется медленно, но гудит и теряет положение при мгновенном запуске на высокой скорости. Составьте план проверки, начиная с неразрушающих наблюдений. Включи профиль разгона, механику, ток, питание и временные параметры STEP.

Проверьте себя

  1. Почему для биполярного шагового двигателя нужны два полных моста?
  2. Чем сигналы STEP и DIR отличаются от токов в обмотках?
  3. Что показывает расчётное число микрошагов на оборот и чего оно не гарантирует?
  4. Почему двигатель может нагреваться, когда вал стоит?
  5. Откуда появляется ошибка положения при пропущенном шаге?
  6. Зачем разгонять и тормозить ось постепенно?
  7. Как поиск нуля восстанавливает координату после включения?
  8. Когда потребуется энкодер, а не только концевой датчик?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

  • формулируете основную мысль своими словами;
  • называете важные условия, ограничения или меры безопасности;
  • для схемы, кода или расчёта показываете ход решения и ожидаемый результат.

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

  • Шаговый двигатель — двигатель, положение магнитного поля которого меняется дискретной последовательностью токов фаз.
  • Фаза — обмотка или группа обмоток, током которой управляет драйвер.
  • Биполярный двигатель — шаговый двигатель, где направление тока в каждой фазе нужно менять.
  • Драйвер — силовая электронная часть между логическими командами и обмотками.
  • STEP/DIR — распространённый интерфейс команды шага и выбора направления.
  • Полный мост — силовая схема, позволяющая пропускать ток через нагрузку в двух направлениях.
  • Микрошаг — промежуточное командное состояние, создаваемое регулированием относительных токов фаз.
  • Ток удержания — ток фаз, создающий удерживающий момент при остановленном валу.
  • Пропуск шага — ситуация, когда фактический ротор не последовал за очередным командным состоянием.
  • Поиск нуля — движение к известной механической метке для задания координаты.

Связанные темы

  • Коллекторные двигатели — чем непрерывное вращение DC-мотора отличается от шагового режима.
  • Сервоприводы — как исполнительный механизм удерживает заданное положение с внутренней обратной связью.
  • Мотор-редукторы — как передача меняет скорость, момент и люфт механизма.
  • Энкодеры — как измерить фактическое движение вала.
  • Бесколлекторные двигатели — как электронная коммутация отличается от дискретного позиционирования шагового привода.

Источники