Напряжение питания шагового двигателя

Напряжение питания шагового двигателя

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

Производители шаговых двигателей: Autonics, Motionking, Fulling motor и другие.

Шаговые двигатели: принцип действия и отличия от двигателей постоянного тока

Двигатели постоянного тока (ДПТ) с постоянными магнитами Lenze начинают работать сразу, как только к якорной обмотке будет приложено постоянное напряжение. Переключение направления тока через обмотки ротора осуществляется механическим коммутатором — коллектором. Постоянные магниты при этом расположены на статоре.

Шаговый двигатель (ШД) может быть рассмотрен как ДПТ без коллекторного узла. Обмотки ШД являются частью статора. На роторе расположен постоянный магнит или, для случаев с переменным магнитным сопротивлением, зубчатый блок из магнитомягкого материала. Все коммутации производятся внешними схемами. Обычно система мотор — контроллер разрабатывается так, чтобы была возможность вывода ротора в любую, фиксированную позицию, то есть система управляется по положению. Цикличность позиционирования ротора зависит от его геометрии.

Принято различать шаговые двигатели (Autonics, Motionking, Fulling motor) и серводвигатели (Lenze). Принцип их действия во многом похож, и многие контроллеры могут работать с обоими типами. Основное отличие заключается в шаговом (дискретном) режиме работы шагового двигателя (n шагов на один оборот ротора) и плавности вращения синхронного двигателя. Серводвигатели требуют наличия в системе управления датчика обратной связи по скорости и/или положению, в качестве которого обычно используется резольвер или sin/cos энкодер. Шаговые двигатели преимущественно используются в системах без обратных связей, требующих небольших ускорений при движении. В то время как синхронные сервомоторы обычно используются в скоростных высокодинамичных системах.

Шаговые двигатели (ШД) делятся на две разновидности: двигатели с постоянными магнитами и двигатели с переменным магнитным сопротивлением (гибридные двигатели). С точки зрения контроллера отличие между ними отсутствует. Двигатели с постоянными магнитами обычно имеют две независимые обмотки, у которых может присутствовать или отсутствовать срединный отвод (см. рис. 1).

Униполярный шаговый двигатель с постоянными магнитами

Биполярные шаговые двигатели с постоянными магнитами и гибридные двигатели сконструированы более просто, чем униполярные двигатели, обмотки в них не имеют центрального отвода (см. рис. 2).

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

За это упрощение приходится платить более сложным реверсированием полярности каждой пары полюсов мотора.

Шаговые двигатели имеют широкий диапазон угловых разрешений. Более грубые моторы обычно вращаются на 90° за шаг, в то время как прецизионные двигатели могут иметь разрешение 1,8° или 0,72° на шаг. Если контроллер позволяет, то возможно использование полушагового режима или режима с более мелким дроблением шага (микрошаговый режим), при этом на обмотки подаются дробные значения напряжений, зачастую формируемые при помощи ШИМ-модуляции.

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

Для правильного управления биполярным шаговым двигателем необходима электрическая схема, которая должна выполнять функции старта, стопа, реверса и изменения скорости. Шаговый двигатель транслирует последовательность цифровых переключений в движение. «Вращающееся» магнитное поле обеспечивается соответствующими переключениями напряжений на обмотках. Вслед за этим полем будет вращаться ротор, соединенный посредством редуктора с выходным валом двигателя.

Каждая серия содержит высокопроизводительные компоненты, отвечающие все возрастающим требованиям к характеристикам современных электронных применений.

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

На рисунке 3 показана последовательность управления для режима с единичным шагом.

Управляющая последовательность для режима с единичным шагом

На рисунке 4 показана последовательность для полушагового управления.

Управляющая последовательность для режима с половинным шагом

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

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

Если в качестве исполнительного двигателя использовать синхронный шаговый двигатель, то можно обойтись без датчика обратной связи (Дт) и упростить систему управления двигателем (СУ), так как отпадает необходимость использования в ней цифро%аналоговых (ЦАП) и аналого-цифровых (АЦП) преобразователей.

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

Мощность шаговых двигателей лежит в диапазоне от единиц ватт до одного киловатта.Шаговый двигатель имеет не менее двух положений устойчивого равновесия ротора в пределах одного оборота. Напряжение питания обмоток управления шагового двигателя представляет собой последовательность однополярных или двуполярных прямоугольных импульсов, поступающих от электронного коммутатора (К). Результирующий угол соответствует числу переключений коммутатора, а частота вращения двигателя соответствует частоте переключений электронного коммутатора.

Шаговые двигатели различаются по конструктивным группам: активного типа (с постоянными магнитами), реактивного типа и индукторные.

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

Шаговые синхронные двигатели активного типа

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

Различают два вида коммутации обмотки шагового двигателя: симметричная и несимметричная.

При симметричной системе коммутации на всех четырех тактах возбуждается одинаковое число обмоток управления.

Принципиальная схема управления шаговым двигателем

При несимметричной системе коммутации четным и нечетным тактам соответствует различное число возбужденных обмоток управления.

Симметричная схема коммутации

Ротор у шагового двигателя активного типа представляет собой постоянный магнит, при числе пар полюсов больше 1, выполненный в виде «звездочки».

Несимметричная система коммутации

Число тактов KT системы управления называют количеством состояний коммутатора на периоде его работы T. Как видно из рисунков для симметричной системы управления KT=4, а для несимметричной KT=8.

В общем случае число тактов KT зависит от числа обмоток управления (фаз статора) mу и может быть посчитано по формуле:

где: n1=1 — при симметричной системе коммутации;

n1=2 — при несимметричной системе коммутации;

n2=1 — при однополярной коммутации;

n2=2 — при двуполярной коммутации.

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

При однополярной коммутации ток в обмотках управления протекает в одном направлении, а при двуполярной — в обеих. Синхронизирующий (электромагнитный) момент машины является результатом взаимодействия потока ротора с дискретно вращающимся магнитным полем статора. Под действием этого момента ротор стремится занять такое положение в пространстве машины, при котором оси потоков ротора и статора совпадают. Мы рассмотрели шаговые синхронные машины с одной парой полюсов (р=1). Реальные шаговые микродвигатели являются многополюсными (р>1). Для примера приведем двуполюсный трехфазный шаговый двигатель.

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

Чем меньше шаг машины, тем точнее (по абсолютной величине) будет отрабатываться угол. Увеличение числа пар полюсов связано с технологическими возможностями и увеличением потока рассеяния. Поэтому р=4…6. Обычно величина шага ротора активных шаговых двигателей составляет десятки градусов.

Реактивные шаговые двигатели

У активных шаговых двигателей есть один существенный недостаток: у них крупный шаг, который может достигать десятков градусов.

Реактивные шаговые двигатели позволяют редуцировать частоту вращения ротора. В результате можно получить шаговые двигатели с угловым шагом, составляющим доли градуса.

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

Принцип действия реактивного редукторного двигателя

При большом числе зубцов ротора Zр его угол поворота значительно меньше угла поворота поля статора.

Величина углового шага редукторного реактивного шагового двигателя определится выражением:

В выражении для KT величину n2 следует брать равной 1, т.к. изменение направления поля не влияет на положение ротора.

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

Основным недостатком шагового реактивного двигателя является отсутствие синхронизирующего момента при обесточенных обмотках статора.

Повышение степени редукции шаговых двигателей, как активного типа, так и реактивного, можно достичь применением двух, трех и многопакетных конструкций. Зубцы статора каждого пакета сдвинуты относительно друг друга на часть зубцового деления. Если число пакетов два, то этот сдвиг равен 1/2 зубцового деления, если три, то — 1/3, и т.д. В то же время роторы-звездочки каждого из пакетов не имеют пространственного сдвига, т.е. оси их полюсов полностью совпадают. Такая конструкция сложнее в изготовлении и дороже однопакетной, и, кроме того, требует сложного коммутатора.

Индукторные (гибридные) шаговые двигатели. Стремление совместить преимущества активного шагового двигателя (большой удельный синхронизирующий момент на единицу объема, наличие фиксирующего момента) и реактивного шагового двигателя (малая величина шага) привело к созданию гибридных индукторных шаговых двигателей.

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

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

Линейные шаговые синхронные двигатели

При автоматизации производственных процессов весьма часто необходимо перемещать объекты в плоскости (например, в графопостроителях современных ЭВМ и т.д.). В этом случае приходится применять преобразователь вращательного движения в поступательное с помощью кинематического механизма.

Линейные шаговые двигатели преобразуют импульсную команду непосредственно в линейное перемещение. Это позволяет упростить кинематическую схему различных электроприводов.

Статор линейного шагового двигателя представляет собой плиту из магнитомягкого материала. Подмагничивание магнитопроводов производится постоянным магнитом.

Схема — работа линейного шагового двигателя

Зубцовые деления статора и подвижной части двигателя равны. Зубцовые деления в пределах одного магнито-провода ротора сдвинуты на половину зубцового деления t/2. Зубцовые деления второго магнитопровода сдвинуты относительно зубцовых делений первого магнитопровода на четверть зубцового деления t/4. Магнитное сопротивление потоку подмагничивания не зависит от положения подвижной части.

Принцип действия линейного шагового двигателя не отличается от принципа действия индукторного шагового двигателя. Разница лишь в том, что при взаимодействии потока обмоток управления с переменной составляющей потока подмагничивания создается не момент, а сила FС, которая перемещает подвижную часть таким образом, чтобы против зубцов данного магнитопровода находились зубцы статора, т.е. на четверть зубцового деления t/4.

где Kt — число тактов схемы управления.

Для перемещения объекта в плоскости по двум координатам применяются двухкоординатные линейные шаговые двигатели.

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

Режимы работы синхронного шагового двигателя

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

Режим отработки единичных шагов соответствует частоте импульсов управления, подаваемых на обмотки шагового двигателя, при котором шаговый двигатель отрабатывает до прихода xследующего импульса заданный угол вращения. Это значит, что в начале каждого шага угловая скорость вращения двигателя равна 0.

При этом возможны колебания углового вала двигателя относительно установившегося значения. Эти колебания обусловлены запасом кинетической энергии, которая была накоплена валом двигателя при отработке угла. Кинетическая энергия преобразуется в потери: механические, магнитные и электрические. Чем больше величина перечисленных потерь, тем быстрее заканчивается переходный процесс отработки единичного шага двигателем.

Процесс отработки шагов шаговым двигателем

В процессе пуска ротор может отставать от потока статора на шаг и более; в результате может быть расхождение между числом шагов ротора и потока статора.

Основными характеристиками шагового двигателя являются: шаг, предельная механическая характеристика и приемистость.

Предельная механическая характеристика — это зависимость максимального синхронизирующего момента от частоты управляющих импульсов.

Предельная механическая характеристика шагового двигателя

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

Предельная динамическая характеристика шагового двигателя

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

В. П. Колодийчик.

Изучаем миниатюрный шаговый двигатель

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

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

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

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

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

Результатами своих поисков и экспериментами я поделюсь в этой статье.

Мы рассмотрим вопросы управления такими маленькими моторчиками, а именно:

  • драйвер L293D + микроконтроллер ATtiny44;
  • драйвер TMC2208 + микроконтроллер ATtiny44;
  • микроконтроллер ATtiny44 (без драйвера).

Знакомство

Сначала немного посмотрим на внешний вид нашего героя:

Он действительно очень маленький! Согласно умной книжке Петренко С.Ф.
«Пьезоэлектрические двигатели в приборостроении», меньших размеров электромагнитные моторчики создать в принципе невозможно… то есть возможно, но с уменьшением диаметра проволоки, из которой изготавливают обмотки, всё больше энергии рассеивается в виде тепла в окружающую среду, что приводит к уменьшению КПД моторчика и делает их использование нерациональным.

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

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

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

Собственно, ничего необычного мы не увидели. Ротор намагничен. Подшипников нигде не наблюдается, всё на втулках. Задняя втулка запрессована в корпус двигателя. Передняя ничем не закреплена. Интересно, что корпус двигателя собирался точечной сваркой. Так что переднюю крышку корпуса пришлось спиливать.

Теперь перейдём к вопросу подключения и его электрическим характеристикам.

Убедимся, что он биполярный, прозвонив обмотки. Действительно биполярный, всё как на картинке выше. Сопротивление обмоток около 26Ом, хотя продавец указал 14Ом.
В описании сказано, что напряжение питания 5В. Хотя мы то с вами знаем, что для шагового двигателя важен ток, который будут потреблять его обмотки.
Пробуем подключить.

Эксперимент №1. L293D + ATtiny44

Как мы знаем, для управления биполярным шаговым двигателем необходимо не просто прикладывать напряжения к двум обмоткам в нужной последовательности, но и изменять направление тока в этих обмотках, причём делать это независимо друг от друга. Для этого на каждую обмотку нужен собственный Н-мост. Чтобы не городить его из транзисторов, был взят готовый в лице микросхемы L293D. Ещё одно её преимущество — у микросхемы имеются специальные выводы Enable1 и Enable2, который включают и выключают каждый мост. Их можно использовать чтобы подавать ШИМ сигнал, тем самым, возможно контролировать напряжения питания каждого моста. Зачем это может понадобиться, мы увидим дальше.

Кроме того, L293D может коммутировать напряжения до 36В и выдавать до 1,2А на каждый канал, чего вполне должно хватить для питания обмоток нашего моторчика.

Управляющие входы L293D подключены к выходам OC0A и OC0B, что позволит в будущем подавать на них ШИМ сигнал.

Прошивать контроллер будем через внутрисхемный программатор (на схеме не указан).
Вот как выглядит собранная схема на макетной плате:

И вот так расположен наш подопытный:

Теперь можно приступать к экспериментам.

Рассчитаем ток, который будет течь через обмотки двигателя при подключении их к напряжению 5В:

I=U/R = 5В/26Ом = 190мА

Совсем небольшой. Интересно как долго он сможет держать такой ток и не перегреться.

Включим в цепь одной из обмоток амперметр и вольтметр, и проведём замеры соответствующих величин при подачи питания на эту обмотку через драйвер.

При падении напряжения на обмотке 2.56В амперметр показывает ток 150мА, причём хорошо заметно, как начинает падать величина силы тока в процессе нагревания обмоток. Надо отметить, что не так уж и сильно он греется.

Убедившись, что напряжение 5В для моторчика опасности не представляет, попробуем покрутить им в разные стороны. И вот теперь пару слов мы скажем про режимы работы шагового двигателя.

Об этом довольно хорошо сказано здесь.

Не будем повторяться, но вспомним, что шаговый двигатель может работать в трёх режимах:

  • Полношаговый однофазный это когда одновременно напряжение подаётся только на одну фазу двигателя, ротор делает шаг, затем текущая фаза выключается и включается следующая.
  • Полношаговый двухфазный это когда напряжение подаётся одновременно на две фазы мотора, при этом, ротор притягивается одновременно к двум обмоткам, что создаёт больший крутящий момент.
  • Микрошаговый режим в этом случае реализуется тот же принцип, что и на полношаговом двухфазном, то есть работают одновременно две обмотки, но напряжение (и как следствие ток) распределяется между ними неравномерно. Фактически, это означает, что мы можем поставить моторчик в неограниченное количество положений (на практике, разумеется, такого сделать нельзя). Увеличивается точность позиционирования.

Исходный код программы выглядит следующим образом:

Исходный код в среде WinAVR

#define F_CPU 8000000UL // указываем частоту в герцах // фьюзы необходимо выставить L: E2; H:DF; Ex:FF; // это будет частота 8МГц от внутреннего генератора с выключенным предделителем тактовый частоты (включен по умолчанию и равен 8) #include // подключаем библиотеку АВР #include // подключаем библиотеку задержек #include // подключаем библиотеку прерываний // управление штатным светодиодом #define LED_pin PA5 #define LED_ON PORTA |=(1 <> void delay_millisecond (unsigned int delay_time) < // функция реализации задежки в миллисекундах for(unsigned int delay_ms = 0; delay_ms> // функции шагов для полношагового однофазного режима void step_1_one_phase (void) < PORTB &=(~((1<void step_2_one_phase (void) < PORTA &=(~((1<void step_3_one_phase (void) < PORTB &=(~((1<void step_4_one_phase (void) < PORTA &=(~((1<// функции шагов для полношагового двухфазного режима void step_1_two_phase (void) < PORTB |=(1<void step_2_two_phase (void) < PORTA &=(~(1<void step_3_two_phase (void) < PORTB |=(1<void step_4_two_phase (void) < PORTA |=(1<void stepper_OFF (void) < // функция отключения двигателя // снимаем напрядение с обмоток, если не нужна фиксация в установленном положении, чтобы двигатель не перегревался PORTA &=(~((1<unsigned char step_counter = 0; // функция следящая за текущим шагом void L293D_step (unsigned int step_quantity, unsigned char direction, unsigned int step_delay, unsigned char phase) < // при вызове функции происходит смена шага while(step_quantity>0) < // цикл выполняется, пока не будут выполнены все шаги switch(direction) < // в зависимости от установленного направления вращения инкрементируем или декрементируем счётчик шагов case 'F': if(step_counter<3) < step_counter++; >else < step_counter=0; >break; case 'B': if(step_counter>0) < step_counter--; >else < step_counter=3; >break; > switch(phase) < // выбираем однофазный или двухфазный режим case 1: switch(step_counter) < // назначаем текущий шаг case 0: step_1_two_phase_DL(); break; case 1: step_2_two_phase_DL(); break; case 2: step_3_two_phase_DL(); break; case 3: step_4_two_phase_DL(); break; >break; case 2: switch(step_counter) < // назначаем текущий шаг case 0: step_1_two_phase_DL(); break; case 1: step_2_two_phase_DL(); break; case 2: step_3_two_phase_DL(); break; case 3: step_4_two_phase_DL(); break; >break; > delay_millisecond(step_delay); // пауза между шагами задаёт скорость вращения двиагетля step_quantity--; > > void PWM_init (void) < // функция инициализации ШИМ DDRB |=(1<// конец функции инициализации ШИМ int main (void) < DDRA |=(1<> 

Полношаговый режим. Одна фаза

Двигатель делает 16 шагов на один оборот. Причём шаги для двух фаз имеют не одинаковую угловую величину. Не знаю с чем это связано. Может конструкция двигателя такая?

Посмотрим на максимальную частоту шагов, которую он может обеспечить в таком режиме, не пропуская их.

Минимальная задержка между шагами 2мс, значит 500 шагов/секунду. Неплохо, это 31 об/сек = 1850 об/мин.

Полношаговый режим. Две фазы

Обратите внимание, что в этом случае шаги получаются ровнее, они одинаковы по величине (во всяком случае, более одинаковы, чем в предыдущем случае).

Естественно, в этом случае под напряжением находятся одновременно две обмотки и теплоотдача возрастает. Двигатель уже через несколько секунд нагревается достаточно сильно, потому эксперимент я прекратил.

Что с максимальной частотой шагов? 500 шагов/секунду; 31 об/сек = 1875 об/мин.
Надо сказать, что для шагового двигателя он довольно шустрый. Это связано с малым количеством магнитных полюсов на роторе.

Эксперимент №2. TMC2208 + ATtiny44

TMC2208 — название микросхемы-драйвера для управления биполярными шаговыми двигателями, аналогично называется модуль на её основе, который выпускается для установки в самодельные (и не только) 3D принтеры и имеет унифицированное расположение выводов.
Много и доходчиво сказано про этот модуль вот здесь.

В интернете много написано про то, как установить его в свой 3D принтер, но нас интересует как подключить модуль к микроконтроллеру, потому давайте разбираться.

Характеристики микросхемы впечатляют (только впечатлительных людей):

  • напряжение питания логической части: 3-5В;
  • напряжение питания двигателя 5.5-36В;
  • пиковый ток 2А;
  • настройка максимального тока двигателя;
  • поддержка интерфейса UART как для управления, так и для конфигурирования внутренних регистров;
  • автоматическое отключение питания;
  • поддержка микрошагового режима управления двигателем вплоть до 1/16 шага.

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

Схема подключения будет выглядеть так:

Дополнительно я использовал пин EN, чтобы отключать моторчик и длительное время не держать обмотки под напряжением.

Исходный код в среде WinAVR

#define F_CPU 8000000UL // указываем частоту в герцах // фьюзы необходимо выставить L: E2; H:DF; Ex:FF; // это будет частота 8МГц от внутреннего генератора с выключенным предделителем тактовый частоты (включен по умолчанию и равен 8) #include // подключаем библиотеку АВР #include // подключаем библиотеку задержек #include // подключаем библиотеку прерываний // управление штатным светодиодом #define LED_pin PA5 #define LED_ON PORTA |=(1 <> void delay_millisecond (unsigned int delay_time) < // функция реализации задежки в миллисекундах for(unsigned int delay_ms = 0; delay_ms> void TMS2208_STEP (unsigned int step_quantity, unsigned char direction, unsigned int step_delay) < switch(direction) < // направление вращения case 'F': DIR_FOR; break; case 'B': DIR_BACK; break; >while(step_quantity>0) < // пока не сделали нужное количество шагов STP_ON; // делаем один шаг delay_microsecond(100); // длительность импульса 100мкС STP_OFF; delay_millisecond(step_delay);// пауза между импульсами step_quantity--; >> int main (void) < DDRA |=(1<> 

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

С микрошагом всё просто. За это отвечают пины MS1 и MS2.

Отмечу, что микросхема не скачкообразно меняет напряжение, а делает это «плавно», но так как микросхема цифровая, то на выходе у нас не гладкий сигнал, а сигнал с маленьким шагом, если верить документации, то каждый шаг она разбивает на 256 микрошагов. Сделано это для увеличения плавности хода, снижения шумов от двигателя и по идее не должно позволять конструкции, к которой он прикручен, входить в резонанс. Короче, всё для того, чтобы 3D принтер работал тише.

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

Нашему моторчику нужно примерно 150мА, потому Vref = 0,216В. Устанавливаем…

Подразумевается, что увеличение тока микросхема обеспечивает за счёт увеличения напряжения на обмотке. Потому, нужно позаботиться о том, чтобы этого напряжения хватило. Но, полагаю, для того маленького моторчика должно хватить и 5В.

Протестируем работу моторчика с различными режимами микрошага и посмотрим что получится (пауза между микрошагами 10мс):

Можно заметить, что движения моторчика стали более плавными (по сравнению с предыдущим экспериментом), однако характерные 16 шагов всё равно наблюдаются довольно чётко. Что же… видимо это черта шаговых двигателей с ротором из постоянных магнитов.
Ещё необходимо отметить, что моторчик в этом режиме нагревается почти также сильно, как в полношаговом режиме с двумя фазами. Оно и понятно, обмотки постоянно находятся под напряжением, непрерывно происходит выделение тепла.

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

Эксперимент №3. ATtiny44-драйвер

Вернёмся ненадолго к первому эксперименту и вспомним, что входы EN1 и EN2 микросхемы драйвера подключены к пинам OC0A и OC0B микроконтроллера. Это значит, что мы можем подать туда ШИМ сигнал, генерируемый при помощи таймера TIMER0 и таким образом изменять напряжение, прикладываемое к обмоткам двигателя и соответственно регулировать ток, который будет протекать через них.

Согласно даташиту на микроконтроллер ATtiny44 максимальный ток, который может выдать один пин составляет всего 40мА. Причём не указано для какого вида тока (пульсирующего или постоянного) эта характеристика. Просто она есть и она вот такая…

Надо сказать, что я более 7 лет знаком с микроконтроллерами фирмы ATMEL. И ни разу у меня не возникло желания проверить эту строчку из даташита.

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

Мы это выясним. Но сначала нужно выяснить при каком минимальном токе моторчик вообще способен вращаться.

Используя схему из первого эксперимента, подгоняем значение тока через обмотки равное 40мА. Запускаем в полношаговом режиме с двумя фазами (так как будет выше крутящий момент):

Отлично! При 40мА двигатель успешно запустился! Был также выявлено минимальное значение тока обмоток, необходимое для устойчивой работы мотора, и равно оно 30мА.

Разумеется, крутящий момент будет значительно ниже, но для нас важен сам факт того, что удалось запустить моторчик с таким маленьким энергопотреблением.

Схема подключения шагового двигателя к микроконтроллеру будет следующей:

Поскольку каждый пин микроконтроллера работает как полумост (может коммутировать вывод микросхемы либо на Vcc, либо на GND), то для управления биполярным шаговым мотором нам понадобиться 4 пина микроконтроллера.

Исходный код в среде WinAVR

#define F_CPU 8000000UL // указываем частоту в герцах // фьюзы необходимо выставить L: E2; H:DF; Ex:FF; // это будет частота 8МГц от внутреннего генератора с выключенным предделителем тактовый частоты (включен по умолчанию и равен 8) #include // подключаем библиотеку АВР #include // подключаем библиотеку задержек #include // подключаем библиотеку прерываний // управление штатным светодиодом #define LED_pin PA5 #define LED_ON PORTA |=(1 <> void delay_millisecond (unsigned int delay_time) < // функция реализации задежки в миллисекундах for(unsigned int delay_ms = 0; delay_ms> // функции шагов для двухфазного полношагового режима без драйверов void step_1_two_phase_DL (void) < // DL - driver less // первая обмотка OCR0A = 160; PORTB &=(~(1<void step_2_two_phase_DL (void) < // первая обмотка OCR0A = 160; PORTB &=(~(1<void step_3_two_phase_DL (void) < // первая обмотка OCR0A = 95; PORTB |=(1<void step_4_two_phase_DL (void) < // первая обмотка OCR0A = 95; PORTB |=(1<unsigned char step_counter = 0; // функция следящая за текущим шагом void L293D_step (unsigned int step_quantity, unsigned char direction, unsigned int step_delay, unsigned char phase) < // при вызове функции происходит смена шага while(step_quantity>0) < // цикл выполняется, пока не будут выполнены все шаги switch(direction) < // в зависимости от установленного направления вращения инкрементируем или декрементируем счётчик шагов case 'F': if(step_counter<3) < step_counter++; >else < step_counter=0; >break; case 'B': if(step_counter>0) < step_counter--; >else < step_counter=3; >break; > switch(phase) < // выбираем однофазный или двухфазный режим case 1: switch(step_counter) < // назначаем текущий шаг case 0: step_1_two_phase_DL(); break; case 1: step_2_two_phase_DL(); break; case 2: step_3_two_phase_DL(); break; case 3: step_4_two_phase_DL(); break; >break; case 2: switch(step_counter) < // назначаем текущий шаг case 0: step_1_two_phase_DL(); break; case 1: step_2_two_phase_DL(); break; case 2: step_3_two_phase_DL(); break; case 3: step_4_two_phase_DL(); break; >break; > delay_millisecond(step_delay); // пауза между шагами задаёт скорость вращения двиагетля step_quantity--; > > void PWM_init (void) < // функция инициализации ШИМ DDRB |=(1<// конец функции инициализации ШИМ int main (void) < // главная функция DDRA |=(1<> 

Немного поясню как работает эта программа. Это модифицированный код из первого эксперимента. Как я говорил выше, будет использован 8 битный TIMER0 для генерирования ШИМ сигнала на выходах OC0A и OC0B. Таймер настраивается в режим FastPWM с предделителем на 8 (частота сигнала при 8МГц тактового генератора микроконтроллера составляет 3906Гц).

Чтобы изменять полярности сигналов на обмотках происходит переключение пина микроконтроллера от Vcc к GND изменением соответствующего бита в регистре PORTx и изменением коэффициента заполнения ШИМ путём записи значений в регистры OCR0A и OCR0B (значения подбирались экспериментально).

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

Шаговый двигатель вращается от пинов микроконтроллера без драйверов!

Но здесь мы не выходим за пределы возможностей микроконтроллера, по крайней мере, если верить тому, что пишут в документации. В таком режиме микроконтроллер и моторчик могут работать долго. Действительно, эксперимент длился 20 минут. За это время не наблюдалось ни пропуска шагов, ни сброса контроллера, ни перегрева (ни у двигателя, ни у контроллера).

Отбросим все предосторожности

Уберём из эксперимента ШИМ и будем напрямую управлять пинами микроконтроллера при помощи регистров PORTx. Посмотрим что будет с микроконтроллером после этого.

Работает… с максимальным током в 51мА… Что же… неожиданно, похоже это и есть предельный ток, который может отдать один пин микроконтроллера? Если я ошибаюсь, поправьте меня.

В любом случае, ролик с ютуба не обманул. Действительно можно управлять этим моторчиком без всяких драйверов.

Выводы

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

1. Миниатюрный биполярный шаговый мотор с ротором из постоянных магнитов действительно миниатюрный.

Его основные особенности:

  • малое количество магнитных полюсов, как следствие, малое количество шагов (у моего, напомню, всего 16);
  • относительно большая скорость вращения (следствие из предыдущего пункта), в эксперименте удалось достичь 1875 об/мин;
  • неудовлетворительно работает в микрошаговых режимах (не удерживается промежуточное положение ротора);

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

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

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

  • шаговый двигатель
  • микроконтроллеры avr
  • tmc2208
  • l293d
  • ATtiny44
  • Программирование
  • Схемотехника
  • Робототехника
  • DIY или Сделай сам
  • Электроника для начинающих

Шаговый двигатель для ЧПУ станка. Какой выбрать?

Чтобы понимать какой шаговый двигатель для ЧПУ станка вам необходим, нужно знать требования к крутящему моменту и частоте вращения (скорости). Лучший шаговый двигатель будет способен обеспечить необходимый крутящий момент и при этом быть достаточно быстрым. Очень легко переплатить за слишком большой шаговый двигатель или выбрать слабый. Это руководство может помочь вам выбрать шаговый двигатель, который вам нужен для вашего приложения с ЧПУ.

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

Я предлагаю им свои лучшие варианты в зависимости от категории шагового двигателя:

  • STEPPERONLINE NEMA 17 Stepper Motor
  • STEPPERONLINE NEMA 23 Stepper Motor
  • TOAUTO Integrated Closed-Loop NEMA 23 Stepper Motor with Driver
  • Hobby-Unlimited NEMA 34 Stepper motor

Вот лучшие шаговые двигатели, доступные сегодня [2021] для приложений ЧПУ.

Шаговый двигатель Пиковый ток Удерживающий крутящий момент
1. Шаговый двигатель STEPPERONLINE NEMA 17 84 унций дюйм
2. Шаговый двигатель Usongshine NEMA 17 1,5 А 60 унций в
3. Шаговый двигатель STEPPERONLINE NEMA 23 2,8 А 178,5 унций дюйм
4. Шаговый двигатель STEPPERONLINE NEMA 23 (3A) 3,0 А 269 ​​унций в дюймах
5. Шаговый двигатель NEMA 23, 4,2 А с высоким крутящим моментом 4,2 А 425 унций дюйм
6. Шаговый двигатель TOAUTO с замкнутым контуром NEMA 23 3,0 А 283 унций дюйм
7. Комплект шагового двигателя RATTM NEMA 23 4,0 А 425 унций дюйм
8. Шаговый двигатель Hobby-Unlimited NEMA 34 6.0A 1200 унций в

Лучшие шаговые двигатели для ЧПУ

Лучшие шаговые двигатели NEMA 17

1. Шаговый двигатель STEPPERONLINE NEMA 17 — лучший высокоточный шаговый двигатель.

NEMA 17-2A Stepper Motor for CNC

Этот двигатель имеет угол шага 1,8 градуса, а точность угла шага этого двигателя составляет +/- 5%. Индуктивность этого двигателя составляет 3,0 мГн, что меньше рекомендованной максимальной индуктивности 5,0 мГн. Это помогает достичь хорошего крутящего момента даже на более высоких оборотах. Он также имеет номинальную температуру окружающей среды 10-50 ° C и максимальную номинальную температуру 80 ° C.

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

Если вам нужно несколько двигателей NEMA 17 вместо одного, я предлагаю вам выбрать этот набор из 5 двигателей NEMA 17 для оптовой скидк.

ЗА:

  • Высокий крутящий момент среди двигателей NEMA 17.

МИНУСЫ:

  • Требуется шаговый драйвер TB6600 или лучше.

2. Шаговый двигатель Usongshine NEMA 17

Usongshine NEMA 17 1.5A Шаговый двигатель

Шаговый двигатель для ЧПУ NEMA 23 2.8A

Шаговый двигатель STEPPERONLINE NEMA 23 3.0A - лучший высокоскоростной шаговый двигатель.

График крутящего момента

Если вам требуется более 400 об / мин, и вам нужен крутящий момент более 250 унций даже на этой скорости, я предлагаю вам перейти к следующему двигателю в этом списке с более высоким крутящим моментом. Этот двигатель также имеет более высокое сопротивление (1,12 Ом). Он также может работать с драйвером TB6600 или драйвером шагового двигателя DM542T.

Управляющее напряжение, необходимое для работы этого шагового двигателя, составляет 24-48 В, что является стандартным для большинства двигателей NEMA 23. Этот двигатель также имеет те же 4 вывода, но имеет большую длину вала — 21 мм по сравнению с предыдущим двигателем NEMA 23, который имеет длину 20,6 мм.

ЗА:

  • Обеспечивает более высокий крутящий момент
  • Доступная цена

3. Шаговый двигатель для ЧПУ с высоким крутящим моментом NEMA 23 4.2A — лучший шаговый двигатель с высоким крутящим моментом

Шаговый двигатель для ЧПУ NEMA 23 4.2A

Кривая зависимости крутящего момента от частоты вращения

Если вы посмотрите на кривую, он обеспечивает скорость вращения 283 унции в минуту даже при 360 об / мин при работе от источника питания 36 В. Вы можете рассчитывать на еще большую мощность с 48 В постоянного тока. Этот шаговый двигатель может работать на умеренных скоростях с использованием драйвера DM542T, в то время как TB6600 может быть слишком слабым для этого двигателя. Если вы действительно хотите довести этот двигатель до предела, то есть до 4,2 А, вы должны получить драйвер, который может обрабатывать не менее 5 А, например DM542S (5,0 А), или DM556 (5,6 А), или Trinamic TMC5160 (входит в xPro V5 ).

Мотор имеет четыре провода с углом шага 1,8 градуса. Длина выводов на проводах составляет 400 мм (40 см). Как и следовало ожидать, этот двигатель довольно тяжелый для NEMA 23. Он весит 4 фунта (1,8 кг). Напряжение питания для этого двигателя должно быть в диапазоне 24-48 В постоянного тока. Этот двигатель имеет максимальную номинальную температуру 80 ° C. Если он нагревается больше, возможно, вам потребуется обновить драйвер шагового двигателя. В целом это то, что вам нужно, если вы хотите абсолютную мускулатуру размером с NEMA 23.

ЗА:

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

МИНУСЫ:

  • Тяжелый и требует драйверов 5А для полной производительности.

4. Интегрированный шаговый двигатель Nema23 с замкнутым контуром и драйвером TOAUTO — лучший шаговый двигатель с замкнутым контуром

TOAUTO NEMA 23 Шаговый двигатель с замкнутым контуром

Комплект шагового двигателя NEMA 23

Шаговый двигатель NEMA 34

Номинальный ток
Удерживающий крутящий момент 1200 унций в
Совместимый драйвер DM860T (и выше)

Краткие технические характеристики

Это шаговый двигатель NEMA 34 с удерживающим моментом 1200 унций и номинальным максимальным током 6 А на фазу. Удерживающий момент на нем в три раза больше, чем у предыдущего двигателя NEMA 23 с номиналом 4,2 А. Этот двигатель подходит для оси Z тяжелых настольных фрезерных станков. Один двигатель такого размера теоретически может поднять вес 75 фунтов, и этот шаговый двигатель является определением сверхмощного шагового двигателя.

Единственная причина, по которой вам понадобится этот двигатель для DIY-фрезерного станка с ЧПУ, — это если вы хотите вести постоянную производственную работу и вам нужно немного дополнительных преимуществ, которые вы получаете от более высокой мощности. Однако за дополнительную мощность приходится платить. Для этого двигателя вам потребуются монтажные кронштейны большего размера.

Кроме того, проверьте, в каком приложении, в котором вы используете двигатель, есть место для двигателя размером 86 x 86 мм и длиной 114 мм. Если вам нужно использовать такой мощный двигатель, убедитесь, что остальная часть вашей механической системы выдержит его. Вам нужно очень жесткое и прочное шасси, способное выдержать высокий крутящий момент, создаваемый этим двигателем. Если вы запустите это на слабой механической системе, которая не может выдержать нагрузку, вся установка может рухнуть и вызвать повреждение. Чтобы запустить этот двигатель, вам понадобится драйвер, способный выдавать больше, чем 6А.

Driver DM860T шагового является хорошим выбором для этого мотора. Он предназначен для работы двигателей NEMA 34 и NEMA 42 с диапазоном тока 2,4–7,2 А и источником питания 18–80 В переменного тока или 36–110 В постоянного тока. Этот двигатель NEMA 34 имеет четыре подводящих провода. Также он весит 7,5 фунтов (3,4 кг). Сверхмощный шаговый двигатель HobbyUnlimited со стальным корпусом рассчитан на длительный срок службы. Двигатель обеспечивает высокий удерживающий момент 1200 унций на дюйм за счет длинного 14-миллиметрового вала со шпоночной канавкой 5 мм. Двигатель имеет фиксированный угол шага 1,8 градуса и точность шага 5 процентов. Двигатель также работает при температуре окружающей среды от 20 ° C до 50 ° C (приблизительно).

ЗА:

  • Высокий крутящий момент
  • Прочный корпус, рассчитанный на длительный срок службы

МИНУСЫ:

  • Тяжелый — 3,6 кг

На что следует обратить внимание, прежде чем выбирать шаговый двигатель для вашего ЧПУ

  • Определение размеров NEMA: Как правило, с увеличением размера NEMA мощность и крутящий момент двигателя возрастают. Тем не менее, проверьте удерживающий момент, так как это возможно для двигателей NEMA 17.
  • Перекуп: шаговые двигатели легко перекупить. Любая избыточная мощность с точки зрения крутящего момента сверх безопасного предела — это бесполезная трата, которая никогда не будет использована. Вам нужно будет больше потратиться на источник питания, шаговый драйвер и контроллер, чтобы получить дополнительный крутящий момент, который вам действительно не нужен.
  • Крутящий момент и частота вращения: сначала оцените крутящий момент и число оборотов в минуту, необходимые для вашего приложения, а затем определите все остальное, что вам нужно, например, шаговые драйверы, источник питания и контроллеры. По мере увеличения числа оборотов шагового двигателя крутящий момент в шаговом двигателе падает почти пропорционально. Это можно компенсировать путем подачи более высокого входного напряжения через шаговый драйвер. Однако это означает, что вам нужно управлять повышенным теплом с помощью какого-то охлаждающего механизма.
  • Индуктивность: двигатели с низкой индуктивностью имеют лучший крутящий момент при более высоких оборотах. Как правило, предпочтительны двигатели с индуктивностью ниже 5 мГн.
  • Нагрев: чем больше ток в двигателе, тем больше тепла. Как правило, каждые 10% снижения тока приводят к снижению нагрева на 20%.
  • Требуемая мощность: предположим, что у вас есть четыре шаговых двигателя, требующих 2,8 А. Это означает, что всего требуется 4 x 2,8 = 13,2 А. Если номинальное напряжение 24 В, то номинальная мощность будет В * I = 24 x 13,2 = 316,8 Вт. Так что здесь в этом случае отлично подойдет блок питания 350 Вт 15 А.

Часто задаваемые вопросы

Шаговый двигатель какого размера следует использовать для фрезерного станка с ЧПУ?

Шаговые двигатели, используемые в фрезерных станках с ЧПУ, обычно представляют собой шаговые двигатели NEMA 17, NEMA 23 или NEMA 34 с удерживающим моментом от 30 унций (NEMA 17) до 1000 унций (NEMA 34).

  • Шаговые двигатели NEMA 17 используются в гравировальных станках с ЧПУ и небольших настольных фрезерных станках с ЧПУ.
  • Шаговые двигатели NEMA 23 используются в большинстве фрезерных станков с ЧПУ для любителей.
  • Шаговые двигатели NEMA 34 используются в промышленных фрезерных станках с ЧПУ и тяжелых настольных ЧПУ.

Номер NEMA относится к размеру корпуса шагового двигателя и не указывает напрямую на механические возможности двигателя.

Что лучше сервопривода или шагового двигателя?

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

Как долго служат шаговые двигатели?

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

В чем недостатки шагового двигателя?

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