Особенности управления
Для управления двигателем с дискретным движением ротора используются следующие режимы: полношаговый, полушаговый и микрошаговый.
Полношаговый режим
При таком способе двигателем производится попеременная коммутация фаз. При этом к источнику напряжения фазы подключаются попеременно без перекрытия. Точки равновесия ротора при таком управлении совпадают с полюсами статора. К недостаткам полношагового режима относят то, что в каждый момент времени у биполярного двигателя используется половина обмоток, а у униполярного лишь четверть. Если подключить две фазы на полный шаг, то ротор будет зафиксирован между полюсами статора благодаря подаче питания на все обмотки. При этом увеличивается крутящий момент шагового двигателя, а положение ротора в состоянии равновесия смещается на полшага. Угол шага при этом остается неизменным.
Полушаговый режим
Если каждый второй шаг включать одну фазу, а между этим включать сразу две, можно увеличить количество перемещений на один оборот в два раза. Такая коммутация, соответственно, в два раза уменьшает угол шага. При этом достичь полного момента в полушаговом режиме невозможно. Режим активно используется, так как позволяет простым способом вдвое увеличить число шагов двигателя
Важно учитывать, что при снятии напряжения со всех фаз в полношаговом и полушаговом режиме ротор остается в свободном состоянии и может произойти его смещение при механических воздействиях. Для фиксации ротора требуется в обмотках двигателя формировать ток удержания
Обычно его значение намного меньше номинального. Благодаря способности шагового двигателя фиксировать положение ротора при остановке отсутствует необходимость использовать тормозную систему, фиксаторы и иные приспособления.
Микрошаговый режим
Чтобы максимально увеличить число шагов двигателя, используется микрошаговый режим. Для этого требуется включить две фазы и распределить ток обмоток неравномерно. При смещении магнитного поля статора относительно полюсов смещается и сам ротор. У диспропорции токов между рабочими фазами двигателя обычно наблюдается дискретность, которая определяет величину микрошага. Количество микрошагов на один оборот ротора шагового двигателя может составлять более 1 000. Устройство, работающее в таком режиме, можно максимально точно позиционировать. Однако данный способ управления является достаточно сложным.
Схема униполярных и биполярных шаговых двигателей
Вначале рассмотрим униполярный шаговый двигатель, ввиду простоты управления. В таком моторе ток в обмотке всегда течет в одном направлении. Это упрощает метод управления, в отличие от биполярного, где управление должно обеспечивать изменение полярности катушек шагового двигателя путем изменения направления тока через обмотку на противоположное.
Двух переключателей достаточно, чтобы построить простейший драйвер шагового двигателя, как показано на рисунке. Здесь используем 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 всех обмоток шагового двигателя, что значительно снижает максимальную производительность.
#21. Подключаем к Arduino Шаговый двигатель 28BYJ-48 на драйвере ULN2003
Сегодня в уроке подключим шаговый двигатель 28BYJ-48 к Arduino и научимся вращать вал двигателя в разные стороны и изменять скорость вращения с помощью потенциометра и энкодера KY-040.
Кратко, что такое шаговый двигатель (ШД) — это двигатель, который способен осуществлять вращение на 1 шаг. Шаг — это угол, который обусловлен устройством каждого конкретного шагового двигателя.
Характеристики шагового двигателя 28BYJ-48:
Размера шагового двигателя 28BYJ-48. Необходимы при проектировании деталей для 3D печати.
Вот так выглядит схема шагового двигателя 28BYJ-48
Подавая сигналы в определённом порядке на выводы двигателя, двигатель можно вращать по часовой стрелке.
Для шагового режима.
Для полушагового режима.
Прямое подключение шагового двигателя 28BYJ-48 к Arduino.
В связи с тем, что двигатель 28BYJ-48 работает от 5в и при небольших токах, его можно подключить на прямую к Arduino.
Схема подключения к Arduino UNO будет следующая.
Для вращения ШД достаточно подавать сигналы по схеме, которую мы рассмотрели выше.
Для этого можно сделать массив подачи сигнала на пины микроконтроллера.
И в цикле выполнять каждую строчку массива. Но есть решение с более компактным кодом. Нашел я данный пример на канале Дмитрия Осипова. За что ему отельное спасибо!
Код для вращения в одну и в другую сторону будет вот таким.
ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!
Пример подключения шагового двигателя 28BYJ-48 (5V)с использованием драйвер ULN2003.
Также у Дмитрия Осипова есть код для изменения скорости вращения с помощью потенциометра. Я его немного доработал, сделал обработку нажатия кнопки без задержки в 500 мс. Сейчас двигатель стал вращаться в обратную сторону без видимой задержки.
Для подключения буду использовать модуль SBT0811 на драйвере ULN2003.
Драйвер устроен вот таким образом.
Соответственно, наш код будет работать и с данным драйвером.
Подключим все по схеме и загрузим код в Arduino NANO.
Схема подключения для Arduino UNO будет аналогичной.
Как видим, двигатель без проблем вращается по часовой стрелке и против часовой, при нажатии на кнопку вращается в противоположном направлении. При вращении потенциометра в одну сторону — скорость уменьшается, при вращении в противоположном направлении скорость увеличивается.
ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!
Пример управления шаговым двигателем 28BYJ-48 с помощью Энкодера.
Для уменьшения количества элементов в схеме решил заменить потенциометр и тактовую кнопку на энкодер вращения KY-040. Как подключить энкодер вращения к Arduino рассказывал в предыдущем уроке.
Подключаем шаговый двигатель 28BYJ-48 и энкодер к Arduino по схеме.
Проводим небольшую доработку кода и получим вот такой результат.
Если нажать на энкодер, меняется направление вращения. А при вращении энкодера по часовой стрелке — скорость увеличивается. Если вращать против часовой стрелки — скорость снижается.
ВНИМАНИЕ! Материалы для скачивания находятся внизу статьи!
Вы также можете без проблем воспользоваться примером из стандартной библиотеки Stepper, которая позволит сделать тоже самое и при меньшем объёме кода. Но библиотека не даст вам понять, как это все устроено.
А вот сам пример вращения в одну сторону, а затем в другую с использованием библиотеки Stepper.
На основе данного примера можно реализовать управление не только одним шаговым двигателем, а несколькими. Причем, каждый двигатель будет выполнять свои действия не зависимо от других. В планах сделать пару проектов с использованием данного шагового двигателя.
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока.
И до встречи в следующем уроке
БИБЛИОТЕКА GYVERSTEPPER
GyverStepper v1.5
GyverStepper – производительная библиотека для управления шаговыми моторами
- Поддержка 4х фазных (шаг и полушаг) и STEP-DIR драйверов
- Автоматическое отключение питания при достижении цели
- Режимы работы:
- Вращение с заданной скоростью
- Следование к позиции с ускорением и ограничением скорости
- Следование к позиции с заданной скоростью (без ускорения)
- Быстрый алгоритм управления шагами
- Два алгоритма плавного движения:
- Модифицированный планировщик из библиотеки AccelStepper: максимальная плавность и скорость до 7’000 шагов/сек с ускорением (для активации пропиши дефайн SMOOTH_ALGORITHM )
- Мой планировщик обеспечивает максимальную производительность: скорость до 30’000 шагов/сек с ускорением (активен по умолчанию). Т.е. на небольшой скорости экономит кучу процессорного времени для других задач.
Поддерживаемые платформы: все Arduino (используются стандартные Wiring-функции)
Версия 1.1: добавлена возможность плавно менять скорость в режиме KEEP_SPEED. Добавлены примеры multiStepper и accelDeccelButton Версия 1.2: добавлена поддержка ESP и других Ардуино-совместимых плат Версия 1.3: исправлена логика setTarget(val, RELATIVE) Версия 1.4: добавлена задержка между STEP HIGH и STEP LOW
Типы шаговых двигателей
Для обеспечения различных параметров работы важна как величина шага, на который будет смещаться вал, так и момент, прилагаемый для перемещения. Вариации данных параметров достигаются за счет конструкции самого ротора, способа подключения и конструкции обмоток.
По конструкции ротора
Вращаемый элемент обеспечивает магнитное взаимодействие с электромагнитным полем статора. Поэтому его конструкция и технические особенности напрямую определяют режим работы и параметры вращения шагового агрегата. Чтобы на практике определить тип шагового мотора, при обесточенной сети необходимо провернуть вал, если ощущаете сопротивление, то это свидетельствует о наличии магнита, в противном случае, это конструкция без магнитного сопротивления.
Реактивный
Реактивный шаговый двигатель не оснащается магнитом на роторе, а выполняется из магнитомягких сплавов, как правило, его набирают из пластин для уменьшения потерь на индукцию. Конструкция в поперечном разрезе напоминает шестерню с зубцами. Полюса статорных обмоток запитываются противоположными парами и создают магнитную силу для перемещения ротора, который двигается от попеременного протекания электрического тока в обмоточных парах.
С переменным магнитным сопротивлением
Весомым плюсом такой конструкции шагового привода является отсутствие стопорящего момента, образуемого полем по отношению к арматуре. По факту это тот же синхронный двигатель, в котором поворот ротора идет в соответствии с полем статора. Недостатком является снижение величины вращающего момента. Шаг для реактивного двигателя колеблется от 5 до 15°.
С постоянными магнитами
В этом случае подвижный элемент шагового двигателя собирается из постоянного магнита, в котором может быть два и большее количеством полюсов. Вращение ротора обеспечивается притяжением или отталкиванием магнитных полюсов электрическим полем при подаче напряжения в соответствующие обмотки. Для этой конструкции угловой шаг составляет 45-90°.
С постоянным магнитом
Гибридные
Был разработан с целью объединения лучших качеств двух предыдущих моделей, за счет чего агрегат обладает меньшим углом и шагом. Его ротор выполнен в виде цилиндрического постоянного магнита, который намагничен по продольной оси. Конструктивно это выглядит как два круглых полюса, на поверхности которых расположены зубцы ротора из магнитомягкого материала. Такое решение позволило обеспечить отличный удерживающий и крутящий момент.
По виду обмоток
На практике шаговый двигатель представляет собой многофазный мотор. Плавность работы в котором напрямую зависит от количества обмоток – чем их больше, тем плавне происходит вращение, но и выше стоимость. При этом крутящий момент от числа фаз не увеличивается, хотя для нормальной работы их минимальное число на статоре электродвигателя должно составлять хотя бы две. Количество фаз не определяет числа обмоток, так двухфазный шаговый двигатель может иметь четыре и более обмотки.
Униполярный
Униполярный шаговый двигатель отличается тем, что в схеме подключения обмотки имеется ответвление от средней точки. Благодаря чему легко меняются магнитные полюса. Недостатком такой конструкции является использование только одной половины доступных витков, из-за чего достигается меньший вращающий момент. Поэтому они отличаются большими габаритами.
Униполярный ШД
Для использования всей мощности катушки средний вывод оставляют не подключенным. Рассмотрите конструкции униполярных агрегатов, они могут содержать 5 и 6 выводов. Их количество будет зависеть от того, выводится срединный провод отдельно от каждой обмотки двигателя или они соединяются вместе.
Схема а) с различными, б) с одним выводом
Биполярный
Биполярный шаговый двигатель подключается к контроллеру через 4 вывода. При этом обмотки могут соединяться внутри как последовательно, так и параллельно. Рассмотрите пример его работы на рисунке.
Биполярный шаговый двигатель
В конструктивной схеме такого двигателя вы видите с одной обмоткой возбуждения в каждой фазе. Из-за этого смена направления тока требует использовать в электронной схеме специальные драйверы (электронные чипы, предназначенные для управления). Добиться подобного эффекта можно при помощи включения Н-моста. В сравнении с предыдущим, биполярное устройство обеспечивает тот же момент при гораздо меньших габаритах.
Настройка тока 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 | 329 | Скачать |
Типы и конструктивные особенности
Сегодня применяется несколько видов ШД, отличающихся по конструкции, типу обмоток, особенностям управления и иным параметрам. Рассмотрим каждую классификацию более подробно.
По конструкции ротора
Многие характеристики двигателя, касающиеся скорости вращения и режима работы, зависят от ротора.
С этой позиции выделяется три вида устройства.
Реактивный (синхронный). Особенность — отсутствие роторного магнита. Конструктивно изготавливается из специальных сплавов, позволяющих снизить индуктивные потери. Устройство имеет вид шестеренки с зубцами, а на полюсах статора подается напряжение со второй пары. Как результат, создается магнитная сила для перемещения ротора. По принципу действия реактивный шаговый агрегат имеет много общего с синхронным мотором, где поля ротора и статора вращаются в одном направлении.
- Двигатель с магнитами. В отличие от прошлого устройства подвижный элемент комплектуется постоянным магнитом с двумя и более полюсами. Ротор крутится, благодаря притягиванию и отталкиванию полюсов с помощью электрического поля в момент подачи разницы потенциалов на определенные обмотки.
- Смешанные. В гибридных устройствах совмещаются лучшие качества магнитных и реактивных моторов. В отличие от прошлых моделей угол и шаг здесь меньше. Конструктивно ротор оборудован постоянным магнитом, имеющим цилиндрическую форму. Внешне он имеет вид двух полюсов с круглым сечением, на поверхности которых находятся роторные зубцы. Такая особенность гарантирует хороший момент вращения и удерживания. Главные плюсы — максимальная плавность, точность и скорость перемещения.
По типу обмоток
Плавность функционирования шагового двигателя находится в прямой зависимости от числа обмоток, поэтому на этот фактор важно обращать особое внимание
Многие ошибочно считают, что количество обмоток зависит от числа фаз. Это не так, ведь даже 2-фазный мотор может иметь четыре и более обмотки.
Шаговые двигатели бывают:
- Униполярными. Особенность — наличие отпайки из средней точки, что позволяет с легкостью менять полюса. Минус состоит в применении части витков, поэтому уменьшается момент вращения. Для повышения мощности средний вывод подключать не рекомендуется. Конструктивно униполярные устройства содержат пять и шесть выводов.
- Биполярный. К этой группе относится шаговый двигатель, подключаемый к контроллеру через четыре отпайки. Обмотки могут объединятся в параллель или последовательно. Для изменения направления тока применяются так называемые чипы, обеспечивающие ручное управление. Достижение такого эффекта доступно с помощью Н-моста. Если сравнивать с униполярным видом, биполярный тип гарантирует тот же момент, но при меньших размерах.
По типу управления
Для расширения функционала и удобства применения предусмотрена система управления.
Она бывает следующих типов.
Волновая: возбуждение только одной обмотки. Недостатком является минимально доступный момент.
Полношаговая: одновременное включение обмоток.
Полушаговая: делание геометрии шагового мотора пополам. Обеспечивается увеличенное разрешение при позиционировании вала агрегата.
По типу
При выборе шаговых двигателей нужно понимать, что они бывают нескольких типов.
Кратко рассмотрим их особенности:
- Биполярные двигатели — двухфазные с угловым перемещением в 0,9 или 1,8 градуса. Разработчики гарантируют высокую точность шага без нагрузки величиной до 5%.
- С энкодером (часто называются гибридными серводвигателями). Особенность состоит в наличии инкрементального энкодера. Моторы объединяют лучшие качества серво- и шаговых электрических моторов, а цена таких устройств меньше в сравнении с сервосистемой. Применяются в комплексе с контроллером.
- Линейные (актуаторы). Принцип действия построен на преобразовании вращательного движения в линейное. Иными словами, в них сочетается винтовая передача и ШД, объединенные в общем блоке.
- Шаговые двигатели с редуктором. Применяются в ситуации, когда необходимо получить максимальное усилие на валу электрического привода с минимальной скоростью вращения. В роли редуктора используется планетарный тип, оборудованный прямозубыми шестеренками с небольшим люфтом передачи.
На рынке представлен большой выбор устройств, имеющих индивидуальные характеристики и подходящих для определенных сфер деятельности. Эти моменты необходимо учитывать при выборе модели.
Чем отличается синхронный двигатель от асинхронного для чайников кратко, простыми словами, сравнение по конструкции и принципу действия
Как управлять шаговым двигателем через Arduino: схема подключения
Шаговый двигатель — один из основных компонентов роботехники, ЧПУ-станко, 3D-принетеров и других автоматических систем. В этой статье рассмотрим что это такое, как его подключить и как управлять шаговым двигателем с помощью Arduino.
На производстве и в быту при автоматической работе каких-либо механизмов часто требуется точное позиционирование рабочего органа или оснастки. Для этого могут использоваться серво приводы и шаговые двигатели. Эти два вида электропривода значительно отличаются, как по конструкции, так и по особенности работы и управления. В этой статье мы затронем тему работы с шаговыми двигателями с помощью Arduino и модуля для управления электродвигателями на базе ИМС ULN2003.