Сколько шаговых двигателей можно подключить к ардуино

Содержание

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

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

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

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

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

Скорость шагового двигателя зависит не от величины напряжения, а от скорости подключения питания к отдельным обмоткам. Чтобы добиться полного вращения ротора с 200-шаговым двигателем, надо изменить положение каждого переключателя 100 раз, то есть выполнить до 200 последовательностей для двух переключателей. Это уже говорит о том, что шаговые двигатели не могут работать на высокой скорости. Из этого следует, что шаговые двигатели можно назвать «цифровыми двигателями», поскольку для вращения ротора необходимо переключать переключатели в соответствующей последовательности.

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

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

Упрощенная схема управления униполярным шаговым двигателем

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

Вращение униполярного шагового двигателя в последовательных тактах цикла управления волной

Управляющая последовательность A +, B +, A-, B- повторяется каждые четыре импульса тактового генератора. Этот тип управления называется однофазным или волновым. Это полный шаг управления, потому что двигатель выполняет один полный ход (шаг) с одним импульсом генератора.

Самый простой способ изменить направление — поменять местами одну пару проводов катушки (поменять местами, например, B + с B — и B — с B +), затем дадим последовательность A +, B -, A -, B + импульсы, он вращает двигатель в противоположном направлении. Так управление направлением реализовано в некоторых контроллерах шаговых двигателей. Самый простой способ изменить последовательность импульсов — использовать, например, реле.

Форма волны (однофазная) импульсная последовательность драйвера

Упрощенная схема однофазного (волнового) регулятора с изменением направления вращения

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

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

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

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

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

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

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

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

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

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

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

Существует другой вид драйверов – STEP/DIR драйверы. Это аппаратные модули, которые работают по протоколу STEP/DIR для связи с микроконтроллером. STEP/DIR драйверы расширяют возможности:

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

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

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

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

Обзор драйвера L298N

Драйвер L298N используется радиолюбителями для многофункционального управления двигателями постоянного тока. Схема модуля, состоящая из двух H-мостов, позволяет подключать к нему один биполярный шаговый двигатель или одновременно два щёточных двигателя постоянного тока. При этом есть возможность изменять скорость и направление вращения моторов. Управление осуществляется путём подачи соответствующих сигналов на командные входы, выполненные в виде штыревых контактов. На рисунке №1 показан внешний вид модуля с кратким описанием всех его составляющих.

Рисунок №1 – внешний вид модуля L298N

  • OUT1 и OUT2 – разъёмы для подключения первого щёточного двигателя или первой обмотки шагового двигателя;
  • OUT3 и OUT4 – разъёмы для подключения второго щёточного двигателя или второй обмотки шагового двигателя;
  • VSS – вход для питания двигателей (максимальный уровень +35V);
  • GND – общий провод (не забываем соединить с аналогичным входом Arduino. );
  • Vs – вход для питания логики +5V. Через него непосредственно запитывается сама микросхема L298N. Есть ещё второй способ питания, при котором 5V для L298N берётся от встроенного в модуль стабилизатора напряжения. В таком случае на разъём подаётся только питание для двигателей (Vss), контакт Vs остаётся не подключенным, а на плате устанавливается перемычка питания от стабилизатора, который ограничит питающее моторы напряжение до приемлемых 5V.
  • IN1, IN2 – контакты управления первым щёточным двигателем или первой обмоткой шагового двигателя.
  • IN3, IN4 – контакты управления вторым щёточным двигателем или второй обмоткой шагового двигателя.
  • ENA, ENB – контакты для активации/деактивации первого и второго двигателей или соответствующих обмоток ШД. Подача логической единицы на эти контакты разрешает вращение двигателей, а логический ноль – запрещает. Для изменения скорости вращения щёточных моторов на эти контакты подаётся ШИМ-сигнал. Для работы с шаговым двигателям, как правило, на эти контакты ставят перемычки, обеспечивающие постоянную подтяжку к +5V.

На рисунке №2 показана электрическая схема модуля L298N.

Рисунок №2 – электрическая схема модуля L298N

Как видно из вышеприведенной схемы, основным элементом модуля является микросхема L298N, в состав которой входят два полноценных H-моста. Каждый H-мост выполнен в виде сборки из четырёх транзисторных ключей с включённой в центре нагрузкой в виде обмотки двигателя. Такой подход позволяет менять полярность в обмотке и как следствие направление вращения двигателя путём чередования пар открытых и закрытых ключей. Более наглядно этот процесс демонстрирует рисунок №3.

Рисунок №3 – транзисторные мосты Н-типа

На рисунке изображены два транзисторных моста Н-типа. В первом случае на вход IN1 подаётся логическая единица, а на вход IN2 – логический ноль. Так как транзисторы в схеме моста имеют разный тип проводимости, то при таком входном сигнале транзисторы Т1 и Т4 останутся в закрытом состоянии, в то время, как через транзисторы Т2 и Т3 потечёт ток. Ввиду того, что единственный путь протекания тока лежит через обмотку двигателя, то последний окажется подключен правой клеммой к плюсу питания, а левой к минусу. Всё это приведёт к вращению мотора в определённом направлении. Абсолютно противоположная картина показана на нижнем рисунке. Здесь IN3 установлен в логический ноль, а IN4 в логическую единицу. Теперь ток течёт в обратном направлении (левая клемма – плюс, правая – минус), заставляя второй двигатель крутиться в противоположную сторону.

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

Введение.

Шаговый двигатель (далее ШД) — особая разновидность двигателей, который позволяет точно управлять углом поворота ротора. ШД относится к синхронным безщёточным двигателям, имеет несколько обмоток на статоре (2, 4 или 8), ротор же выполнен из магнито-мягких (способных намагничиваться) или магнито-твердых материалов (постоянных магнитов) и их сочетаний.

На данный момент распространены биполярные ШД, обладающие двумя обмотками на статоре. Например, ШД типоразмера NEMA17, одни из самых распространенных биполярных ШД.

Ток в обмотках статора течет то в одну, то в другую сторону попеременно. Поэтому для управления биполярным ШД необходимы два Н-моста, по одному мосту на обмотку.

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

Также можно использовать, например, микросхему L293 и аналогичные ей микросхемы (сдвоенный Н-мост), но и в этом случае для управление одним биполярным ШД потребуется 4 вывода микроконтроллера.

На фото пример готовой платы с микросхемой L298 для подключения по вышеприведенной схеме.

Следующая схема состоит из сдвоенного Н-моста L298 и специального драйвера L297, который преобразует протокол step/dir в понятный микросхеме L298 порядок переключения обмоток. Кроме того, L297 способна реализовать полушаговый режим работы ШД. То есть логика управления упростилась, но драйвер “оброс” ещё одной микросхемой.

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

Драйверы для управления биполярными ШД работают по протоколу step/dir, содержат в себе защитные диоды, позволяют устанавливать силу тока, протекающую через обмотки ШД и позволяют устанавливать дробный шаг ШД (?, ?, ? и так далее), что в свою очередь позволяет контролировать угол поворота ротора с большей точностью.

Supplies

Hardware components

DRV8825 stepper motor driver × 1 Amazon
NEMA 17 stepper motor × 1 Amazon
Arduino Uno Rev3 × 1 Amazon
Power supply (8.2-45 V) × 1 Amazon
Breadboard × 1 Amazon
Capacitor (100 µF) × 1 Amazon
Jumper wires ~ 10 Amazon
USB cable type A/B × 1 Amazon

I like to use this driver in combination with a CNC-shield or expansion board. Such a shield already includes capacitors and offers an easy way to select the microstepping resolution. It makes wiring much easier and is a great option if you need a more permanent solution than a breadboard.

Software

Arduino IDE

Makerguides.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to products on Amazon.com.

Настройка тока DRV8825.

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

Для настройки необходимо рассчитать значение напряжения Vref.

Vref = Current Limit / 2

где,

Current Limit — номинальный ток двигателя.

Для примера рассмотрим двигатель NEMA 17 17HS4401 с током 1,7 А.

Vref = 1,7 / 2 = 0,85 В.

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

Подключение драйвера шагового двигателя DRV8825 к Arduino UNO.

Подключим двигатель DRV8825 к Arduino UNO по схеме.

Для этого подключаем GND LOGIC к GND на Arduino. Контакты DIR и STEP подключим к цифровым контактам 2 и 3 на Arduino. Подключение шагового двигателя к контактам B2, B1, A2 и A1.

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

Затем необходимо подключить контакт RST к соседнему контакту SLP к 5В на Arduino, чтобы включить драйвер. А контакты выбора микрошага необходимо оставить не подключенными, чтобы работал режим полный микрошаг. Теперь осталось подключить питание двигателя к контактам VMOT и GND MOT, главное не забудьте подключить электролитический конденсатор на 100 мкФ к контактам питания двигателя. В противном случае, при скачке напряжения модуль может выйти из строя.

Скетч вращения шагового двигателя NEMA 17, драйвер DRV8825.

Как уже было упомянуто выше, драйвер DRV8825 заменим драйвером A4988, поэтому и код вращения двигателем можно взять из предыдущей статьи: Драйвер шагового двигателя A4988. Но для увеличения кругозора сегодня будем использовать код вращения двигателя nema 17 без использования библиотеки.

const int dirPin = 2;
const int stepPin = 3;
const int stepsPerRevolution = 200;

void setup()
{
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}
void loop()
{
  digitalWrite(dirPin, HIGH); // Установка вращения по часовой стрелки
  
  for(int x = 0; x > stepsPerRevolution; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(2000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(2000);
  }
  delay(1000);
  
  digitalWrite(dirPin, LOW); // Установка вращения против часовой стрелки

  for(int x = 0; x < stepsPerRevolution; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
  }
  delay(1000);
}

Описание скетча:

Для работы данного скетча, не требуется никаких библиотек. Программа начинается с определения выводов Arduino, к которым подключены выводы STEP и DIR. Так же указываем stepsPerRevolution количество шагов на оборот.

В функции void setup() указываем управляющие контакты как выход.

В основной функции void loop(), вращаем двигатель по часовой стрелке, затем против, с разной скоростью.

Подробнее о подключении шаговых двигателей к Ardiono смотрите на сайте Ардуино технологии.

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

Распиновку и как подключать модуль драйвера DRV8825 будем рассматривать в следующей статье.

Использование драйвера DRV8825 с CNC shield v3.

Драйвер DRV8825 можно установить на CNC shield v3. CNC shield используются для управления ЧПУ станками и облегчают сборку электроники.

Данный набор позволяет без пайки собрать электронику для двух осевых, трех осевых, четырех осевых ЧПУ станков, а также для самостоятельной сборки 3D принтеров. При реализации ЧПУ станков данные шилды используются достаточно часто благодаря своей низкой цене и простоте сборки. Более подробно CNC shield v3 будем рассматривать в следующих статьях.

Вывод можно сделать следующий. Драйвер DRV8825 обладает рядом преимуществ перед драйвером A4988. А также, при использовании драйвера шагового двигателя DRV8825, меньше шума от шаговых двигателей. Это актуально при сборке лазерного гравера, 3D принтера. Когда при работе главный источник шума — это механика и гул шаговых двигателей.

Понравился статья Драйвер шагового двигателя DRV8825? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу , в группу на .

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Скачивая материал, я соглашаюсь с
Правилами скачивания и использования материалов.

drv8825-datasheet.pdf 743 Kb 359 Скачать

Wiring – Connecting L298N to stepper motor and Arduino

The wiring diagram/schematic below shows you how to connect a stepper motor, power supply, and Arduino to the L298N breakout board.


L298N motor driver with stepper motor and Arduino wiring diagram.

The connections are also given in the table below:

L298N Connections

L298N Connection
+12V 5 – 35 V power supply
GND Power supply and Arduino ground
12 V jumper Remove if motor power > 12 V!
5V+ (optional) 5 V Arduino if 12 V jumper is removed
IN1 Pin 8 Arduino
IN2 Pin 9 Arduino
IN3 Pin 10 Arduino
IN4 Pin 11 Arduino
ENA and ENB jumper Leave installed
OUT1 + OUT2 Stepper motor coil A
OUT3 + OUT4 Stepper motor coil B

Important note: remove the +12V jumper if you are using a power supply higher than 12 V.

When the +12V jumper is attached, the on-board voltage regulator is enabled and it will create the 5 V logic voltage. When you remove the jumper, you need to provide the board with 5 V from the Arduino.

You also need to keep both the ENA and ENB jumpers in place so the the motor is always enabled.

How to determine the stepper motor wiring?

If you can’t find the datasheet of your stepper motor, it can be difficult to figure out how to wire your motor correctly. I use the following trick to determine how to connect 4 wire bipolar stepper motors:

The only thing you need to identify is the two pairs of wires which are connected to each of the two coils. One coil gets connected to OUT1 and OUT2 and the other to OUT3 and OUT4, the polarity doesn’t matter.

To find the two wires from one coil, do the following with the motor disconnected:

  1. Try to spin the shaft of the stepper motor by hand and notice how hard it is to turn.
  2. Now pick a random pair of wires from the motor and touch the bare ends together.
  3. Next, try to spin the shaft of the stepper motor again.
  4. If you feel a lot of resistance, you have found a pair of wires from the same coil. If you can spin the shaft freely, try another pair of wires.

Now connect the two coils to the pins shown in the wiring diagram above.

(If it is still unclear, please leave a comment below, more info can also be found on the RepRap.org wiki)

Общие принципы работы шаговых двигателей

Внешний вид шагового двигателя 28-BYJ48 (купить на AliExpress) представлен на следующем рисунке:

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

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

Как можно видеть из рисунка, двигатель имеет однополярную катушку с 5 выводами. Но фактически это 4 катушки, на которые нужно подавать питание в определенной последовательности. На красные провода необходимо подать +5V, на остальные 4 провода необходимо подать землю чтобы запустить в работу соответствующую катушку. Мы будем использовать плату Arduino чтобы подавать питание на эти катушки в определенной последовательности и тем самым заставлять двигатель вращаться. Более подробно ознакомиться с принципами работы шаговых двигателей можно в статье про подключение шагового двигателя к микроконтроллеру AVR.

Так почему же этот двигатель называется 28-BYJ48? Честно говоря, мы не знаем точного ответа на этот вопрос. Некоторые наиболее важные технические характеристики этого шагового двигателя приведены на следующем рисунке.

На первый взгляд от такого количества характеристик может закружиться голова, но давайте попробуем выделить из них самые важные, те, которые нам понадобятся для дальнейшей работы. Во-первых, мы знаем, что это шаговый двигатель 5V, поэтому необходимо подавать на красный провод 5V. Также мы знаем что это четырехфазный шаговый двигатель поскольку в нем четыре катушки. Передаточное число этого двигателя — 1: 64. Это означает, что вал, который вы видите снаружи, сделает одно полное вращение в том случае, когда двигатель внутри сделает 64 оборота. Это происходит благодаря шестерням, которые включены между двигателем и выходным валом. Эти шестерни помогают в увеличении крутящего момента.

Еще одним важным показателем, который нам следует знать, является угол шага: 5.625°/64. Это значит что когда двигатель сделает последовательность в 8 шагов он будет поворачиваться на 5.625° при каждом шаге и за один полный оборот он сделает 64 шага (5.625*64=360).

Расчет шагов на оборот для шагового двигателя

Важно знать, как рассчитать количество шагов за один оборот для вашего шагового двигателя, потому что только тогда вы можете эффективно его запрограммировать. В Arduino для управления двигателем мы будем использовать 4-шаговую последовательность, поэтому угол шага будет составлять 11.25°

Поскольку изначально он равен 5.625°(приведен в даташите), то для 8 шаговой последовательности получим 11.25° (5.625*2=11.25)

В Arduino для управления двигателем мы будем использовать 4-шаговую последовательность, поэтому угол шага будет составлять 11.25°. Поскольку изначально он равен 5.625°(приведен в даташите), то для 8 шаговой последовательности получим 11.25° (5.625*2=11.25).

Справедлива следующая формула:

Количество шагов за оборот = 360 / угол шага.

В нашем случае 360/11.25 = 32 шага за оборот.

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

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

Conclusion

In this article, I have shown you how you can control a stepper motor with the Arduino Motor Shield Rev3. We have looked at 4 examples, using both the Stepper and AccelStepper library. I hope you found it useful and informative. If you did, please share it with a friend that also likes electronics!

I would love to know what projects you plan on building (or have already built) with this Arduino Motor Shield. If you have any questions, suggestions, or if you think that things are missing in this tutorial, please leave a comment down below.

Note that comments are held for moderation to prevent spam.

Beginner

Information about the Arduino Motor Shield Rev3

The Arduino Motor Shield Rev3 is built around the L298 dual full-bridge driver, made by STMicroelectronics. With the shield, you can drive DC motors, a stepper motor, relays, and solenoids. It comes with two separate channels, called A and B, that you can use to drive 2 DC motors, or 1 stepper motor when combined.

One thing that is very important to remember is that the L298 is a constant voltage driver. This means that the current draw depends on the relationship between the inductance and resistance (L/R) of the motor that you connect to it.

What this means for you, is that you need to be careful when selecting the stepper motor and power supply to use with this shield. Not all stepper motors will work! The shield’s operating voltage is between 5 and 12 volts. Since the shield can supply a maximum of 2 amperes per channel, you need to find a stepper motor that can be used in this voltage range and doesn’t exceed the maximum current rating. The motor I used for this tutorial draws around 1A at 5V. I also found this stepper motor from Adafruit that works great at 12V and only draws 350mA.

If the motor you want to drive doesn’t work with this shield, I recommend using a chopper drive instead. I wrote tutorials for the A4988 and DRV8825 driver that work great with many stepper motors.

Arduino Motor Shield Rev3 Specifications

Operating voltage 5 V to 12 V
Motor controller L298P, Drives 2 DC motors or 1 stepper motor
Max current 2A per channel or 4A max (with external power supply)
Current sensing 1.65V/A
Functions Free running, stop and brake
Cost Check price

For more information you can check out the datasheets here.

L298 Datasheet

Motor Shield Schematic

Что выбрать: шаговый или серводвигатель?

Статья, которая поможет разобраться в чем отличие серводвигателя от шагового двигателя.

  1. Бюджет
    Если Вы жестко ограничены в бюджете, возможно, выбора как такового и нет. Шаговые двигатели значительно дешевле серводвигателей. Однако, такая закономерность действует только до определенного момента. Начиная с двигателей с размером фланца 110мм, стоимость приводов на шаговых моторах и сервоприводов Darxton серии DXS уже сопоставима.
  2. Размер станка.
    Чем больше станок, тем более крупные шаговые двигатели ему требуются. Резонанс больших шаговых двигателей может привести к пропуску шагов и снижению чистоты обработки. Рекомендация : Если рабочее поле станка превышает 1.2 м2, или масса портала превышает 50 кг, мы настоятельно рекомендуем использовать серводвигатели.
  3. Сложность настройки
    Сервосистемы имеют десятки настраиваемых параметров, требуют больше внимания и более высокую квалификацию оператора. Если Вы ищете простое решение «включил и работай» — возможно, вам лучше использовать шаговые двигатели.
  4. Наличие нагрузки на передачу в момент остановки

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

  5. Необходимость достигать высоких ускорений

    Если есть такая необходимость — альтернативы серводвигателям нет. Шаговые двигатели весьма инертны, и попытка быстро разогнать его приведет к т.н. «срыву» — пропуску шагов или остановке вала. Тогда как сервоприводы способны кратковременно увеличить ток обмоток в 3-4 раза от номинального значения, чтобы развить больший момент и, соответственно, большее ускорение

  6. Вероятность заклинивания механики
    Если вероятность заклинивания механической системы велика (например, в случае приводных актуаторов систем открывания ворот), серводвигатели использовать нежелательно — шаговые двигатели просто будут пропускать шаги, в то время как сервопривод в случае неправильной настройки может повредить передачу или обмотки собственного двигателя.
  7. Звук
    Шаговые двигатели при работе издают весьма сильный гул. Если для Вас низкий уровень шума критичен — следует использовать сервоприводы.

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

Параметр

Шаговые приводы

Бесщеточные сервоприводы

Момент

Резко падает с увеличением скорости. Максимален при неподвижном вале

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

Удельная мощность

Малая. Шаговый двигатель имеет крайне малый КПД — постоянно потребляет большой ток, основная часть энергии при этом выделяется в виде тепла

Высокая. Потребляемый ток пропорционален нагрузке

Обратная связь по положению

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

Есть. Положение вала будет скорректировано, если это будет невозможно(например, вал заклинило) — система выдаст ошибку

Точность позиционирования

Не более 5% от величины шага

Определяется установленным энкодером

Безопасность

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

Низкая. При заклинивании вала сервопривод может провернуть передачу, повредив её. Двигатель также может сгореть при неправильной настройке поведения драйвера при перегрузке

Срок службы

Очень большой

Очень большой

Резонанс ротора

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

Отсутствует

Звук

Сильный гул

Слабый

Нагрев

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

Слабый

Перегрузки

При перегрузках пропускает шаги, не способен резко ускориться

Хорошо переносит перегрузки за счет кратковременного увеличения потребляемой мощности. Способен резко ускориться