0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Автономный контроллер для шагового двигателя своими руками

Драйвер шагового двигателя — устройство, виды и возможности

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

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

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

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

Управление шаговым двигателем может быть реализовано по одному из четырех основных алгоритмов: попеременное включение фаз, управление с перекрытием фаз, полушаговое управление или микрошаговое управление.

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

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

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

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

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

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

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

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

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

Контроллер шагового двигателя

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

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

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

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

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

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

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

Для достижения более высокого вращающего момента применяют двойной импульс — в две соседние катушки подается одновременно по импульсу. И если для полного оборота нужно 48 шагов, то опять же нужно 48 таких двойных импульсов, каждый приведет к шагу в 7,5 градусов но с на 40% большим моментом нежели в режиме одиночных импульсов. Скомбинировав оба способа можно получить 96 импульсов разделив шаги — получится 3,75 градуса на шаг — это комбинированный режим управления (полушаговый).

Если Вам понравилась эта статья, поделитесь ссылкой на неё в социальных сетях. Это сильно поможет развитию нашего сайта!

Подписывайтесь на наш канал в Telegram!

Просто пройдите по ссылке и подключитесь к каналу.

Не пропустите обновления, подпишитесь на наши соцсети:

Драйверы и контроллеры ШД

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

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

Читать еще:  Характеристика крайслеровского двигателя на газель

Виды драйверов

Одноканальные используются для управления одним ШД. Применяются при построении станков, где используются двигатели типоразмера 86 мм с током управления выше 4А.

Многоканальные представляют собой управляющую плату, на которой размещены одноканальные драйверы в количестве, соответствующем количеству приводов. Используются в станках с ШД типоразмером до 57 мм.

Характеристики драйверов

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

Базовые критерии выбора:

  • · выходное напряжение и ток. Должны соответствовать характеристикам двигателя;
  • · поддерживаемый протокол. Выбирается в соответствии с протоколом контроллера;
  • · деление шага. Уменьшение увеличивает плавность хода, но снижает максимальные обороты ротора и ведет к потере крутящего момента. Для решения стандартных задач хватает шага 1/64.

Дополнительные функции:

  • · подавление резонанса. Использование драйвера без этой функции приемлемо только для двигателей типоразмером до 86 мм. Алгоритмы работы функции прописываются производителем под конкретные ШД и частоты, но драйверы Leadshine серии MD, предлагаемые нашей компанией, настраиваются на один из трех диапазонов резонансных частот;
  • · снижение тока в режиме простоя. Предотвращает перегрев двигателя и уменьшает энергопотребление;
  • · плавный пуск. Постепенное увеличение напряжения при пуске ШД не приводит к ударам, как в случае с подачей тока полным напряжением;
  • · морфинг – способность драйвера к плавному переходу с микрошагов на полный шаг на высоких оборотах. В режиме микрошагов крутящий момент снижается. Инерционность ротора позволяет работать в режиме полного шага, момент в этом случае повышается.

Контроллеры ШД

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

Многоканальные драйверы ШД –устройство объединяющее в себе драйвера ШД и плату коммутации. Подключаются к ПК непосредственно управляют ШД. Также в состав контроллера входят такие функциональные возможности как таймер СОЖ, конвертор ШИМ для инвертора, силовые реле, разъемы для подключения датчиков ограничения линейных перемещений. Драйвера могут исполняться на различное количество ШД.

Сигналы управления драйвера ШД: PUL/DIR, STEP/DIR, CW/CCW. Управление шаговыми драйверами DM860H, DM556, TB6600. с Arduino.

Общие сведения:

Шаговый двигатель это бесколлекторный двигатель, ротор которого вращается не плавно, а шагами (дискретно). Один оборот ротора (360°) состоит из определённого количества шагов. Количество полных шагов в одном обороте указывается в технической документации двигателя.

Например, ротор шагового двигателя 17HS1352-P4130, за один полный шаг, поворачивается на 1,8°. Значит для поворота ротора на 360° двигатель должен совершить 200 полных шагов.

Для совершения одного полного шага на обмотки двигателя поступает серия сигналов от драйвера (как в полношаговом «1», так и в микрошаговых режимах «2», «4», «8», «16»).

С принципом работы шаговых двигателей можно ознакомиться в разделе Wiki — ШД.

Микрошаг:

Большинство драйверов позволяют разделить полный шаг двигателя на несколько микрошагов. Выбор микрошага устанавливается согласно таблице в инструкции к драйверу. В таблице указывается количество микрошагов на полный шаг «Microstep» (1/2/4/8/16/32/. ) и/или количество тактов на полный оборот вала «Pulse/rev» (200/400/800/1600/3200/6400/. ).

Если для целого поворота ротора двигателя в режиме 1 микрошаг на полный шаг требуется 200 тактов, то в режиме 4 микрошага на полный шаг, потребуется уже 800 тактов.

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

Ограничение тока фазы:

Большинство драйверов позволяют ограничить ток фазы (ток протекающий через обмотки двигателя). Выбор тока фазы осуществляется согласно таблице в инструкции к драйверу. В таблице указывается действующий ток «Current» и/или пиковый ток «PK Current». Чем выше ток, тем выше отдаваемый момент (сила двигателя).

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

У некоторых драйверов ограничение тока осуществляется поворотом потенциометра.

Ток удержания:

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

Снижение тока удержания приводит к снижению нагрева двигателя при его удержании.

Силовые выводы драйвера:

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

  • Входы «VCC», «GND» / «+V», «GND» / «AC+», «AC-» — предназначены для получения напряжения питания шагового двигателя.
  • Выводы «A+» и «A-» — предназначены для подключения первой обмотки шагового двигателя.
  • Выводы «B+» и «B-» — предназначены для подключения второй обмотки шагового двигателя.

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

Драйверы DM860H, DM556, TB6600 позволяют работать только с биполярными двигателями. Двигатели с 4 выводами подключаются по схеме А. Двигатели с 6 выводами подключаются по схеме Б или В. Двигатели с 8 выводами подключаются по схеме Г или Д.

Запрещается подключать или отключать обмотки двигателя на включенном драйвере!

Сигналы управления STEP/DIR (PUL/DIR):

  • Вход драйвера «STEP» (он же «PULSE») — предназначен для получения тактовых импульсов. За один импульс ротор двигателя поворачивается на один микрошаг. Вход может работать по фронту или спаду импульса. Чем выше частота импульсов, тем выше скорость вращения ротора.
  • Вход драйвера «DIR» — предназначен для выбора направления вращения двигателя («0» — в одну сторону, «1» — в другую сторону). Смена состояния вывода «DIR» должна осуществляться при отсутствии импульсов на выводе «STEP».
  • Вход драйвера «ENABLE» — разрешает работу двигателя. У большинства драйверов данный вход является инверсным, работа двигателя разрешена при отсутствии напряжения на входе. Некоторые драйверы позволяют вообще не подключать этот вход. Если работа двигателя запрещена, то его обмотки электрически отключаются и вал двигателя не удерживается.

  • Двигатель отключён если на входе «ENABLE» есть напряжение.
    Сигналы на входах «STEP» и «DIR» игнорируются драйвером. Вал двигателя освобождён.
  • Вал поворачивается на один микрошаг с каждым импульсом на входе «STEP», при условии что на входе «ENABLE» нет напряжения.
    Направление поворота вала зависит от состояния на входе «DIR».
  • Вал двигателя удерживается в неподвижном состоянии если на входе «ENABLE» нет напряжения и на вход «STEP» не подаются импульсы.
  • t1: После снятия напряжения со входа «ENABLE» должно пройти не менее 5мкс до изменения уровня на входе «STEP» или «DIR».
  • t2: После изменения состояния на входе «DIR» должно пройти не менее 5мкс до подачи импульса на вход «STEP».
  • t3, t4: Длительность импульса или паузы на входе «STEP» не должна быть меньше 2,5мкс.
  • t5: Автоматическое снижение тока удержания происходит через 1-2 сек после подачи последнего импульса на вход «STEP». Время зависит от типа драйвера.
Читать еще:  Что делать когда двигатель стуканул

Сигналы управления CW/CCW:

(Данные сигналы не поддерживаются драйверами DM860H, DM556, TB6600)

  • Вход драйвера «CW» — предназначен для получения тактовых импульсов. За один импульс ротор двигателя поворачивается на один микрошаг. Вход может работать по фронту или спаду импульса. Чем выше частота импульсов, тем выше скорость вращения ротора.
  • Вход драйвера «CCW» — выполняет те же действия что и вход «CW», но ротор двигателя поворачивается в другую сторону.
  • Вход драйвера «ENABLE» — разрешает работу двигателя. У большинства драйверов данный вход является инверсным, работа двигателя разрешена при отсутствии напряжения на входе. Некоторые драйверы позволяют вообще не подключать этот вход. Если работа двигателя запрещена, то его обмотки электрически отключаются и вал двигателя не удерживается.

  • Двигатель отключён если на входе «ENABLE» есть напряжение.
    Сигналы на входах «CW» и «CCW» игнорируются драйвером. Вал двигателя освобождён.
  • Вал поворачивается на один микрошаг с каждым импульсом на входе «CW» или «CCW», при условии что на входе «ENABLE» нет напряжения.
    Направление поворота вала зависит от того, на какой вход поступают импульсы.
  • Вал двигателя удерживается в неподвижном состоянии если на входе «ENABLE» нет напряжения и на входы «CW» и «CCW» не подаются импульсы.
  • t1: После снятия напряжения со входа «ENABLE» должно пройти не менее 5мкс до подачи импульса на вход «CW» или «CCW».
  • t2: После последнего импульса на одном входе должно пройти не менее 5мкс до подачи импульса на дрогой вход.
  • t3, t4: Длительность импульса или паузы не должна быть меньше 2,5мкс.
  • t5: Автоматическое снижение тока удержания происходит через 1-2 сек после подачи последнего импульса. Время зависит от типа драйвера.

Подключение управляющих выводов драйвера:

Для подключения управляющих выводов можно использовать одну их следующих схем:

Допускается подключать драйвер к контроллеру без использования сигнала ENABLE, тогда выводы ENA+ и ENA- остаются свободными (не подключёнными).

  • При уровне логической «1» = 5В, все сопротивления R исключаются из схемы.
  • При уровне логической «1» = 12В, все сопротивления R равны 1кОм.
  • При уровне логической «1» = 24В, все сопротивления R равны 2кОм.

Подключение драйвера к Arduino:

Так как логические уровни Arduino UNO равны 5В, то при подключении управляющих выводов к драйверу, ограничивающие сопротивления R не нужны.

Для подключения драйвера к Arduino воспользуемся схемой где выводы PUL-, DIR-, ENA- подключены к GND контроллера (правая схема на картинке выше).

Если подключить драйвер к Arduino без использования сигнала ENABLE, оставив выводы ENA+ и ENA- не подключёнными, то приведённый ниже скетч не сможет освобождать вал. Вал двигателя будет удерживаться всё время, пока он не вращается.

Выводы драйвера ENA+, DIR+ и PUL+ можно подключить к любым выводам Arduino, их номера указываются в начале скетча. В примере это выводы 2, 3 и 4 соответственно.

Если для подключения драйвера воспользоваться схемой где выводы PUL+, DIR+, ENA+ подключены к 5V контроллера (левая схема на картинке выше), то в скетче нужно изменить логические уровни устанавливаемые функциями digitalWrite().

Управление двигателем при помощи Arduino:

Для работы скетча установите микрошаг 1/4, что соответствует 800 тактов на 1 оборот. Микрошаг устанавливается DIP-переключателями драйвера согласно таблице на его корпусе.

Скетч постоянно повторяет 4 действия:

  • Поворот вала на 2 полных оборота в одну сторону.
  • Остановка двигателя на 5 секунд с удержанием вала.
  • Поворот вала на 2 полных оборота в другую сторону.
  • Остановка двигателя на 5 секунд с освобождением вала.
  • Движение вала на 2 оборота в одну сторону:
    Перед началом движения вала мы разрешаем работу двигателя (установив 0 на выводе ENA) и выбираем направление движения (установив 0 или 1 на вывод DIR), далее выполняем движение подачей импульсов на вывод PUL в теле цикла for. Каждый импульс поворачивает ротор на угол одного микрошага. Микрошаг установлен DIP-переключателями в положение 800 тактов на полный оборот. Код цикла выполняется 1600 раз, значит вал повернётся на 2 оборота.
  • Остановка вала с удержанием:
    Двигатель не вращается, если на вывод PUL не поступают импульсы. Значит обычная задержка на 5000 мс приведёт к остановке двигателя на 5 секунд. Так как работа двигателя была разрешена (на выводе ENA ранее был установлен 0), то через обмотки двигателя будет протекать ток удержания вала.
  • Движение вала на 2 оборота в другую сторону:
    Направление движения вала определяется логическим уровнем на выводе DIR. Ранее на нём был установлен 0, значит теперь нужно установить 1. Далее подачей импульсов на вывод PUL мы заставляем вращаться вал, но теперь в другую сторону.
  • Остановка вала без удержания:
    В предыдущий раз мы останавливали двигатель прекращая подавать импульсы на вывод PUL, но не запрещали работу двигателя, в результате через его обмотки протекал ток удержания вала. Теперь мы запретим работу двигателя установив на выводе ENA уровень логической 1, что приведёт к исчезновению токов в обмотках двигателя. Теперь в течении 5 секунд, двигатель будет не только остановлен, но и его вал можно свободно вращать руками.

Управление шаговым двигателем по прерываниям от 2 таймера Arduino:

Данный скетч выполняет те же действия что и предыдущий. Но подача импульсов на вывод PUL осуществляется не в цикле основного кода, а по прерываниям от таймера.

Как только переменной step присваивается число отличное от 0, то на драйвер начинают поступать импульсы. Значение step убывает с каждым поданным импульсом, пока не достигнет 0, что приведёт к остановке вала двигателя. Частота подачи импульсов в Гц указывается функцией funcSetTimer2().

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

Код работает на Arduino UNO, Pro Mini, Nano, Mega.

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

Шаговые двигатели – это бесщеточные двигатели постоянного тока, которую могут вращаться от 00 до 3600 дискретными шагами. С каждым управляющим сигналом ось такого двигателя поворачивается на фиксированное значение (шаг). Управление вращением подобных двигателей осуществляется последовательностью специальных сигналов. В отличие от серводвигателей шаговые двигатели могут управляться контактами ввода-вывода общего назначения, а не только контактами ШИМ модуляции, и могут вращаться на (+3600) и (-3600). Последовательность следования управляющих сигналов определяет будет ли шаговый двигатель вращаться по часовой или против часовой стрелки. Для управления скоростью вращения такого двигателя необходимо просто изменять уровень управляющих сигналов. У шаговых двигателей есть несколько режимов шагового (дискретного) вращения – на полный шаг, на половину шага и на микрошаг.

Читать еще:  2112 двигатель неустойчив на холостом ходу

В этом проекте мы будем подключать шаговый двигатель 28BYJ-48 к микроконтроллеру ATmega16 (семейство AVR), используя программу Atmel Studio 7.0. Шаговый двигатель будет работать при напряжении питания 5В. Мы будем подключать шаговый двигатель к микроконтроллеру с помощью драйверов электродвигателей ULN2003 и L293 (по отдельности). Оба будут запитываться напряжением 5В.

Примеры шаговых двигателей

Как следует из их названия, вращение шаговых электродвигателей представляет собой серию коротких шагов. В этом и состоит их отличие от двигателей свободного вращения — шаговый двигатель сделает столько шагов, сколько ему будет задано, и вы будете точно знать, сколько он их сделал. Это одна из причин, почему шаговые двигатели широко применяются как в обычных, так и в ЗD-принтерах. В обычных принтерах они точно позиционируют бумагу, а в ЗD — рабочий столик и сопло.

На представленном рисунке представлены три образца шаговых электродвигателей. Миниатюрные электродвигатели типа тех, что показан слева, служат для перемещения элементов объектива в компактной фотокамере или смартфоне. В центре находится шаговый мотор-редуктор с питанием 5В — в его корпусе заключен и шаговый электродвигатель, и редуктор. Справа изображен шаговый электродвигатель, типичный дл я принтеров.

Принцип работы биполярного шагового электродвигателя

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

Ротор шагового электродвигателя выполнен в форме намагниченных зубцов с чередующимися северным (С) и южным (Ю) полюсами (зубцов на роторе обычно гораздо больше, чем показано на представленном рисунке). Каждую катушку можно подключить так, что она будет намагничена или как северный полюс, или как южный, — в зависимости от направления тока в катушке. Катушки 1 и 3 работают совместно так, что когда катушка 1 будет южным полюсом, катушка 3 также будет южным полюсом. То же самое относится и к катушкам 2 и 4.

Начнем с варианта рисунка под буквой «а» — когда катушка 1 , а значит, и катушка 3 запитаны так, что становятся южными полюсами (Ю), вследствие того, что разноименные полюса притягиваются, а одноименные отталкиваются, ротор поворачивается против часовой стрелки до тех пор, пока ближайшие зубцы ротора с намагниченностью северного полюса (С) не поравняются с катушками 1 и 3 (как показано на «б»).
Чтобы продолжить вращение против часовой стрелки, на следующем шаге (рисунок «в») необходимо подать ток в катушки 2 и 4 так, чтобы они стали северными полюсами (С). Тогда ближайшие зубцы ротора с намагниченностью Ю подтянутся к катушкам 2 и 4 (рисунок «г»).

Каждое такое действие проворачивает ротор электродвигателя на один шаг. Для продолжения вращения против часовой стрелки в катушке 1 снова нужно создать намагниченность С (см. представленную таблицу).

Таблица 1. Последовательность действий при вращении шагового двигателя против часовой стрелки

Катушки 1 и 3Катушки 2 и 4
Ю
С
С
Ю

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

Таблица 2. Уточненная последовательность переключения катушек при вращении шагового двигателя

Катушки 1 и 3Катушки 2 и 4
ЮС
СС
СЮ
ЮЮ

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

Необходимые компоненты

  1. Микроконтроллер ATmega16 (купить на AliExpress).
  2. Программатор AVR-ISP (купить на AliExpress), USBASP (купить на AliExpress) или другой подобный.
  3. Кварцевый генератор 16 МГц (купить на AliExpress).
  4. Шаговый двигатель 28BYJ-48 (купить на AliExpress).
  5. Драйвер двигателей ULN2003 (купить на AliExpress) или L293D (купить на AliExpress).
  6. Конденсатор 100 нФ (2 шт.) (купить на AliExpress).
  7. Конденсатор 22 пФ (2 шт.) (купить на AliExpress).
  8. Кнопка.
  9. Светодиод (купить на AliExpress).
  10. Макетная плата.
  11. Соединительные провода.
  12. Источник питания с напряжением 5 Вольт.

Маркировка контактов шагового двигателя

Представлена на следующем рисунке.

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

Назначение контактов микросхемы ULN2003 (драйвера двигателей) приведено на следующем рисунке.

Внешний вид этого драйвера двигателей выглядит следующим образом:

Внешний вид драйвера мотора L293D приведен на следующем рисунке:

Работа схемы

В следующих двух таблицах представлены схемы соединений входных и выходных контактов драйверов моторов ULN2003 или L293D с микроконтроллером AVR ATmega16 и шаговым электродвигателем.

Atmega16ULN2003L293D
A0IN1(PIN1)IN1(PIN2)
A1IN2(PIN2)IN2(PIN7)
A2IN3(PIN3)IN3(PIN10)
A3IN4(PIN4)IN4(PIN15)
Шаговый двигательULN2003L293D
OrangeOUT1(PIN16)OUT1(PIN3)
YellowOUT2(PIN15)OUT2(PIN6)
PinkOUT3(PIN14)OUT3(PIN11)
BlueOUT4(PIN13)OUT4(PIN14)

Схема устройства с драйвером мотора ULN2003 приведена на следующем рисунке.

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

Внешний вид устройства с использованием ULN2003 приведен в начале статьи, а с использованием L293D он будет выглядеть следующим образом:

Соедините все компоненты устройства в соответствии с приведенной схемой соединений (одной из двух). Для управления шаговым двигателем мы будем использовать PORTA микроконтроллера Atmega16. К контактам шагового двигателя нет необходимости подключать питание – для управления им нам понадобятся только контакты его катушек (coil pins) – верно для ULN2003, для L293D немного по другому. Очень важен порядок контактов для того чтобы шаговый двигатель работал корректно. Для микросхемы ULN2003 используются четыре ее входа и четыре ее выхода – входы соединяются с контактами PORTA микроконтроллера, а выходы – с сигнальными контактами шагового двигателя. Также подсоедините кнопку к контакту сброса (Reset pin) чтобы иметь возможность осуществлять сброс микроконтроллера Atmega16 всегда, когда нам это понадобится. Подсоедините к микроконтроллеру кварцевый генератор. Все устройство должно быть запитано напряжением 5В.

Исходный код программы на языке С (Си) с пояснениями

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector