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

Обновлено: 07.07.2024

Я его буду называть ниже просто “мотор”, для краткости.


Расскажу кратко, более подробно про него можно прочитать в википедии или тут.
Самый простой вариант:
Есть четыре электромагнитные катушки A, B, A’, B’. Если по ним пропускать ток — они становятся магнитами (катушки А и В активны при “прямом” направлении тока, A’ и B’ — при “обратном”).
Есть колесо с зубчиками (например, зубчик один — стрелка).
Зубчик притягивается к той катушке, по которой пропускают ток. Таким образом, если последовательно включать ток в катушках, то стрелка будет совершать вращательное движение.
Чтобы сделать это движение более плавным, можно добавлять зубчики, можно катушки, а можно и то и другое — принцип остаётся тот же, меняется только тяга и угол поворота за один вкл/выкл.
Обычно используется следующая конфигурация: катушки выстраиваются по четыре вдоль периметра вращения, на каждую четвёрку есть по зубцу, таким образом есть шестерёнка и много катушек вокруг неё.
Рассмотрим самую простую модель с четырьмя катушками и одним зубчиком.
Подумаем, какими способами можно вращать стрелку.
Допустим, начальное её положение — у B’.
1. Самое очевидное:
Включаем А: стрелка останавливается напротив А.
Выключаем А, включаем В: стрелка идёт к В и останавливает напротив.
Выключаем В, включаем A’: стрелка останавливает уже у A’.
Выключаем A’, включаем B’: стрелка идёт к B’ и останавливает напротив.
Выключаем B’, включаем А: стрелка останавливается напротив А. и т.д.

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

2. Чуть-чуть менее очевидное решение:
Включаем А и B’: стрелка останавливается между А и B’, ровно посередине.
Выключаем B’, включаем В: стрелка фиксируется между А и В.
Выключаем А, включаем A’: стрелка между В и A’.
Выключаем В, включаем B’: стрелка останавливается между A’ и B’.
Выключаем A’, включаем А: стрелка между B’ и А. И т.д.
За раз — те же 90 градусов, полный круг тоже за четыре раза.
Тоже резко.
Что плохо:
Все то же, что и в предыдущем методе
Плюс чуть-чуть сложнее в реализации, но не слишком.
Что хорошо:
Одновременно “в силе” сразу две катушки, то есть тяга гораздо лучше, чем у предыдущего метода.
Соответственно, порог скорость + инерция, после которого мы теряем управление, становится выше по сравнению с первым методом.

3. Измельчим шаги:
Пусть у нас для каждого мотора есть не только состояние вкл/выкл, а некая таблица состояний:
a)
0%
50%
100%
Здесь 50% означает, что сила тока в катушке 50% от максимальной.
Можно ещё мельче:
b)
0%
25%
50%
75%
100%
Или ещё мельче.
Тогда последовательность будет такой:
B’ 100%, А 0%
B’ 75%, А 25%
B’ 50%, А 50%
B’ 25%, А 75%
B’ 0%, А 100%
И то же самое для пар А-В, В-A’, A’-B’, B’-В
Что плохо:
Сложнее реализовать.
Что хорошо:
Шаг мельче, следовательно меньше шума и дребезжания, движение более плавное.
Меньше проблем с инерцией и потерей управления.
Можно сделать ещё мельче, и движение будет ещё плавнее.

4. Будем подавать ток аналоговым способом.
Так сказать предельный случай при увеличении частоты разбиения до бесконечности.
B’ плавно меняем от 100% до 0%, А от 0% до 100%, и так для всех пар А-В, В-A’, A’-B’, B’-В.
Чем хорошо:
Очень плавно, хороший контроль, хорошая тяга. И тишинааа.
Чем плохо:
Аналогово.
Запатентовано.

5. Используем следующий вариант:
Включаем B’ и А: стрелка между B’ и А.
Выключаем B’: стрелка у А.
Включаем В: стрелка между А и В.
Выключаем А: стрелка у В.
Включаем A’: стрелка между A’ и В.
Выключаем В: стрелка у A’.
Включаем B’: стрелка между B’ и A’.
Выключаем A’: стрелка у B’
Включаем А: стрелка между B’ и А.
И т.д.
Отличается от “0%,50%,100%” шага 3 только тягой. 5 — сильнее.

Методы 1, 2, 3, 5 — стандартные, у них даже есть обозначения.
Если считать положение “у катушки” за 1, а положение “между катушками” за 2, следующие обозначения станут понятными:
Режим 1 будет называться 1 phase (полношаговый) (стрелка останавливается только на фазе “1”), но он почти не используется — тяга нехороша и вообще.
Режим 2: 2 phase (полношаговый) (только на фазе “2”).
Режим 5: 1-2 phase (полушаговый) (останавливаемся и на “1” и на “2”).
Режим 3: В зависимости от частоты разбиения:
4 (Цикл от положения “перед катушкой” до “перед следующей катушкой” равен четырём шагам): 2W1-2 phase (2*2 = 4)
8: 4W1-2 phase (4*2 = 8)
По-русски микрошаговый.

Режим 3-а никак не называется, потому что не используется, а метод 4 — запатентован.

image

Таким образом, зависимость силы тока от времени на катушках А и В (A’ и B’ соответствуют отрицательным значениям силы тока) должна быть примерно такой (для случая 1-2 phase).

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

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

Максимальная сила тока (от максимальной по спецификации).

Управляющие пины: таймер, направление вращения(по часовой стрелке, против часовой стрелки), пин сброса и пин enabled.

CW — clock-wise
CCW — counter clock-wise
Initial mode — заранее определённое состояние катушек, соответствующее “начальному”. Может быть разным для разных режимов. Например, 100% на А и 0% на В для 1-2 phase, 100% на А и -100% на В для 2 phase. Подержав мотор в этом режиме некоторое время, мы гарантируем, что мотор повёрнут определённым заранее известным образом. Можно начинать отсчёт с этого состояния (нам же нужно в каждый момент времени знать, на какой позиции находится мотор).

image

Наконец, мы имеем правильно выставленный режим (например, 1-2 phase) и работающий таймер. Тогда выход драйвера будет выглядеть следующим образом:

Для примера использовался драйвер от Тошиба TB6560AHQ/AFG, хотя подробности не сильно важны, так как цель статьи — рассказать именно общий принцип, не вдаваясь в детали.

купить шаговые двигатели

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

КАК ПОДКЛЮЧИТЬ ШАГОВЫЙ ДВИГАТЕЛЬ С 4 ВЫВОДАМИ

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

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

wiring.jpg

КАК ПОДКЛЮЧИТЬ УНИПОЛЯРНЫЙ ШАГОВЫЙ ДВИГАТЕЛЬ С 6 ВЫВОДАМИ


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


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

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

Схема подключения шагового электродвигателя с 5-ю выводами очень похожа на схему подключения с 6-ю контактами. Главное ее отличие состоит в том, что центральные выводы замкнуты между собой внутри, соединяясь в один провод. Это обеспечивает работу электродвигателя только по однополярной схеме.


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

В этой статье мы поговорим о шаговых двигателях в проектах Ардуино на примере очень популярной модели 28BYJ-48. Так же как и сервоприводы, шаговые моторы являются крайне важным элементом автоматизированных систем и робототехники. Их можно найти во многих устройствах рядом: от CD-привода до 3D-принтера или робота-манипулятора. В этой статье вы найдете описание схемы работы шаговых двигателей, пример подключения к Arduino с помощью драйверов на базе ULN2003 и примеры скетчей с использованием стандартной библиотеки Stepper.

Схема шагового двигателя

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

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

Основные виды шаговых моторов:

  • Двигатели с переменными магнитами (применяются довольно редко);
  • Двигатели с постоянными магнитами;
  • Гибридные двигатели (более сложные в изготовлении, стоят дороже, но являются самым распространенным видом шаговых двигателей).

Где купить шаговый двигатель

Самые простые двигатели Варианты на сайте AliExpress:

Драйвер для управления шаговым двигателем

Драйвер – это устройство, которое связывает контроллер и шаговый двигатель. Для управления биполярным шаговым двигателем чаще всего используется драйверы L298N и ULN2003.

Работа двигателя в биполярном режиме имеет несколько преимуществ:

  • Увеличение крутящего момента на 40% по сравнению с униполярными двигателями;
  • Возможность применения двигателей с любой конфигурацией фазной обмотки.

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

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

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

Драйвер двигателя L298N

Драйвер шагового двигателя ULN2003

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

Другие драйвера

  • Они позволяют стабилизировать фазные токи;
  • Возможность установки микрошагового режима;
  • Обеспечение защиты ключа от замыкания;
  • Защита от перегрева;
  • Оптоизоляция сигнала управления, высокая защищенность от помех.

В STEP/DIR драйверах используется 3 сигнала:

  • STEP – импульс, который инициирует поворот на шаг/часть шага в зависимости от режима. От частоты следования импульсов будет определяться скорость вращения двигателя.
  • DIR – сигнал, который задает направление вращения. Обычно при подаче высокого сигнала производится вращение по часовой стрелке. Этот тип сигнала формируется перед импульсом STEP.
  • ENABLE – разрешение/запрет работы драйвера. С помощью этого сигнала можно остановить работу двигателя в режиме без тока удержания.

Одним из самых недорогих STEP/DIR драйверов является модуль TB6560-V2. Этот драйвер обеспечивает все необходимые функции и режимы.

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

Подключение будет рассмотрено на примере униполярного двигателя 28BYj-48 и драйверов L298 и ULN2003. В качестве платы будет использоваться Arduino Uno.

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

Еще один вариант схемы с использованием L298:

Подключение шагового двигателя к Ардуино на базе L298

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

Принципиальная схема подключения.

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

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

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

Обзор основных моделей шаговых двигателей для ардуино

Nema 17 – биполярный шаговый двигатель, который чаще всего используется в 3D принтерах и ЧПУ станках. Серия 170хHSхххА мотора является универсальной.

Nema-17

Основные характеристики двигателя:

28BYJ-48 – униполярный шаговый двигатель. Используется в небольших проектах роботов, сервоприводных устройствах, радиоуправляемых приборах.

  • Номинальное питание – 5В;
  • 4-х фазный двигатель, 5 проводов;
  • Число шагов: 64;
  • Угол шага 5,625°;
  • Скорость вращения: 15 оборотов в секунду
  • Крутящий момент 450 г/сантиметр;
  • Сопротивление постоянного тока 50Ω ± 7% (25 ℃).

Описание библиотеки для работы с шаговым двигателем

В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:

Пример скетча для управления

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

Заключение

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

В этой статье мы поговорим о шаговых двигателях в проектах Ардуино на примере очень популярной модели 28BYJ-48. Так же как и сервоприводы, шаговые моторы являются крайне важным элементом автоматизированных систем и робототехники. Их можно найти во многих устройствах рядом: от CD-привода до 3D-принтера или робота-манипулятора. В этой статье вы найдете описание схемы работы шаговых двигателей, пример подключения к Arduino с помощью драйверов на базе ULN2003 и примеры скетчей с использованием стандартной библиотеки Stepper.

Схема шагового двигателя

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

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

Основные виды шаговых моторов:

  • Двигатели с переменными магнитами (применяются довольно редко);
  • Двигатели с постоянными магнитами;
  • Гибридные двигатели (более сложные в изготовлении, стоят дороже, но являются самым распространенным видом шаговых двигателей).

Где купить шаговый двигатель

Самые простые двигатели Варианты на сайте AliExpress:

Драйвер для управления шаговым двигателем

Драйвер – это устройство, которое связывает контроллер и шаговый двигатель. Для управления биполярным шаговым двигателем чаще всего используется драйверы L298N и ULN2003.

Работа двигателя в биполярном режиме имеет несколько преимуществ:

  • Увеличение крутящего момента на 40% по сравнению с униполярными двигателями;
  • Возможность применения двигателей с любой конфигурацией фазной обмотки.

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

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

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

Драйвер двигателя L298N

Драйвер шагового двигателя ULN2003

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

Другие драйвера

  • Они позволяют стабилизировать фазные токи;
  • Возможность установки микрошагового режима;
  • Обеспечение защиты ключа от замыкания;
  • Защита от перегрева;
  • Оптоизоляция сигнала управления, высокая защищенность от помех.

В STEP/DIR драйверах используется 3 сигнала:

  • STEP – импульс, который инициирует поворот на шаг/часть шага в зависимости от режима. От частоты следования импульсов будет определяться скорость вращения двигателя.
  • DIR – сигнал, который задает направление вращения. Обычно при подаче высокого сигнала производится вращение по часовой стрелке. Этот тип сигнала формируется перед импульсом STEP.
  • ENABLE – разрешение/запрет работы драйвера. С помощью этого сигнала можно остановить работу двигателя в режиме без тока удержания.

Одним из самых недорогих STEP/DIR драйверов является модуль TB6560-V2. Этот драйвер обеспечивает все необходимые функции и режимы.

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

Подключение будет рассмотрено на примере униполярного двигателя 28BYj-48 и драйверов L298 и ULN2003. В качестве платы будет использоваться Arduino Uno.

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

Еще один вариант схемы с использованием L298:

Подключение шагового двигателя к Ардуино на базе L298

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

Принципиальная схема подключения.

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

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

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

Обзор основных моделей шаговых двигателей для ардуино

Nema 17 – биполярный шаговый двигатель, который чаще всего используется в 3D принтерах и ЧПУ станках. Серия 170хHSхххА мотора является универсальной.

Nema-17

Основные характеристики двигателя:

28BYJ-48 – униполярный шаговый двигатель. Используется в небольших проектах роботов, сервоприводных устройствах, радиоуправляемых приборах.

  • Номинальное питание – 5В;
  • 4-х фазный двигатель, 5 проводов;
  • Число шагов: 64;
  • Угол шага 5,625°;
  • Скорость вращения: 15 оборотов в секунду
  • Крутящий момент 450 г/сантиметр;
  • Сопротивление постоянного тока 50Ω ± 7% (25 ℃).

Описание библиотеки для работы с шаговым двигателем

В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:

Пример скетча для управления

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

Заключение

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

Читайте также: