Как подключить биполярный шаговый двигатель

Блог технической поддержки моих разработок

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

Использование шаговых двигателей в биполярном режиме дает:

  • Повышение крутящего момента примерно на 40% по сравнению с униполярным двигателем.
  • Позволяет применять двигатели с любой конфигурацией фазных обмоток.

Недостаток биполярного режима – более сложный драйвер.

Драйвер биполярного шагового двигателя.

У биполярного шагового двигателя две обмотки, по одной для каждой фазы.


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

  • подключать к источнику питания в прямой полярности;
  • отключать;
  • подключать к источнику в противоположной полярности.

Такую коммутацию может обеспечить мостовая схема с четырьмя ключами.


При замыкании ключей 1 и 2 на обмотку подается напряжение питания в прямом направлении. Замыкание ключей 3 и 4 подключает источник питания в обратной полярности.

Драйвер биполярного шагового двигателя намного сложнее, чем драйвер униполярного привода.

  • Требуется 4 ключа на обмотку, т.е. 8 ключей на двигатель.
  • Необходимы сложные схемы управления верхними ключами (ключи 1, 4) от логических сигналов микроконтроллера, “привязанных” к земле.
  • Существуют проблема сквозных токов. Они возникают при одновременном включении транзисторов из одного плеча (ключей 1,3 или 2,4). Это может привести к замыканию источника питания и выгоранию ключей.
  • Сквозные токи могут появляться из-за неодинакового быстродействия верхних и нижних ключей. Например, верхний ключ уже открылся, а нижний не успел закрыться.

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

Драйвер биполярного шагового двигателя L298N.

Микросхема L298, наверное, самый распространенный биполярный драйвер.


Это полный мостовой драйвер, позволяющий управлять биполярными нагрузками с током до 2 А и максимальным напряжением 46 В. Подробное описание микросхемы L298N можно посмотреть по этой ссылке.

На базе микросхемы L298N разработан модуль L298N.


Конструктивно он выполнен на одной плате размерами 43 x 43 мм. На плате установлены:

  • микросхема L298N с радиатором охлаждения;
  • клеммные колодки для подключения питания и нагрузки;
  • разъем для подключения управляющих сигналов;
  • стабилизатор напряжения 5 В;
  • защитные диоды.

Принципиальная схема модуля L298N.

Микросхема L298N включена по стандартной схеме.

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

Модуль содержит стабилизатор напряжения + 5 В для питания логической части микросхемы. Напряжение +5 В формируется из напряжения питания двигателя. На клеммной колодке оно обозначено +12 V, но может меняться в широких пределах 8 … 46 В.

Управления полумостами происходит от входных сигналов IN1, …, IN4. Уровни сигналов 0 / 5 В. При низком уровне выход подключается к земле, при высоком – к источнику питания двигателя (+12 V).

Предельно-допустимый ток фазы 2 А. Защиты по току в модуле нет. Но реализация токовой защиты значительно усложняет схему, а короткое замыкание обмоток двигателя событие маловероятное. Я с таким не встречался. К тому же механическое блокирование вала шагового привода не вызывает перегрузки по току.

Это все очень коротко. Подробно можно посмотреть в этой статье.

По моей партнерской ссылке цена модуля L298N составляет всего 200 руб. (на ноябрь 2016 г.). В то время как одна микросхема L298N в Ростове стоит 250 руб. Гораздо дешевле купить модуль, чем собирать драйвер на отдельных компонентах, не говоря о времени и разработке печатной платы. Перейти в магазин >>

Подключение биполярного двигателя к плате Ардуино.

Я подключил к плате привод FL42STH47-1684. Это биполярный шаговый двигатель с 4 выводами, током фазы 1,68 А и сопротивлением обмоток 1, 65 Ом.

Источник питания у меня напряжением 12 В. Если двигатель подключить непосредственно через ключи, то ток в обмотках будет 12 В / 1,65 А = 7 А. Двигатель просто сгорит. Поэтому я последовательно с каждой обмоткой включил ограничительные резисторы. Схема выглядит так.

Я использовал резисторы сопротивлением 10 Ом. Ток фазы можно рассчитать по формуле:

Iфазы = ( Uпитания – Uключей ) / ( Rограничительный + Rобмотки)

  • Iфазы – ток фазы.
  • Uпитания – напряжение источника питания, у меня 12 В.
  • Uключей – падение напряжения на открытых ключах драйвера. Для L298 это сумма падений на верхнем (Source Saturation Voltage) и нижнем ключах (Sink Saturation Voltage). Из справочных данных определяем, что на ключах драйвера L298N падает 2-2,5 В.
  • Rограничительный – сопротивление ограничительных резисторов. В моей схеме 10 Ом.
  • Rобмотки – сопротивление обмоток двигателя. У двигателя FL42STH47-1684 сопротивление 1,65 Ом.
Читайте также:  Что экономичнее светодиодные или энергосберегающие лампы

В результате для моей схемы ток фазы будет:

Iфазы = (12 – 2) / (10 + 1,65) = 0,86 А.

На ограничительных резисторах может выделяться значительная мощность. В моей схеме 0,86 * 0,86 * 10 = 7,4 Вт. Я использовал резисторы мощностью 10 Вт.

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

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

Двигатель с 4 выводами.


Самая распространенная схема.

Двигатель с 6 выводами.


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

Двигатель с 8 выводами, последовательное соединение обмоток.


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

Двигатель с 8 выводами, параллельное соединение обмоток.


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

Проверка работы схемы.

Мой вариант схемы в собранном виде выглядит так.

В этом уроке программы писать не будем. Все программы из уроков 28, 29, 31, 32 должны работать без изменений. Только обратите внимание на последовательность подключения управляющих сигналов модуля L298N к выводам платы Ардуино. Выводы фаз A,B,C,D для униполярного двигателя соответствуют управляющим выводам IN1, IN3, IN2, IN4 модуля L298N.

Сначала я загрузил в плату Ардуино программу драйвера с управлением от компьютера по протоколу AT команд и проверил работу с программой верхнего уровня StepMotor. Резидентную программу (для платы Ардуино) и программу верхнего уровня (для компьютера) можно взять из урока 31.

Все работает. Скорость вращения моего привода, включенного по такой схеме, достигает 150 оборотов в минуту. Униполярный двигатель FL57STH76-1006 в предыдущих уроках вращался со скоростью не более 60 оборотов в минуту. Увеличение скорости вращения двигателя в 2,5 раза связано, прежде всего, с большей скоростью нарастания токов в обмотках. Происходит это из-за меньшей индуктивности обмоток и применения схемы с ограничительными резисторами. Для убедительности я рассчитаю скорость нарастания тока для обоих приводов.

Для двигателя из предыдущих уроков (FL57STH76-1006):

  • индуктивность обмотки 14 мГн;
  • при питании 12В ток в обмотке достигает значения 1 А за время
    T = I * L / U = 1 А * 14 мГн / 12 В = 1,2 мс.

Для двигателя, который я использовал в этом уроке (FL42STH47-1684):

  • индуктивность обмотки 3,2 мГн;
  • при питании 12В ток в обмотке достигает значения 1 А за время
    T = I * L / U = 1 А * 3,2 мГн / 12 В = 0,3 мс.

Отсюда и увеличение скорости вращения. Конечно, повлияло еще:

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

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

Дальше я проверил работу следящего электропривода с новым двигателем. Резидентная программа платы Ардуино осталась прежней. А для управления от компьютера я использовал программу Tracker из урока 32.

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

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

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

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

Шаговые двигатели интересны тем, что позволяют повернуть вал на определённый угол. Соответственно, с их помощью можно повернуть вал и на определённое число оборотов, потому что N оборотов — это тоже определённый угол, равный 360*N, и, в том числе, на нецелое число оборотов, например на 0.75 оборота, 2.5 оборота, на 3.7 оборота и т.д. Этими возможностями шаговых двигателей определяется и область их применения. В основном они используются для позиционирования различных устройств: считывающих головок в дисководах, печатающих головок в принтерах и плоттерах и т.д.

Читайте также:  Миллиамперметр может измерить максимальный ток 10ма

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

Итак, что нам понадобится для экспериментов. Во-первых, шаговый двигатель. Я брал 5-ти вольтовый китайский биполярный шаговик с загадочным названием, выдранный из старого 3,5" дисковода, аналог M20SP-GW15. Во-вторых, поскольку обмотки двигателя потребляют значительный ток (в данном случае до 300 мА), то вполне понятно, что подключить шаговик к контроллеру напрямую не удастся, нужен драйвер.

В качестве драйвера для биполярных шаговых двигателей обычно используют схему так называемого H-моста или специальную микросхему (в которой всё равно встроен H-мост). Можно конечно ваять самому, но я взял готовую микруху (LB1838) из того же старого дисковода. Собственно, кроме всего вышеописанного, для наших экспериментов также понадобятся: PIC-контроллер (был взят PIC12F629, как самый дешёвый) и пара кнопок.

Перед тем, как перейти непосредственно к схеме, давайте немного разберёмся с теорией.

Биполярный шаговый двигатель имеет две обмотки и, соответственно, подключается по четырём проводам. Найти концы обмоток можно простой прозвонкой — концы проводов, относящиеся к одной обмотке, будут между собой звониться, а концы, относящиеся к разным обмоткам, — нет. Концы первой обмотки обозначим буквами "a", "b", а концы второй обмотки буквами "c", "d".

На рассматриваемом экземпляре есть цифровая маркировка контактов возле мотора и цветовая маркировка проводов (бог его знает, может это тоже какой-то стандарт): 1 — красный, 2 — голубой — первая обмотка; 3 — жёлтый, 4 — белый — вторая обмотка.

Для того, чтобы биполярный шаговый двигатель вращался, необходимо запитывать обмотки в порядке, указанном в таблице. Если направление обхода таблицы выбрать сверху вниз по кругу, то двигатель будет вращаться вперёд, если снизу вверх по кругу — двигатель будет вращаться назад:

За один полный цикл двигатель делает четыре шага.

Для правильной работы, должна строго соблюдаться указанная в таблице последовательность коммутаций. То есть, например, после второй комбинации (когда мы подали + на вывод "c" и минус на вывод "d") мы можем подать либо третью комбинацию (отключить вторую обмотку, а на первой подать — на "a" и + на "b"), тогда двигатель повернётся на один шаг вперёд, либо первую комбинацию (двигатель повернётся на один шаг назад).

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

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

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

На этом мы закончим с двигателем и перейдём к драйверу LB1838.

У этой микрухи есть четыре управляющие ноги (IN1, IN2, EN1, EN2), на которые мы как раз и будем подавать сигналы с контроллера, и четыре выходных ноги (Out1, Out2, Out3, Out4), к которым подключаются обмотки двигателя. Обмотки подключаются следующим образом: провод "a" подключается к Out1, провод "b" — к Out2, провод "c" — к Out3, провод "d" — к Out4.

Ниже представлена таблица истинности для микросхемы драйвера (состояние выходов в зависимости от состояния входов):

IN1 EN1 Out1 (a) Out2(b) IN2 EN2 Out3(c) Out4(d)
Low High + Low High +
High High + High High +
X Low откл откл X Low откл откл
Читайте также:  Антимагнитная пленка на счетчике воды

Теперь давайте нарисуем на диаграмме, какую форму должны иметь сигналы IN1, EN1, IN2, EN2 для одного полного цикла вращения (4 шага), т.е. чтобы на выходах появились последовательно все 4 комбинации подключения обмоток:

Если присмотреться к этой диаграмме (слева), то становится очевидно, что сигналы IN1 и IN2 можно сделать абсолютно одинаковыми, то есть на обе этих ноги можно подавать один и тот же сигнал. В этом случае наша диаграмма будет выглядеть так:

Итак, на последней диаграмме нарисовано, какие комбинации уровней сигналов должны быть на управляющих входах драйвера (EN1, EN2, IN1, IN2) для того, чтобы получить соответствующие комбинации подключения обмоток двигателя, а также стрелками указан порядок смены этих комбинаций для обеспечения вращения в нужную сторону.

Вот в общем-то и вся теория. Необходимые комбинации уровней на управляющих входах формируются контроллером (мы будем использовать PIC12F629).

R1..R2 = 1 кОм. Когда соответствующая кнопка не нажата — резистор подтягивает напряжение на входе контроллера к +5 В (высокий уровень). При нажатии на кнопку напряжение на входе подтягивается к земле (низкий уровень).

С1, С2 = 0,1 мкФ — керамические конденсаторы.

С3 = 470 мкФ х 16В — электролитический конденсатор.

Программа управления реализует следующий алгоритм: при нажатии кнопки КН1 двигатель поворачивается на один шаг в одну сторону, а при нажатии кнопки КН2 — на один шаг в другую сторону.

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

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

Подключение шагового двигателя

В общем и целом процесс подключения шагового двигателя не является затруднительным. В первую очередь нужно определить, какой тип ШД используется. Для этого следует обратить внимание на то, сколькими проводами снабжён электропривод. В зависимости от типа, шаговый двигатель может иметь 4, 5, 6 или 8 проводов.

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

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

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

Стандартной схемой, использующейся для подключения 4-выводного биполярного ШД к драйверу или контроллеру является подключение первой обмотки к разъёмам А и А*, а второй – непосредственно к контроллеру через разъёмы B и B*. Разъёмы контроллера Dir и Step при таком методе подключения не используются; программное управление осуществляется при помощи генератора импульсов.


ВНИМАНИЕ – всегда проверяйте цветовую схему выводов, шаговый двигатель от конкретного производителя отличается от абсолютно аналогичного ШД другого производителя, а значит, может иметь другую цветовую схему выводов!

По вопросу подключения шагового двигателя, вы всегда можете обратиться к нашим специалистам по телефону по России (звонок бесплатный) 8 800 5555 068 либо по электронной почте.

Ссылка на основную публикацию