Скетч Arduino — использование библиотеки AccelStepper
Управление шаговым двигателем без библиотеки идеально подходит для простых приложений с одним двигателем. Но если вы хотите управлять несколькими шаговыми двигателями, то вам понадобится библиотека.
Итак, для нашего следующего эксперимента мы будем использовать расширенную библиотеку шаговых двигателей под названием AccelStepper library. Она поддерживает:
- Ускорение и замедление.
- Одновременное управление несколькими шаговыми двигателями с независимым шагом для каждого двигателя.
Эта библиотека не включена в IDE Arduino, поэтому вам необходимо сначала установить ее.
Установка библиотеки
Чтобы установить библиотеку, перейдите в Эскиз> Include Library> Manage Libraries… Подождите, пока диспетчер библиотек загрузит индекс библиотек и обновит список установленных библиотек.
Отфильтруйте результаты поиска, набрав «Accelstepper». Щелкните первую запись и выберите «Установить».
Скетч Arduino
Вот простой код, который ускоряет шаговый двигатель в одном направлении, а затем замедляется, чтобы остановиться. Как только двигатель совершает один оборот, он меняет направление вращения. И он повторяет это снова и снова.
// Подключаем библиотеку AccelStepper #include <AccelStepper.h> // Устанавливаем выводы const int dirPin = 2; const int stepPin = 3; // Определение тип интерфейса двигателя #define motorInterfaceType 1 // Создаем экземпляр AccelStepper myStepper(motorInterfaceType, stepPin, dirPin); void setup() { // Устанавливаем максимальную скорость, коэффициент ускорения, // начальную скорость и целевую позицию myStepper.setMaxSpeed(1000); myStepper.setAcceleration(50); myStepper.setSpeed(200); myStepper.moveTo(200); } void loop() { // Изменение направления вращения, когда двигатель достигнет целевого положения if (myStepper.distanceToGo() == 0) myStepper.moveTo(-myStepper.currentPosition()); // Передвинуть на 1 шаг myStepper.run(); }
Пояснение к скетчу:
Мы начинаем с подключения недавно установленной библиотеки AccelStepper.
#include <AccelStepper.h>
Определяем выводы Arduino, к которым подключаются выводы STEP и DIR A4988. Устанавливаем motorInterfaceType значение 1. (1 означает внешний шаговый драйвер с выводами Step и Direction).
const int dirPin = 2; const int stepPin = 3; #define motorInterfaceType 1
Затем мы создаем экземпляр библиотеки с именем myStepper.
AccelStepper myStepper(motorInterfaceType, stepPin, dirPin);
В функции setup() мы сначала устанавливаем максимальную скорость двигателя 1000. Затем мы устанавливаем коэффициент ускорения для двигателя, чтобы добавить ускорение и замедление к движениям шагового двигателя.
Затем мы устанавливаем обычную скорость 200 и количество шагов, например, 200 (поскольку NEMA 17 совершает 200 шагов за оборот).
void setup() { myStepper.setMaxSpeed(1000); myStepper.setAcceleration(50); myStepper.setSpeed(200); myStepper.moveTo(200); }
В функции loop() мы используем оператор If, чтобы проверить, как далеко двигателю нужно проехать (путем чтения distanceToGo), пока он не достигнет целевой позиции (moveTo). Как только distanceToGo станет равен нулю мы переключаем двигатель в противоположное направление, изменив moveTo на противоположное значение относительно его текущего положения.
Теперь в конце цикла мы вызываем функцию run(). Это самая важная функция, поскольку шаговый двигатель не будет работать, пока эта функция не будет выполнена.
void loop() { if (myStepper.distanceToGo() == 0) myStepper.moveTo(-myStepper.currentPosition()); myStepper.run(); }
Лабораторный блок питания 30 В / 10 А
Подробнее
Особенности управления
Для управления двигателем с дискретным движением ротора используются следующие режимы: полношаговый, полушаговый и микрошаговый.
Полношаговый режим
При таком способе двигателем производится попеременная коммутация фаз. При этом к источнику напряжения фазы подключаются попеременно без перекрытия. Точки равновесия ротора при таком управлении совпадают с полюсами статора. К недостаткам полношагового режима относят то, что в каждый момент времени у биполярного двигателя используется половина обмоток, а у униполярного лишь четверть. Если подключить две фазы на полный шаг, то ротор будет зафиксирован между полюсами статора благодаря подаче питания на все обмотки. При этом увеличивается крутящий момент шагового двигателя, а положение ротора в состоянии равновесия смещается на полшага. Угол шага при этом остается неизменным.
Полушаговый режим
Если каждый второй шаг включать одну фазу, а между этим включать сразу две, можно увеличить количество перемещений на один оборот в два раза. Такая коммутация, соответственно, в два раза уменьшает угол шага. При этом достичь полного момента в полушаговом режиме невозможно. Режим активно используется, так как позволяет простым способом вдвое увеличить число шагов двигателя
Важно учитывать, что при снятии напряжения со всех фаз в полношаговом и полушаговом режиме ротор остается в свободном состоянии и может произойти его смещение при механических воздействиях. Для фиксации ротора требуется в обмотках двигателя формировать ток удержания
Обычно его значение намного меньше номинального. Благодаря способности шагового двигателя фиксировать положение ротора при остановке отсутствует необходимость использовать тормозную систему, фиксаторы и иные приспособления.
Микрошаговый режим
Чтобы максимально увеличить число шагов двигателя, используется микрошаговый режим. Для этого требуется включить две фазы и распределить ток обмоток неравномерно. При смещении магнитного поля статора относительно полюсов смещается и сам ротор. У диспропорции токов между рабочими фазами двигателя обычно наблюдается дискретность, которая определяет величину микрошага. Количество микрошагов на один оборот ротора шагового двигателя может составлять более 1 000. Устройство, работающее в таком режиме, можно максимально точно позиционировать. Однако данный способ управления является достаточно сложным.
Конфигурация системы
Чтобы лучше понимать устройство шагового двигателя и принцип его работы, можно рассмотреть схему функционирования прибора под его управлением, который лет 20 назад использовался для изготовления перфокарт. Для этой цели повсеместно применяли трех- и четырехфазные ШД. Сейчас мы рассмотрим схему работы первого.
Фазы обозначают порядковыми номерами 1, 2, 3 и т.д. либо буквами А, В, С и т.д. Последний вариант используется только в случае некоторых двухфазных двигателей. Таким образом, в каждый конкретный момент времени возбуждена только одна фаза из двух, трех или четырех имеющихся (в зависимости от типа двигателя). При объяснении принципов работы такого устройства это обстоятельство упоминается постоянно, но необходимо понимать, что указанная схема вовсе не является идеальным способом управления.
Типы шаговых двигателей
Существуют три основных типа шаговых двигателей: переменной индуктивности, двигатели с постоянными магнитами, и гибридные двигатели.
Двигатели переменной индуктивности используют только генерируемое магнитное поле на центральном валу, заставляющее вращаться и находиться на одной линии с напряжением электромагнитов.
Двигатели с постоянными магнитами похожи на них, за исключением того, что центральный вал поляризован у северного и южного магнитных полюсов, которые будут соответствующим образом поворачивать его в зависимости от того, какие электромагниты включены.
Гибридный мотор — это сочетание двух предыдущих. У его намагниченного центрального вала имеется два набора зубов для двух магнитных полюсов, которые затем выстраиваются в линию с зубами вдоль электромагнитов. В связи с двойным набором зубов на центральном валу, гибридный двигатель имеет наименьший доступный размер шага и поэтому является одним из наиболее популярных типов шаговых двигателей.
Особенности работы вентильных двигателей
Вентильные двигатели относятся к электрическим машинам специального назначения. Своим названием они обязаны применению в них устройств для выпрямления тока — вентилей. Достоинства вентильных электродвигателей:
- изменение скорости вращения в широких пределах;
- более высокий коэффициент полезного действия из-за уменьшения магнитных потерь вследствие малого магнитного сопротивления;
- даже при пиковой нагрузке рабочие характеристики довольно неплохи.
Наряду с преимуществами, они имеют и некоторые недостатки. Но значение их не велико. Основными являются:
- шумность;
- управление требует определённой квалификации обслуживающего персонала;
- высокая цена.
Области применения их различны: на производстве по добыче нефти, в химической промышленности и установках для бурения скважин.
Основная разница между вентильным и обычным двигателем заключается в конструкции. У вентильного нет некоторых привычных частей конструкции: коллектора и щёточного механизма. Вместо этого установлен коммутатор (инвертор), с помощью которого осуществляется управление вентильным двигателем. На инвертор поступает сигнал от датчика положения ротора.
Датчиками положения ротора могут быть трансформаторные или индуктивные бесконтактные элементы. Наиболее распространёнными являются датчики электродвижущей силы Холла. Такое устройство состоит из небольшой пластины полупроводникового материала. На ней находятся контактные звенья, к которым припаяны выводы, соединённые с источником питания. Выводы выходного сигнала также припаиваются к соответствующим звеньям пластины. Требованиями к датчикам положения ротора являются:
- компактность;
- минимальное значение мощности на входе;
- большая кратность сигнала как максимального, так и минимального;
- надёжная работа при любых условиях окружающей среды.
Коммутатор выполнен на полупроводниках. Его задача аналогична задаче щёточно-коллекторного узла в обычных двигателях и заключается в изменении направления тока. На сердечнике станины находится обмотка якоря, а на роторе — постоянный магнит. Такая конструкция устраняет возможность скольжения контакта на якоре.
У вентильного двигателя ток в фазах синусоидального вида. Возбуждение у него может быть двух видов:
- электромагнитное;
- магнитоэлектрическое.
При электромагнитном возбуждении обмотка возбуждения располагается на полюсах. Она подключается к сети благодаря контактным кольцам, размещённым на валу ротора. Таким образом, создание магнитного поля происходит электромагнитным путём.
Схема проекта
Схема управления шаговым двигателем NEMA 17 с помощью Arduino и драйвера A4988 представлена на следующем рисунке.
Поскольку модуль драйвера A4988 имеет встроенный транслятор (преобразователь), поэтому к плате Arduino достаточно подсоединить только его контакты Step и Direction. Контакт Step используется для управления шагами двигателями, а контакт Direction – для управления направлением его вращения. Шаговый двигатель запитывается от источника питания 12V, а модуль A4988 – от платы Arduino. Потенциометр используется для управления направлением вращения двигателя.
Если вы будете поворачивать потенциометр по часовой стрелке, то и шаговый двигатель будет вращаться по часовой стрелке. Если вы будете поворачивать потенциометр против часовой стрелки, то и шаговый двигатель будет вращаться против часовой стрелки. Конденсатор 47 мкФ используется для защиты платы Arduino от выбросов напряжения. Контакты MS1, MS2 и MS3 остаются неподключенными, что означает что драйвер будет функционировать в режиме полного шага.
Внешний вид собранной конструкции проекта показан на следующем рисунке.
Таблица соединений платы Arduino, шагового двигателя Nema 17 и модуля драйвера двигателя A4988 выглядит следующим образом.
Контакт A4988 | Соединение |
VMOT | +ve Of Battery |
GND | -ve of Battery |
VDD | 5V of Arduino |
GND | GND of Arduino |
STP | Pin 3 of Arduino |
DIR | Pin 2 of Arduino |
1A, 1B, 2A, 2B | шаговый двигатель |
Соблюдайте полярность источника питания.
Виды шаговых двигателей по типу соединения электромагнитов статора:
По типу соединения электромагнитов, шаговые двигатели делятся на: униполярные и биполярные.
На рисунке представлено упрощённое, схематическое, представление обмоток. На самом деле, каждая обмотка состоит из нескольких обмоток электромагнитов, соединённых последовательно или параллельно
- Биполярный двигатель имеет 4 вывода. Выводы A и A питают обмотку AA, выводы B и B питают обмотку BB. Для включения электромагнита, на выводы обмотки необходимо подать разность потенциалов (два разных уровня), поэтому двигатель называется биполярным. Направление магнитного поля зависит от полярности потенциалов на выводах.
- Униполярный двигатель имеет 5 выводов. Центральные точки его обмоток соединены между собой и являются общим (пятым) выводом, который, обычно, подключают к GND. Для включения электромагнита, достаточно подать положительный потенциал на один из выводов обмотки, поэтому двигатель называется униполярным. Направление магнитного поля зависит от того, на какой именно вывод обмотки подан положительный потенциал.
- 6-выводной двигатель имеет ответвление от центральных точек обмоток, но обмотка AA не соединена с обмоткой BB. Если не использовать выводы центральных точек обмоток, то двигатель будет биполярным, а если эти выводы соединить и подключить к GND, то двигатель будет униполярным.
- 8-выводной двигатель является наиболее гибким в плане подключения электромагнитов. Данный двигатель можно не только использовать как биполярный или униполярный, но и самим определять, как соединить электромагниты обмоток, последовательно или параллельно.
Читать также: Приспособления для мотоблока своими руками видео
Конструкция и принцип работы
Шаговый двигатель состоит из статора и вращающегося ротора. Сердечник статора выполнен в виде набора листов электротехнической стали (штампованных). Это уменьшает вихревые токи и соответственно нагрев. Статор по окружности разбит на 4.6.8 продольных пазов. Применяется и больше. На выступах между пазами располагаются обмотки в виде катушек. Количество пазов соответствует количеству полюсов двигателя. Чем больше полюсов, тем меньше угол поворота ротора, то есть шаг.
Ротор состоит из одного или двух постоянных магнитов, с торцов, металлические пластины которого закреплены с зубьями. При этом плюса S и N постоянного магнита разбиваются на n полюсов, что соответствует количеству зубьев. Это также влияет на величину шага вращения. По конструкции ШД выпускаются трёх типов в зависимости от конструкции ротора:
- реактивный;
- ротор из постоянного магнита;
- гибридный.
Реактивный — ротор выполнен из ферромагнитного материала с продольными пазами, полюсами. Он используется редко, только для выполнения простых задач. В основном из-за того, что у него нет стопорящего момента. Гибридный — ротор изготовлен из двух половинок ферромагнитного материала, с продольными пазами и между ними расположен постоянный магнит. Пазы половинок относительно друг друга, сдвинуты на небольшой угол, для понижения шага. Они чаще всего применяются.
При подаче импульсного напряжения на обмотку статора образуется электромагнитное поле. Взаимодействуя, с ближайшим полюсом постоянного магнита создаётся крутящий момент. Вал двигателя поворачивается на определённый угол. Угол поворота в основном зависит от количества полюсов ротора.
Digitrode
цифровая электроника вычислительная техника встраиваемые системы
-
Вычислительная техника
- Микроконтроллеры микропроцессоры
- ПЛИС
- Мини-ПК
- Силовая электроника
- Датчики
- Интерфейсы
-
Теория
- Программирование
- ТАУ и ЦОС
-
Перспективные технологии
- 3D печать
- Робототехника
- Искусственный интеллект
- Криптовалюты
Чтение RSS
Управляем шаговым двигателем с помощью Arduino и драйвера DRV8825
Шаговый двигатель – это тип двигателя постоянного тока, который работает дискретно и используется повсеместно, от камеры наблюдения до сложных роботов и машин. Шаговый двигатель NEMA 17 имеет угол шага 1,8°, что означает, что для поворота на 360 ° потребуется 200 шагов. Изменяя скорость подачи управляющего сигнала, мы можем легко контролировать скорость двигателя. Шаговый двигатель может работать в различных пошаговых режимах, таких как полный шаг, полшага, ¼ шаг путем применения соответствующих логических уровней к контактам шагового модуля. В нашем предыдущем проекте мы контролировали шаговый двигатель 28-BYJ48 с помощью Arduino. 28-BYJ48 имеет относительно более низкий крутящий момент, чем другие шаговые двигатели, такие как NEMA 14, NEMA17.
В этом проекте мы собираемся управлять шаговым двигателем NEMA 17 с помощью Arduino и шагового модуля DRV8825. Мы также будем использовать потенциометр для управления направлением шагового двигателя, чтобы вращать его по часовой стрелке и против часовой стрелки.
Модуль шагового привода или драйвер контролирует работу шагового двигателя. Драйверы шагового двигателя посылают ток на шаговый двигатель через различные фазы. DRV8825 – это модуль микрошагового драйвера, аналогичный модулю A4988. Используется для управления биполярными шаговыми двигателями. Этот модуль управления шаговым двигателем Nema 17 имеет встроенный транслятор, который означает, что он может управлять как скоростью, так и направлением биполярного шагового двигателя, такого как NEMA 17, используя только два контакта, то есть STEP и DIR. Вывод STEP используется для управления шагами, а вывод DIR – для управления направлением вращения.
Драйвер двигателя Nema 17 DRV8825 имеет максимальную выходную мощность 45 В и ± 2,2А. Этот драйвер может управлять шаговым двигателем в шести различных пошаговых режимах, то есть с полным шагом, полушагом, четвертьшагом, одной восьмой шага, одной шестнадцатой шага и одной тридцать второй шага. Вы можете изменить разрешение шага, используя линии микрошага (M0, M1 и M2). Установив соответствующие логические уровни для этих контактов, мы можем установить двигатели на одно из шести шагов разрешения.
Схема подключения шагового двигателя NEMA 17, Arduino, DRV8825 и сопутствующих компонентов приведена на следующем изображении.
Питание шагового двигателя осуществляется от источника питания 12 В, а модуль DRV8825 получает питание от Arduino. Контакты RST и SLEEP оба подключены к 5V от Arduino, чтобы драйвер оставался включенным. Потенциометр подключен к выводу A0 Arduino; он используется для управления направлением двигателя. Если вы поворачиваете потенциометр по часовой стрелке, то шаговый двигатель будет вращаться по часовой стрелке, а если вы поворачиваете потенциометр против часовой стрелки, то он будет вращаться против часовой стрелки. Конденсатор 47 мкФ используется для защиты платы от скачков напряжения. Выводы M0, M1 и M2 оставлены отсоединенными, это означает, что драйвер будет работать в режиме полного шага.
Перед использованием двигателя измените ограничение тока модуля DRV8825 на 350 мА с помощью потенциометра ограничения тока. Вы можете измерить текущий предел с помощью мультиметра. Измерьте ток между двумя точками заземления и потенциометром и отрегулируйте его до требуемого значения.
Полный код для управления Nema 17 с помощью Arduino приведен далее.
Отличие и разновидности шаговых двигателей
По принципу работы они ближе к двигателям постоянного тока. Конструкция электродвигателей постоянно совершенствуется для уменьшения трудозатрат при изготовлении, повышения КПД и увеличения количество оборотов. У них по сравнению с двигателем постоянного тока нет щёток, коллектора, а обмотки с меньшим количеством витков.
Среди первых двигателей был создан миниатюрный двигатель для ручных часов и назван в честь французского инженера Мариус Лавета. Статор расцеплен на краях или в районе ротора имеет небольшие сужения. Ротор диаметром 1.5 мм, магнитный на основе кобальта. Одна обмотка в один ряд питание 1.5 вольта. Угол поворота 90 градусов.
В последнее время ведутся разработки пьезоэлектрических двигателей с использованием пьезомагнитного эффекта и применяя в конструкции ферромагнитные материалы. Совершенствуются линейные электродвигатели, у которых вал не вращается, а совершает линейные движения. Для оборудования точной механики российские производители выпускают двигатели с маркировкой серии:
- ДШ.
- ДШР.
- ДШГ.
- ДШЛ.
- ШД.
- ДШЭ
В производстве их участвуют такие предприятия, как НПО «АТОМ», ZETEK, компания Электропривод, Stepmotor, Вексон, НПО РИФ, Саратовский эл. механический, корпорация ВНИИЭМ, ЗАО Уралэлектромаш, АРК «Энергосервис». Производством ШД FL 203, FL 28, FL 57, 35 HS, 57 HS, 17 HD занимаются зарубежные фирмы: Fulling motor, Autonics, Motionking YUHA motor, Jlangsu, Phytron и другие. Ассортимент выпускаемых ШД разнообразный: по типоразмерам, мощности, со встроенным редуктором и платой управления.
Шаговый двигатель с постоянными магнитами
Шаговый двигатель с постоянными магнитами имеет ротор на постоянных магнитах. Статор обычно имеет две фазы.
По сравнению с реактивными, шаговые двигатели с активным ротором создают большие вращающие моменты, обеспечивают фиксацию ротора при снятии управляющего сигнала. Недостаток двигателей с активным ротором — большой угловой шаг (7,5—90°). Это объясняется технологическими трудностями изготовления ротора с постоянными магнитами при большом числе полюсов. Если угол фиксации находится в диапазоне от 7,5 до 90 градусов скорее всего это шаговый двигатель с постоянными магнитами нежели гибридный шаговый двигатель.
Обмотки могут иметь ответвление в центре для работы с однополярной схемой управления. Двухполярное управление требуется для питания обмоток без центрального ответвления.
Униполярный (однополярный) шаговый двигатель
Униполярный шаговый двигатель с постоянными магнитами имеет одну обмотку на фазу с ответвлением в центре. Каждая секция обмотки включается отдельно.
Таким образом расположение магнитных полюсов может быть изменено без изменения направления тока, а схема коммутации может быть выполнена очень просто (например на одном транзисторе) для каждой обмотки. Обычно центральное ответвление каждой фазы делается общим, в результате получается три вывода на фазу и всего шесть для обычного двухфазного двигателя.
Легкое управление однополярными двигателями сделало их популярными для любителей, они возможно являются наиболее дешевым способом чтобы получить точное угловое перемещение.
Биполярный шаговый двигатель
Двухполярные двигатели имеют одну обмотку на фазу. Для того чтобы изменить магнитную полярность полюсов необходимо изменить направление тока в обмотке, для этого схема управления должна быть более сложной, обычно с H-мостом. Биполярный шаговый двигатель имеет два вывода на фазу и не имеет общего вывода. Так как пространство у биполярного двигателя используется лучше, такие двигатели имеют лучший показатель мощность/объем чем униполярные. Униполярный двигатель имеет двойное количество проводников в том же объеме, но только половина из них используется при работе, тем не менее биполярный двигатель сложнее в управление.
Управление шаговым двигателем с постоянными магнитами
Для управления шаговым двигателем на постоянных магнитах к его обмоткам прикладывается сфазированный переменный ток. На практике это почти всегда прямоугольный сигнал сгенерированный от источника постоянного тока. Биполярная система управления генерирует прямоугольный сигнал изменяющийся от плюса к минусу, например от +2,5 В до -2,5 В. Униполярная система управления меняет направление магнитного потока катушки посредством двух сигналов, которые поочереди подаются на противоположные выводы катушки относительно ее центрального ответвления.
Волновое управление
Простейшим способом управления шаговым двигателем является волновое управление. При таком управлении в один момент времени возбуждается только одна обмотка. Но такой способ управления не обеспечивает максимально возможного момента.
Шаговый двигатель с постоянными магнитами может иметь разную схему соединения обмоток статора.
На рисунке выше представлены схема биполярного шагового двигателя и двухполюсные осциллограммы управления. При таком управлении обе полярности («+» и «-«) подаются на двигатель. Магнитное поле катушки поворачивается за счет того, что полярность токов управления меняется.
На рисунке выше представлены схема униполярного шагового двигателя и однополюсные осциллограммы управления.Так как для управления униполярным шаговым двигателем требуется только одна полярность это существенно упрощает схему системы управления. При этом требуется генерация четырех сигналов так как необходимо два однополярных сигнала для создания переменного магнитного поля катушки.
Необходимое для работы шагового двигателя переменное магнитное поле может быть создано как униполярным так и биполярным способом. Однако для униполярного управления катушки двигателя должны иметь центральное ответвление.
Шаговый двигатель с постоянными магнитами может иметь разную схему соединения обмоток статора. Схемы соединения шагового двигателя показаны на рисунке ниже.
Источник
Характеристики
Так как шаговый двигатель не предназначен для непрерывного вращения в его параметрах не указывают мощность. Шаговый двигатель — маломощный двигатель по сравнению с другими электродвигателями.
Одним из определяющих параметров шагового двигателя является шаг ротора, то есть угол поворота ротора, соответствующий одному импульсу. Шаговый двигатель делает один шаг в единицу времени в момент изменения импульсов управления. Величина шага зависит от конструкции двигателя: количества обмоток, полюсов и зубьев. В зависимости от конструкции двигателя величина шага может меняться в диапазоне от 90 до 0,75 градусов. С помощью системы управления можно еще добиться уменьшения шага пополам используя соответствующий метод управления.