Что нужно к шаговому двигателю
Подключение шагового двигателя к Arduino Uno
Шаговые двигатели с каждым годом находят все большее применение в мире электроники. Начиная от обычной камеры наблюдения до сложных станков с ЧПУ и роботов шаговые двигатели используются в качестве исполнительных механизмов, поскольку они обеспечивают точное управление. В этом проекте мы рассмотрим один из наиболее распространенных шаговых двигателей 28BYJ-48 и его подключение к плате Arduino с помощью модуля ULN2003.
Общие принципы работы шаговых двигателей
Внешний вид шагового двигателя 28BYJ-48 представлен на следующем рисунке:
Первый вопрос, который напрашивается при взгляде на этот рисунок – почему в отличие от обычного двигателя из этого шагового двигателя выходят 5 проводов различных цветов? Чтобы понять это давайте сначала разберемся с принципами работы шагового двигателя.
Начнем с того, что шаговые двигатели не вращаются, а “шагают”, поэтому они и называются шаговыми двигателями. То есть в один момент времени они будут передвигаться только на один шаг. Чтобы добиться этого в устройстве шаговых двигателей присутствует несколько катушек и на эти катушки нужно подавать питание в определенной последовательности чтобы двигатель вращался (шагал). При подаче питания на каждую катушку двигатель делает один шаг, при последовательной подаче питания на катушки двигатель будет совершать непрерывные шаги, то есть вращаться. Давайте более подробно рассмотрим катушки, присутствующие внутри шагового двигателя.
Как можно видеть из рисунка, двигатель имеет однополярную катушку с 5 выводами. Но фактически это 4 катушки, на которые нужно подавать питание в определенной последовательности. На красные провода необходимо подать +5V, на остальные 4 провода необходимо подать землю чтобы запустить в работу соответствующую катушку. Мы будем использовать плату Arduino чтобы подавать питание на эти катушки в определенной последовательности и тем самым заставлять двигатель вращаться. Более подробно ознакомиться с принципами работы шаговых двигателей можно в статье про подключение шагового двигателя к микроконтроллеру AVR.
Так почему же этот двигатель называется 28BYJ-48? Честно говоря, мы не знаем точного ответа на этот вопрос. Некоторые наиболее важные технические характеристики этого шагового двигателя приведены на следующем рисунке.
На первый взгляд от такого количества характеристик может закружиться голова, но давайте попробуем выделить из них самые важные, те, которые нам понадобятся для дальнейшей работы. Во-первых, мы знаем, что это шаговый двигатель 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).
Справедлива следующая формула:
Количество шагов за оборот = 360 / угол шага.
В нашем случае 360/11.25 = 32 шага за оборот.
Зачем нужен драйвер мотора для управления шаговым двигателем
Большинство шаговых двигателей будут работать только с помощью модуля драйвера мотора. Это связано с тем, что микроконтроллер (в нашем случае плата Arduino) не может обеспечить достаточный ток на своих контактах ввода/вывода для работы двигателя. Поэтому мы будем использовать внешний драйвер мотора для управления нашим шаговым двигателем — модуль ULN2003 (купить на AliExpress). В сети интернет можно найти рейтинги эффективности различных драйверов мотора, но эти рейтинги будут меняться в зависимости от типа используемого шагового двигателя. Основной принцип, которого следует придерживаться при выборе драйвера мотора – он должен обеспечивать достаточный ток для управления шаговым двигателем.
Работа схемы
Схема подключения шагового двигателя к плате Arduino представлена на следующем рисунке.
Мы использовали шаговый двигатель 28BYJ-48 и драйвер мотора ULN2003. Для подачи питания на 4 катушки шагового двигателя мы будем использовать контакты платы Arduino 8, 9, 10 и 11. Драйвер мотора запитывается от контакта 5V платы Arduino.
Но если вы будете подсоединять какую-нибудь нагрузку к шаговому двигателю, то вам потребуется внешний источник питания для драйвера мотора. Мы в нашем примере эксплуатируем шаговый двигатель без нагрузки, поэтому нам и хватило питания от платы Arduino. И не забудьте соединить землю платы Arduino с землей драйвера мотора.
Разработка программы для платы Arduino
Перед тем как начать писать программу для платы Arduino давайте разберемся что должно происходить внутри этой программы. Как мы уже говорили ранее, мы будем использовать метод 4-шаговой последовательности, то есть нам нужно будет сделать 4 шага чтобы выполнить один полный оборот двигателя.
Номер шага | Контакты, на которое подается питание | Катушки, на которое подается питание |
Шаг 1 | 8 и 9 | A и B |
Шаг 2 | 9 и 10 | B и C |
Шаг 3 | 10 и 11 | C и D |
Шаг 4 | 11 и 8 | D и A |
На драйвере мотора есть 4 светодиода, по свечению которых можно судить о том, на какую катушку подается питание в конкретный момент. Более подробно все эти процессы можно посмотреть в видео, приведенном в конце статьи.
Мы напишем программу, в которой необходимое количество шагов для двигателя мы будем вводить в мониторе последовательного порта (serial monitor) платы Arduino. Полный текст программы приведен в конце статьи, здесь же мы рассмотрим наиболее важные его фрагменты.
Как мы рассчитали ранее, полное число шагов для полного оборота нашего шагового двигателя, равно 32, пропишем это в следующей строчке кода:
#define STEPS 32
Далее мы должны сказать плате Arduino через какие ее контакты мы будем управлять шаговым двигателем (то есть к каким ее контактам подключен драйвер мотора).
Stepper stepper (STEPS, 8, 10, 9, 11);
Примечание : последовательность номеров контактов, указанная в приведенной команде (8,10,9,11) – специально упорядочена таким образом чтобы подавать питание на катушки шагового двигателя в правильном порядке. Если вы измените номера контактов, к которым подключен шаговый двигатель, то вы соответствующим образом должны их упорядочить для подачи в приведенную команду.
Мы будем использовать специальную библиотеку для работы с шаговыми двигателями, поэтому для задания скорости вращения шагового двигателя мы можем использовать команду вида:
Для двигателя 28-BYJ48 скорость вращения можно установить в диапазоне от 0 до 200.
Теперь, чтобы двигатель сделал один шаг, мы можем использовать следующую команду:
Количество шагов, которое должен сделать двигатель, определяется переменной “ val ”. Поскольку мы имеем 32 шага (для оборота) и передаточное число 64 мы должны сделать 2048 (32*64=2048) “шагов” в этой команде для совершения одного полного оборота двигателя.
Значение переменной “val” в нашей программе мы будем вводить из окна монитора последовательной связи.
Работа проекта
Когда вы сделаете все необходимые соединения в аппаратной части нашего проекта у вас должна получиться примерно следующая конструкция:
Теперь загрузите код программы в плату Arduino UNO и откройте окно монитора последовательной связи (serial monitor). Как мы уже указывали, мы должны сделать 2048 шагов для совершения одного полного оборота, то есть если мы в окне монитора последовательной связи введем 2048, то вал шагового двигателя совершит один полный оборот по часовой стрелке, а сам двигатель в это время сделает 2048 шагов. Для вращения против часовой стрелки просто вводите нужное число шагов со знаком “–“. То есть если вы введете -1024, то вал мотора совершит пол-оборота против часовой стрелки. Чтобы протестировать работу проекта вы можете вводить любые числа.
Исходный код программы
Код программы достаточно простой. Я надеюсь после успешной реализации данного проекта вы сможете управлять любыми шаговыми двигателями с помощью платы Arduino.
#include // заголовочный файл библиотеки для работы с шаговыми двигателями
// измените необходимое число шагов в зависимости от модели вашего шагового двигателя
#define STEPS 32
// создайте класс для шагового двигателя и запишите для него правильную последовательность контактов
Stepper stepper(STEPS, 8, 10, 9, 11);
int val = 0;
void setup() <
Serial.begin(9600);
stepper.setSpeed(200);
>
void loop() <
if (Serial.available()>0)
<
val = Serial.parseInt();
stepper.step(val);
Serial.println(val); //for debugging
>
>
Видео, демонстрирующее работу схемы
Управление шаговым двигателем Комментировать
Шаговые двигатели являются неотъемлемой частью самых различных электромеханизмов, начиная от бытовой техники и заканчивая производственным оборудованием. Управление шаговым двигателем осуществляется с помощью внешнего оборудования, в качестве которого может выступать как простой контроллер ШД, так и сложная система во главе с ПК, к которому подключается блок управления шаговым двигателем.
Способы управления шаговым двигателем
Независимо от того, какая схема управления использована, управление шаговым двигателем может осуществляться в одном из трёх режимов:
– полношаговом;
– полушаговом;
– микрошаговом.
Полношаговый режим управления ШД подразумевает попеременную коммутацию фаз без перекрытия, при этом единовременно к источнику напряжения подключена только одна из фаз. При таком способе управления на каждый полный шаг электродвигателя приходится одна фаза; точки равновесия ротора идентичны полюсам статора. Данный режим имеет недостаток: в случае с биполярным двигателем в полношаговом режиме в один и тот же момент задействуется только половина обмоток, с униполярным – четверть. Существует и другой вариант полношагового управления, подразумевающий единовременное включение двух фаз. Такой способ управления ШД основан на фиксации ротора между полюсами статора благодаря подаче питания на обмотки, при этом на полный шаг приходится две фазы.
Применение полушагового режима управления шаговым двигателем позволяет увеличить количество шагов, приходящихся на один оборот ротора, в два раза. При работе ШД в таком режиме на каждый второй шаг приходится включение одной из фаз, между шагами включаются сразу обе. Такой режим коммутации очень популярен, однако следует отметить, что при его применение получение полного момента невозможно.
Микрошаговый режим управления ШД применяется тогда, когда необходимо получение максимально большого количества шагов, приходящихся на оборот ротора. При работе в таком режиме, как и в полушаговом, работают две фазы, однако токи обмоток в данном случае распределяются неравномерно. В микрошаговом режиме шагового двигателя происходит смещение положения ротора и магнитного поля статора между полюсов. Величина микрошага зависит от конкретного устройства, составляя от трети полного шага и менее. При работе в микрошаговом режиме точность позиционирования ШД значительно повышается, однако коммутация несколько усложняется.
Купить шаговые двигатели и средства управления ШД в Stepmotor
В каталоге Stepmotor представлен широчайший ассортимент шаговых двигателей, а также систем управления шаговыми двигателями. Если вам необходимо купить шаговый двигатель, контроллер шагового двигателя или блок управления шаговым двигателем в наличии по доступней цене, удобнее всего оформить заказ на нашем сайте. Обратите внимание: используйте только те модели коммутационных устройств, которые совместимы с выбранной вами моделью ШД! Если вы не знаете, как выбрать контроллер для шагового двигателя, проконсультируйтесь у технического специалиста, позвонив по телефону по России (звонок бесплатный) 8 800 5555 068 либо по электронной почте.
Купите шаговый двигатель и коммутатор шагового двигателя в Stepmotor. Все шаговые двигатели, блоки управления и драйверы ШД есть в наличии, отгрузка сразу после оплаты. Звоните 8 800 5555 068.
Какие электродвигатели лучше: серво или шаговые?
Одним из наиболее важных решений, которые принимают инженеры при разработке любого типа процесса управления движением, является выбор двигателя (в нашем случае электродвигателя). Правильный выбор двигателя, как по типу, так и по размеру, является обязательным условием эффективности работы конечной машины. Кроме того, «уложиться в бюджет» так же является не самой последней задачей.
Один из первых вопросов, на который нужно ответить при принятии решения: какой тип электродвигателя будет лучшим? Требуется ли для применения высокопроизводительный серводвигатель? Будет ли недорогой шаговый двигатель лучше? Или, может быть, стоит рассмотреть третий, средний вариант?
Ответы начинаются с потребностей конкретного приложения. Перед определением типа электрической машины, которая идеально подходит для любого конкретного применения, необходимо учесть множество факторов.
Требования
Сколько рабочих циклов в минуту нужно сделать двигателю? Какой крутящий момент нужен? Какая максимальная скорость требуется?
Эти критические вопросы не могут быть решены просто путем выбора двигателя с заданной мощностью из каталога.
Выходная мощность электрической машины представляет собой комбинацию крутящего момента и скорости, которая может быть рассчитана путем умножения скорости, крутящего момента и констант, вносящих поправки в режим работы электрической машины (естественно это все очень поверхностно. Необходимы точные математические расчеты для каждого типа электродвигателя).
Однако из-за характера этого расчета существует множество различных комбинаций крутящего момента и скорости (кратковременная работа с перегрузкой или недогрузкой), которые влияют на выходную мощность. Таким образом, разные двигатели с одинаковой номинальной мощностью могут работать по-разному из-за комбинации скорости и крутящего момента.
Инженеры должны знать, насколько быстро должен двигаться груз определенного размера, прежде чем уверенно выбирать двигатель, который будет работать лучше. Выполняемая работа также должна попадать в кривую крутящего момента / скорости двигателя. Эта кривая (механическая характеристика электродвигателя) показывает, как крутящий момент двигателя изменяется в зависимости от скорости. Используя предположения «наихудшего случая» (другими словами, определяя максимальный / минимальный крутящий момент и скорость, которые потребуются для работы), инженеры могут быть уверены, что выбранный двигатель имеет механическую характеристику, способную приводить в движение груз при этом не выходить с номинального режима работы (например, перегрев, если мощность электрической машины занижена).
Инерция нагрузки является еще одним фактором, который следует учитывать, прежде чем погрузиться в процесс принятия решения о выборе двигателя. Необходимо рассчитать коэффициент инерции, который представляет собой сравнение инерции нагрузки и инерции двигателя. Одно эмпирическое правило гласит, что если инерция нагрузки в 10 раз превышает инерцию ротора, то настройка электрический машины может быть куда более сложной и производительность производственного механизма может ухудшиться. Но это правило варьируется не только от технологии к технологии, но и от поставщика к поставщику и даже от продукта к продукту. Важность точности позиционирования рабочего органа также повлияет на это решение. Некоторые механизмы поддерживают соотношение 30: 1, в то время как прямые привода работают до 200: 1. Многим инженерам не нравится определять размер двигателя, который превышает соотношение 10 к 1.
Наконец, существуют ли физические ограничения, которые ограничивают тип электродвигателя. Электрические машины бывают разных форм и размеров. В некоторых случаях электродвигатели являются большими и громоздкими, и есть определенные операции, которые не могут вместить двигатель определенного размера. Прежде чем принять обоснованное решение о наилучшем типе машины, ее массогабаритные показатели должны быть оценены и поняты.
Как только инженеры ответят на все эти вопросы — скорость, крутящий момент, мощность, инерция нагрузки и массогабаритные показатели, — они смогут сосредоточиться на наиболее эффективном по размеру двигателе. Однако процесс принятия решений на этом не заканчивается. Инженеры также должны выяснить, какой тип электродвигателя лучше всего подходит для применения. В течение многих лет выбор типа сводился к одному из двух вариантов для большинства применений: серводвигатель или шаговый двигатель с разомкнутым контуром управления.
Серводвигатели и шаговые двигатели
Принципы работы серводвигателей и шаговых двигателей без обратной связи аналогичны. Однако между этими двумя «аналогичными» понятиями есть ключевые различия, которые инженеры должны понять, прежде чем решить, какой двигатель идеально подходит для данного применения.
В традиционных сервоприводах контроллер отправляет команды на привод двигателя через импульс управления или аналоговую команду, связанную с положением, скоростью или крутящим моментом. Некоторые элементы управления могут использовать метод на основе шины данных, который в новейших элементах управления обычно представляет собой метод связи на основе Ethernet. Затем система управления электропривода передает соответствующий ток на каждую фазу двигателя. Обратная связь от двигателя возвращается к системе управления двигателя, при необходимости, к главному контроллеру. Привод полагается на эту информацию для правильной коммутации фаз и для отправки точной информации о динамическом положении вала двигателя. Таким образом, серводвигатели считаются двигателями с замкнутым контуром и содержат встроенные энкодеры, а данные о положении вала часто передаются в контроллер. Эта обратная связь дает контроллеру много информации для управления электрической машиной. Контроллер может в различной степени вносить коррективы в операции, если что-то работает не так, как должно быть. Этот тип важной информации является преимуществом, которое не могут предложить шаговые двигатели без обратной связи.
Шаговые двигатели также работают по командам, посылаемым на электропривод, чтобы определять пройденное расстояние и скорость. Как правило, этот сигнал является командой шага и направления. Однако степперы с разомкнутым контуром управления не могут обеспечивать обратную связь, поэтому их органы управления не могут должным образом оценить ситуацию и внести коррективы для улучшения работы электрической машины.
Например, если крутящего момента двигателя недостаточно, чтобы выдержать нагрузку, двигатель может остановиться или пропустить определенные шаги. Когда это произойдет, машина не перейдет на следующую позицию. Учитывая характеристики разомкнутого контура шагового двигателя, это неточное позиционирование не будет адекватно передано обратно на контроллер, чтобы он мог вносить корректировать шаги в реальном времени.
Кажется, что серводвигатель имеет явные преимущества с точки зрения эффективности и производительности, так почему же кто-то выбрал шаговый двигатель? Есть несколько причин. Наиболее распространенным является цена; эксплуатационные бюджеты являются важными факторами при принятии любого проектного решения. По мере сокращения бюджетов необходимо принимать решения по сокращению ненужных расходов. Таким образом, если преимущества серводвигателя не оправдывают его стоимость, стандартного шагового двигателя может быть вполне достаточно.
С чисто эксплуатационной точки зрения шаговые двигатели значительно проще в эксплуатации, чем серводвигатели. Управление шаговым двигателем намного проще для понимания и настройки. Большинство обслуживающего персонала согласятся с тем, что если нет причин чрезмерно усложнять операции, не нужно ничего усложнять.
Преимущества двух разных типов двигателей очень разные. Серводвигатели идеальны, если вам нужен двигатель со скоростью более 3000 об / мин и высоким крутящим моментом. Тем не менее, для применения, которое требует только скорости нескольких сотен об / мин или меньше, серводвигатель не всегда является лучшим выбором. Серводвигатели могут быть не эффективными для низкоскоростных применений.
Низкоскоростные приложения — то, где шаговые двигатели «сияют» как лучшее возможное решение. Шаговые двигатели предназначены для работы на низкой скорости при высоком крутящем моменте. По самой природе их конструкции они могут управляться и работать до предела скорости. Ограничение скорости обычных шаговых двигателей обычно составляет менее 1000 об / мин, тогда как серводвигатели могут иметь номинальные скорости до 3000 об / мин и выше, иногда даже свыше 7000 об / мин.
Если «степпер» имеет «правильный» размер, он может быть идеальным выбором. Однако, когда шаговый двигатель работает в конфигурации с разомкнутым контуром и что-то идет не так, операторы могут не получить все данные, необходимые для решения возникшей проблемы.
Решение проблемы отсутствия обратной связи
За последние несколько десятилетий было предложено несколько различных подходов для решения традиционных проблем с шаговыми двигателями без обратной связи. Подсоединение двигателя к датчику при включении питания или даже несколько раз во время применения было одним из способов. Несмотря на простоту, это замедляет работу и не решает проблемы, возникающие во время обычных рабочих процессов.
Добавление обратной связи для определения, если двигатель «глохнет» или находится в нерабочем положении — это еще один подход. Инженеры в компаниях по управлению движением создали функции «обнаружения сваливания» и «поддержания положения». Было даже несколько подходов, которые пошли еще дальше, рассматривая шаговые двигатели так же, как сервоприводы, или, по крайней мере, имитируя их с помощью причудливых алгоритмов.
В широком спектре электрических машин — между сервоприводами и шаговыми двигателями с разомкнутым контуром управления — лежит несколько новая технология, известная как шаговый двигатель с замкнутым контуром. Это лучший и наиболее экономичный способ решения проблемы приложений, требующих точности позиционирования и низких скоростей. Применяя устройства обратной связи с высоким разрешением, чтобы «замкнуть петлю», инженеры могут наслаждаться «лучшим из обоих миров».
Шаговые двигатели с замкнутым контуром управления впитали в себя все преимущества шаговых двигателей: простота использования, простота и возможность стабильной работы на низких скоростях с точной остановкой. Кроме того, они по-прежнему предлагают возможности обратной связи серводвигателей. К счастью, это не должно сопровождаться самым большим недостатком сервопривода: большим ценником.
Ключ всегда был в принципе работы шаговых двигателей без обратной связи. У них обычно есть две катушки, иногда пять, с магнитным балансированием, происходящим между ними. Движение нарушает этот баланс, приводя к тому, что вал двигателя электрически отстает, но оператор не может знать, насколько он отстает. Точка остановки повторяется для шаговых машин с разомкнутым контуром, но не для всех нагрузок. Установка энкодера на степпер и замыкание контура обратной связи обеспечивает некоторое динамическое управление. Это позволяет операторам точно позиционировать рабочий орган при различных нагрузках.
Эти преимущества от использования шаговых двигателей с обратной связью для определенных применений резко увеличили популярность этих двигателей в сообществе инженеров электроприводчиков. В частности, в двух наиболее популярных отраслях — производстве полупроводников и медицинских приборов — наблюдается явное увеличение использования шаговых двигателей с обратной связью. Инженеры в этих отраслях должны точно знать, где расположен вал двигателя с нагрузкой, независимо от того, приводят ли они в действие ремень или шариковый винт. Обратная связь в этих электроприводах позволяет им точно знать, где находится вал. Они также могут обеспечить лучшую производительность, чем сервоприводы на более низких скоростях.
Как правило, любое приложение, которому требуется гарантированная производительность при меньших затратах, чем у серводвигателя, и возможность работать на относительно низких скоростях, является хорошим кандидатом для шаговых двигателей с обратной связью.
Помните, что операторы должны убедиться, что привод или рабочие.органы управления поддерживают шаговые двигатели с обратной связью. «Исторически», вы могли получить степпер с энкодером на задней панели, но система управления не поддерживала энкодеры. Вам необходимо будет провести калибровку обратной связи и убедиться, что контроллер электродвигателя получает обратную связь с допустимой задержкой. В новых шаговых приводах с обратной связью это не требуется. Шаговые приводы с замкнутым контуром могут динамически и автоматически управлять позицией и скоростью без привлечения контроллеров.
Контроллер для униполярных двигателей своими руками
Что такое шаговый двигатель?
Шаговый двигатель представляет собой электрическую машину, предназначенную для преобразования электрической энергии сети в механическую энергию. Конструктивно состоит из обмоток статора и магнитомягкого или магнитотвердого ротора. Отличительной особенностью шагового двигателя является дискретное вращение, при котором заданному числу импульсов соответствует определенное число совершаемых шагов. Наибольшее применение такие устройства получили в станках с ЧПУ, робототехнике, устройствах хранения и считывания информации.
В отличии от других типов машин шаговый двигатель совершает вращение не непрерывно, а шагами, от чего и происходит название устройства. Каждый такой шаг составляет лишь часть от его полного оборота. Количество необходимых шагов для полного вращения вала будет отличаться, в зависимости от схемы соединения, марки двигателя и способа управления.
Преимущества и недостатки шагового электродвигателя
К преимуществам эксплуатации шагового двигателя можно отнести:
- В шаговых электродвигателях угол поворота соответствует числу поданных электрических сигналов, при этом, после остановки вращения сохраняется полный момент и фиксация;
- Точное позиционирование – обеспечивает 3 – 5% от установленного шага, которая не накапливается от шага к шагу;
- Обеспечивает высокую скорость старта, реверса, остановки;
- Отличается высокой надежностью за счет отсутствия трущихся компонентов для токосъема, в отличии от коллекторных двигателей;
- Для позиционирования шаговому двигателю не требуется обратной связи;
- Может выдавать низкие обороты для непосредственно подведенной нагрузки без каких-либо редукторов;
- Сравнительно меньшая стоимость относительно тех же сервоприводов;
- Обеспечивается широкий диапазон управления скоростью оборотов вала за счет изменения частоты электрических импульсов.
К недостаткам применения шагового двигателя относятся:
- Может возникать резонансный эффект и проскальзывание шагового агрегата;
- Существует вероятность утраты контроля из-за отсутствия обратной связи;
- Количество расходуемой электроэнергии не зависит от наличия или отсутствия нагрузки;
- Сложности управления из-за особенности схемы
Добавить ссылку на обсуждение статьи на форуме
РадиоКот >Схемы >Цифровые устройства >Автоматика >
Теги статьи: | Добавить тег |
Пропорциональное управление шаговым двигателем
Автор: МКС, Опубликовано 14.08.2013 Создано при помощи КотоРед.
Описываемое ниже устройство позволяет управлять униполярным шаговым двигателем типа СДХ 1,8/40 и аналогичным. Схема электрическая принципиальная блока управления изображена на рис.1. Он выполнен на базе микроконтроллера ATmega 8 работающего от встроенного тактового генератора на частоте 2 МГц. В качестве ключей, коммутирующих обмотки шагового двигателя М1, использованы логические элементы микросхем DD2, DD3 типа SN75452 (русский аналог — К155ЛА18). Это микросхемы – повышенной мощности с открытым коллекторным выходом.
Блок поддерживает пропорциональное и дискретное управление мотором. В режиме пропорционального управления — угол поворота ротора двигателя, задается переменный резистором R1. В режиме дискретного управления — вращение двигателя «влево», «вправо», «стоп» осуществляется кнопками S1 и S2. Кроме этого, в схеме можно выбирать шаговый или полушаговый режим работы, а также скорость вращения двигателя. Установкой перемычки X4 выбирается пропорциональное управление, а при ее отсутствии – дискретное управление. Перемычкой X5 определяется шаговый и полушаговый режим работы двигателя. Все эти режимы работы инициализируются только в момент включения схемы или сброса микроконтроллера. Поэтому нужные перемычки необходимо установить перед включением питания. В микроконтроллере задействованы два канала АЦП. На вход одного из них – ADC5 (28 ножка) подключен подстроечный резистор R3. С его помощью регулируется скорость вращения двигателя при любом режиме работы схемы. В режиме пропорционального управления задействуется еще один канал АЦП – ADC4 (27 ножка). На его вход через интегрирующую цепь R2, C1 подключен переменный резистор R1, который задает угол поворота ротора мотора. Скорость работы АЦП в данной управляющей программе осуществляет преобразования с 8 — битной точностью. Поэтому положение ручки переменного резистора R1 программа контроллера условно разбивает на 255 шагов. После включения питания, программа выполняет калибровку положения ротора шагового двигателя. Для этого, перед началом работы, автоматически выполняется команда «вращение двигателя влево» до тех пор, пока флажок, закрепленный на роторе мотора, не «доедет» до концевого датчика (оптопары) VT1, HL1. При поступлении сигнала с датчика VT1, программа обнуляет регистр-счетчик количества шагов двигателя, измеряет напряжение на выходе переменного резистора R1, преобразует его в цифровой код в диапазоне от 0 до 255, записывает его в старший байт регистра результата преобразования АЦП (это количество шагов переменного резистора R1), а затем сравнивает его содержимым регистра-счетчика количества шагов двигателя. Если число шагов резистора R1 больше чем шагов двигателя М1, то выдается команда: «вращение двигателя вправо». При этом с каждым шагом ротора происходит инкремент счетчика шагов двигателя и его сравнение с числом в регистре АЦП (шаги резистора R1). Когда число шагов двигателя станет равно числу в регистре АЦП, выполняется команда: «стоп». Поворачивая ручку резистора R1 «влево», уменьшается уровень постоянного напряжения на входе АЦП. При этом число в регистре результата преобразования АЦП станет меньше чем текущее значение регистра — счетчика шагов. В этом случае выдается команда: «вращение двигателя влево». С каждым шагом двигателя происходит декремент регистра-счетчика шагов двигателя до тех пор, пока числа в обоих регистрах не станут равны. Таким образом, вращая ручку переменного резистора R1, ротор двигателя поворачивается в том же направлении и на такое же количество шагов. Отмечу, что предлагаемый двигатель совершает один оборот на 360° за 200 шагов (т.е. один шаг – 1,8 град.). Следовательно, в данной схеме, за 255 условных шагов от переменного резистора R1, ротор мотора сделает более одного оборота и повернется на угол 459°. Поэтому для ограничения угла поворота двигателя используется концевой датчик (оптопара) для крайнего правого положения ротора. Он выполнен на элементах VT2, HL2. Для более точного копирования угла поворота ручки переменного резистора ротором двигателя необходимо установить в разрыв вывода сопротивления R1, подключенного к «+5 В», ограничительный резистор Rогр.. Его номинал следует тщательно подобрать (в пределах от 1 до 3 кОм). В управляющей программе предусмотрена функция повторной калибровки положения ротора двигателя в процессе работы устройства. Например, в случае проскальзывания шагов ротора, по какой либо причине (двигатель перегружен, зацепился за что-то и т.д.), можно повернуть ручку переменного резистора R1 в крайнее левое положение и подождать 2 — 3 секунды. При этом происходит проверка положения флажка ротора с помощью оптического датчика крайнего левого положения VT1. Если флажок не зашел в зону срабатывания датчика, значит в процессе работы произошло смещение шагов ротора мотора М1 относительно шагов резистора R1. В этом случае запускается программа повторной калибровки системы, и работа устройства восстанавливается. Для работы схемы в режиме пропорционального управления оптический датчик крайнего левого положения и калибровки VT1 — обязателен. Датчик крайнего правого положения VT2 можно не ставить, если нет необходимости в ограничении положения ротора при вращении вправо. Но, тогда, необходимо 14 вывод микроконтроллера подключить к +5 В. При пропорциональном управлении двигателем в полушаговом режиме ротор совершает поворот в пределах от 0° до 230°. Мощность мотора уменьшается, зато увеличивается плавность хода. Это необходимо учитывать при выборе этого режима работы. В режиме дискретного управления вращение «вправо» осуществляется кнопкой S1, вращение «влево» — кнопкой S2. Если кнопки не нажаты, выполняется команда «стоп». Программа калибровки двигателя и переменный резистор R1 в этом режиме не используются. Оптические датчики VT1, HL1 и VT2, HL2 работают как ограничители крайних положений ротора двигателя М1. Если ограничение вращения не требуется, то эти оптопары можно не ставить. Но при этом необходимо выводы 14, 15 микроконтроллера припаять к +5В. В случае необходимости контроля над работой шагового двигателя другими (внешними) устройствами, в схеме предусмотрены специальные выходы на старших пинах порта D микроконтроллера. На выводе PD7 «step» формируется кратковременный импульс прямоугольной формы при каждом шаге двигателя (может пригодиться для внешнего счетчика шагов). Вывод PD6 «rewers» – сигнал реверса двигателя (лог. 0 — вращение вправо, лог. 1 – вращение влево). При обнулении (сбросе) программного счетчика — регистра количества шагов, на выводе PD5 формируется кратковременный импульс «reset». Эти выходы работают и в режиме пропорционального управления. Управляющая программа для микроконтроллера написана на языке Ассемблер. Файл прошивки прилагается. Кроме этого, необходимо запрограммировать фьюзы: CKSEL0=0, CKSEL1=1, CKSEL2=0, CKSEL3=0, SUT0=0, SUT1=1, SKOPT=1.
Печатная плата блока управления изображена на рис. 2. Она изготовлена из одностороннего фольгированного стеклотекстолита размерами 42 × 58 мм. В прикрепленном файле с расширением .lay прилагается рисунок для «лазерно-утюжной» технологии изготовления платы. Расположение элементов схемы на печатной плате приведено на рисунке 3.
После установки микросхемы – стабилизатора DA1, к ней, необходимо прикрутить радиатор площадью не менее 4 см². Собранная конструкция представлена на фото. 1 и фото. 2.
Как уже отмечалось, логические микросхемы SN75452 можно заменить русским аналогом — К155ЛА18. Раньше они использовались в старых пятидюймовых флоппи дисководах вместе с предлагаемым шаговым двигателем.
Предлагаемый блок может быть использован в различных устройствах с электромеханическим приводом. Например, у меня два таких модуля с шаговыми двигателями пропорционально управляют видеокамерой наблюдения с удаленным доступом по двум осям координат. Один мотор поворачивает камеру по оси Х, другой – по оси Y (фото. 3).