Шаговый двигатель 4 провода подключение

Как запустить шаговый двигатель с 4 проводами

Шаговый двигатель 4 провода подключение

Драйверы работают с 2/4-х фазными (биполярными или униполярными) ШД имеющими 4, 6 или 8 выводов (обратите внимание, не поддерживается работа с униполярными 5-ти выводными ШД).

Длина проводов идущих к ШД от драйвера не должна превышать 10 метров. Более длинные провода могут привести к сбоям в работе драйвера (из-за мощных электромагнитных помех, создаваемых в момент коммутации обмоток ШД).

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

Под землей понимается масса станка, соединенная с заземленной шиной.

К драйверу можно подключить 4,6 и 8-ми выводные ШД. Схемы подключения таких шаговых двигателей приведены на рисунке. Рассмотрим по порядку преимущества и недостатки этих методов:

  • ШД с 4-мя выводами. Это биполярный ШД, подключение однозначно. Фазность подключения обмоток не имеет значения.
  • ШД с 6-ю выводами. Это либо биполярный ШД с отводом третьего проводника от середины обмотки, либо униполярный 4-х фазный ШД с внутренним объединением проводников двух соседних обмоток. Подключение типа А – момент ↑1.4 раза, момент более стабилен на низких частотах. Подключение типа В – ШД работает с характеристиками, заявленными в описании (момент, ток), момент более стабилен на высоких частотах.
  • ШД с 8-ю выводами. Это униполярный 4-х фазный ШД. Подключение типа А — ШД работает с характеристиками, заявленными в описании (момент, ток), момент более стабилен на высоких частотах. Подключение типа B – момент ↑1.4 раза, момент более стабилен на низких частотах (относительно А). Подключение типа C – момент ↑1.96 раза, момент более стабилен на высоких частотах (относительно А).

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

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

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

Виды шаговых двигателей по типу ротора:

По типу ротора, шаговые двигатели делятся на: двигатели с постоянными магнитами, реактивные двигатели и гибридные двигатели.

  • Двигатель с постоянными магнитами (ротор из магнитотвердого материала). На роторе установлен один, или несколько, постоянных магнитов. Количество полных шагов в одном обороте таких двигателей, зависит от количества постоянных магнитов на роторе, и количества электромагнитов на статоре. Обычно в одном обороте от 4 до 48 шагов (один шаг от 7,5° до 90° ).
  • Реактивный двигатель (ротор из магнитомягкого материала). Еще такие двигатели называют двигателями с переменным магнитным сопротивлением. Ротор не имеет постоянных магнитов, он выполнен из магнитомягкого материала в виде многоконечной звезды. Данные двигатели встречаются редко, так как у них наименьший крутящий момент, по сравнению с остальными, при тех же размерах. Количество полных шагов в одном обороте таких двигателей, зависит от количества зубцов на звезде ротора, и количества электромагнитов на статоре. Обычно в одном обороте от 24 до 72 шагов (один шаг от 5° до 15°.)
  • Гибридный двигатель (совмещает технологии двух предыдущих двигателей). Ротор выполнен из магнитотвердого материала (как у двигателя с постоянными магнитами), но имеет форму многоконечной звезды (как у реактивного двигателя). Количество полных шагов в одном обороте таких двигателей, зависит от количества постоянных магнитов на звезде ротора, и количества электромагнитов на статоре. Количество шагов в одном обороте таких двигателей может доходить до 400 (один шаг от 0,9°).

Какой тип шагового двигателя у меня?

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

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

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

Управление шаговым двигателем

Шаговый двигатель 4 провода подключение

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

   Шаговые двигатели являются частью класса моторов, известных как безщеточные двигатели. Обмотки шагового двигателя являются частью статора.

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

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

Типы шаговых двигателей

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

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

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

   Гибридный мотор — это сочетание двух предыдущих.

У его намагниченного центрального вала имеется два набора зубов для двух магнитных полюсов, которые затем выстраиваются в линию с зубами вдоль электромагнитов.

В связи с двойным набором зубов на центральном валу, гибридный двигатель имеет наименьший доступный размер шага и поэтому является одним из наиболее популярных типов шаговых двигателей.

Униполярные и биполярные шаговые двигатели

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

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

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

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

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

Подключение шаговых двигателей

   Разные шаговые двигатели могут иметь разное количество проводов, как правило, 4, 5, 6, или 8. 4-х проводные линии могут поддержать только биполярные шаговые двигатели, поскольку у них нет центрального провода.

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

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

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

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

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

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

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

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

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

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

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

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

Шаговый двигатель 4 провода подключение

Шаговый униполярный двигатель nema 23 57HM56-2006 имеет шесть выводов, и что бы подключить его к RAMPS 1.4 или любой другой плате нам потребуется переделать его из униполярного в биполярный.

Шаговый униполярный двигатель NEMA 23 57HM56-2006 имеет ток 2 А. Обычный  драйвер ШД A4988 годится, но с ним двигатель не будет выдавать заявленных 10 кг момент, поэтому я буду использовать драйвер ШД TB6600 и плату MKS CD 57/86, что бы подключить его к ramps.

Немного теории

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

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

Таким образом, в униполярном двигателе используется другой способ изменения направления магнитного поля. Средние выводы обмоток могут быть объединены внутри двигателя, поэтому такой двигатель может иметь 5 или 6 выводов.

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

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

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

На схеме ниже показаны два двигателя. Слева униполярный, 6 выводов. Справа биполярный, 4 вывода.

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

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

Для наглядности этого процесса, мы собрали для Вас тестовый стенд, который включает в себя: ramps 1.4, arduino mega 2560, Драйвер шагового двигателя TB6600, плата МКС CD 57/86 для внешнего драйвера ШД TB6600, LCD Display 2004, шаговый двигатель  Nema 23 57HM56-2006.

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

                                                 

Пошаговая инструкция для чайников

1) Устанавливаем плату MKS CD 57/86 в штатный разъем ramps 1.4 для шагового драйвера, соблюдая полярность.

2) Подключаем драйвер шагового двигателя TB6600 к плате MKS CD 57/86 кабелем с разъемом PH-4 и PH-4.

3) Подключаем шаговый двигатель NEMA 23 57HM56-2006 к драйверу ШД TB6600. Зеленый провод в разъём 1A, черный в разъём 1B, красный в разъём 2A, синий в разъём 2B. Желтый и белый провода лучше заизолировать, чтоб лишний раз с бубном не прыгать.

4) Подключаем питание от 8-45 В к драйверу шагового двигателя TB6600.

Предыдущие четыре шага на фото ниже.

Подключаем LSD дисплей и питание к ramps 1.4.

Запускаем двигатель и радуемся результату.

2) Второй вариант. Подключаем двигатель к драйверу не используя крайние выводы в обмотках, то есть черный и синий. Таким способом подключения мы получим высокую приемистость.

                                                

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

1) Устанавливаем плату MKS CD 57/86 в штатный разъем ramps 1.4 для шагового драйвера, соблюдая полярность.

2) Подключаем драйвер шагового двигателя TB6600 к плате MKS CD 57/86 кабелем с разъемом PH-4 и PH-4.

3) Подключаем шаговый двигатель NEMA 23 57HM56-2006 к драйверу ШД TB6600. Зеленый провод в разъём 1A, желтый в разъём 1B, белый в разъём 2A, красный в разъём 2B. Черный и синий провода лучше заизолировать, не ну если Вам нравится прыгать с бубном то не делайте этого.

4) Подключаем питание от 8-45 В к драйверу шагового двигателя TB6600.

Предыдущие четыре шага на фото ниже.

Подключаем LSD дисплей и питание к ramps 1.4.

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

Ссылки на компоненты из статьи:

1. Шаговый двигатель nema 23 57HM56-2006
2. Драйвер шагового двигателя TB6600;
3. Шилд (надстройка) RAMPS 1.4;
4. Плата управления arduino mega 2560;
5. Плата МКС CD 57/86 для внешнего драйвера;
6. LCD Display 2004 RAMPS 1.4.

С уважением, Zona-3D.ru

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

Шаговый двигатель 4 провода подключение

Шаговый двигатель Arduino ► предназначен для перемещения объекта на заданное количество шагов вала. Рассмотрим устройство и схему подключения шагового двигателя.

Шаговый двигатель (stepper motor) предназначен для точного позиционирования или перемещения объекта на заданное количество шагов вала.

Плата Arduino может управлять шаговым двигателем с помощью драйвера и библиотеки stepper.h или accelstepper.h.

Рассмотрим принцип работы и схему подключения шагового двигателя к Arduino Uno / Nano, а также разберем скетч для управления шаговым мотором.

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

В зависимости от конструкции, сегодня применяются три вида шаговых двигателей: с постоянным магнитом, с переменным магнитным сопротивлением и гибридные двигатели. У двигателей с постоянным магнитом число шагов на один оборот вала доходит до 48, то есть один шаг соответствует повороту вала на 7,5°. Гибридные двигатели обеспечивают не меньше 400 шагов на один оборот (угол шага 0,9°).

Фото. Устройство шагового мотора в разрезе

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

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

Это лишь краткий обзор устройства и принципа работы stepper motor, нас больше интересует, как осуществляется управление шаговым двигателем с помощью Ардуино.

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

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

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

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

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

Количество шагов задаются в программе с помощью библиотеки Arduino IDE.

Схема подключения шагового двигателя 28BYJ-48 к Arduino Uno через драйвер ULN2003 изображена на рисунке ниже. Основные характеристики мотора 28BYJ-48: питание от 5 или 12 Вольт, 4-х фазный двигатель, угол шага 5,625°. Порты драйвера IN1 — IN4 подключаются к любым цифровым выводам платы Arduino Mega или Nano. Светодиоды на модуле служат для индикации включения катушек двигателя.

Как подключить шаговый двигатель к Ардуино

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • драйвер шагового двигателя ULN2003;
  • шаговый двигатель 28BYJ-48;
  • провода «папа-мама».

Схема подключения шагового двигателя к Arduino UNO

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

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

// порты для подключения модуля ULN2003 к Arduino #define in1 8 #define in2 9 #define in3 10 #define in4 11 int dl = 5; // время задержки между импульсами void setup() { pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); } void loop() { digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); delay(dl); digitalWrite(in1, HIGH); digitalWrite(in2, HIGH); digitalWrite(in3, LOW); digitalWrite(in4, LOW); delay(dl); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); delay(dl); digitalWrite(in1, LOW); digitalWrite(in2, LOW); digitalWrite(in3, HIGH); digitalWrite(in4, HIGH); delay(dl); }

Пояснения к коду:

  1. вместо портов 8,9,10,11 можно использовать любые цифровые порты;
  2. время задержки в миллисекундах int dl = 5; можно изменять, чем меньше задержка в программе, тем быстрее будет вращаться вал мотора;
  3. алгоритм работы программы, представлен на следующей картинке.

Последовательность включения обмоток шагового мотора

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

Рассмотрим управление шаговым мотором при помощи стандартной библиотеки stepper.h и с помощью более удобной и популярной библиотеки accelstepper.h, где реализовано намного больше дополнительных команд и функций. Схема подключения мотора при этом остается неизменной. Чуть дальше мы перечислили возможные команды, которые можно использовать в программе с этими библиотеками.

Скетч для шагового двигателя на Ардуино (Stepper.h)

#include // библиотека для шагового двигателя // количество шагов на 1 оборот, измените значение для вашего мотора const int stepsPerRevolution = 200; // устанавливаем порты для подключения драйвера Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); void setup() { myStepper.setSpeed(60); // устанавливаем скорость 60 об/мин } void loop() { // поворачиваем ротор по часовой стрелке myStepper.step(stepsPerRevolution); delay(500); // поворачиваем ротор против часовой стрелки myStepper.step(-stepsPerRevolution); delay(500); }

Скетч для шагового мотора с библиотекой AccelStepper.h

#include // библиотека для шагового двигателя

Описание команд библиотеки AccelStepper.h

AccelStepper mystepper(DRIVER, step, direction);// Шаговый двигатель, управляемый платой
AccelStepper mystepper(FULL2WIRE, pinA, pinB);// Шаговый двигатель, управляемый Н-мостом
AccelStepper mystepper(FULL4WIRE, pinA1, pinA2, pinB1, pinB2);// Униполярный двигатель

mystepper.setMaxSpeed(stepsPerSecond);// Установка скорости оборотов в минуту
mystepper.setSpeed(stepsPerSecond);// Установка скорости в шагах за секунду
mystepper.setAcceleration(stepsPerSecondSquared);// Установка ускорения

mystepper.currentPosition(); // Возвращает текущее положение в шагах
mystepper.setCurrentPosition (long position); Обнуляет текущую позицию до нуля
mystepper.targetPosition(); // Конечное положение в шагах
mystepper.

distanceToGo(); // Вернуть расстояние до указанного положения
mystepper.moveTo(long absolute); // Переместиться в абсолютно указанное положение
mystepper.

move(long relative); // Переместиться в относительно указанное положение

mystepper.run(); // Начать движение с ускорением, функцию следует вызывать повторно
mystepper.runToPosition(); // Начать движение до указанной точки
mystepper.

runToNewPosition(); // Начать движение с ускорением до заданной позиции
mystepper.stop(); // Максимально быстрая остановка (без замедления)
mystepper.runSpeed(); // Начать движение с заданной скоростью без плавного ускорения
mystepper.

runSpeedToPosition(); // Начать движение без плавного ускорения, до позиции

mystepper.disableOutputs(); // Деактивирует зарезервированные пины и устанавивает их в режим LOW. Снимает напряжение с обмоток двигателя, экономя энергию
mystepper.enableOutputs(); // Активирует зарезервированные пины и устанавивает их в режим OUTPUT. Вызывается автоматически при запуске двигателя

(7 votes, average: 5,00 5)

Шаговые двигатели и моторы Ардуино 28BYJ-48 с драйвером ULN2003

Шаговый двигатель 4 провода подключение

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

Их можно найти во многих устройствах рядом: от CD-привода до 3D-принтера или робота-манипулятора.

В этой статье вы найдете описание схемы работы шаговых двигателей, пример подключения к Arduino с помощью драйверов на базе  ULN2003 и примеры скетчей с использованием стандартной библиотеки Stepper.

Шаговый двигатель – принцип работы

Схема шагового двигателя

Шаговый двигатель – это мотор, перемещающий свой вал в зависимости от заданных в программе микроконтроллера шагов и направления.

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

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

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

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

Такие параметры как угол поворота (шаги), направление движения задаются в программе для микроконтроллера.

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

Основные виды шаговых моторов:

  • Двигатели с переменными магнитами (применяются довольно редко);
  • Двигатели с постоянными магнитами;
  • Гибридные двигатели (более сложные в изготовлении, стоят дороже, но являются самым распространенным видом шаговых двигателей).

Где купить шаговый двигатель

Самые простые двигатели Варианты на сайте AliExpress:

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

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

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

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

Но существенным минусов в биполярном режиме является сложность самого драйвера.

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

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

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

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

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

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

Описание драйвера шаговых двигателей UNL2003

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

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

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

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

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

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

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

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

Подключение будет рассмотрено на примере униполярного двигателя 28BYj-48 и драйверов L298 и ULN2003. В качестве платы будет использоваться Arduino Uno.

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

Еще один вариант схемы с использованием L298:

Подключение шагового двигателя к Ардуино на базе L298

Схема подключения на базе ULN2003 изображена на рисунке ниже.

Управляющие выходы с драйвера IN1-IN4 подключаются к любым цифровым контактам на Ардуино. В данном случае используются цифровые контакты 8-11. Питание подключается к 5В.

Также для двигателя желательно использовать отдельный источник питания, чтобы не перегрелась плата Ардуино.

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

Принципиальная схема подключения.

Принципиальная схема подключения шагового двигателя

Еще одна схема подключения биполярного шагового двигателя Nema17  через драйвер L298 выглядит следующим образом.

Обзор основных моделей шаговых двигателей для ардуино

Nema 17 – биполярный шаговый двигатель, который чаще всего используется в 3D принтерах и ЧПУ станках. Серия 170хHSхххА мотора является универсальной.

Основные  характеристики двигателя:

  • Угловой шаг 1,8°, то есть на 1 оборот приходится 200 шагов;
  • Двигатель – двухфазный;
  • Рабочие температуры от -20С до 85С;
  • Номинальный ток 1,7А;
  • Момент удержания 2,8 кг х см;
  • Оснащен фланцем 42 мм для легкого и качественного монтажа;
  • Высокий крутящий момент – 5,5 кг х см.

28BYJ-48 – униполярный шаговый двигатель. Используется в небольших проектах роботов, сервоприводных устройствах, радиоуправляемых приборах.

Характеристики двигателя:

  • Номинальное питание – 5В;
  • 4-х фазный двигатель, 5 проводов;
  • Число шагов: 64;
  • Угол шага 5,625°;
  • Скорость вращения: 15 оборотов в секунду
  • Крутящий момент 450 г/сантиметр;
  • Сопротивление постоянного тока 50Ω ± 7% (25 ℃).

Описание библиотеки для работы с шаговым двигателем

В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:

  • Stepper(количество шагов, номера контактов). Эта функция создает объект Stepper, которая соответствует подключенному к плате Ардуино двигателю. Аргумент – контакты на плате, к которым подключается двигатель, и количество шагов, которые совершаются для полного оборота вокруг своей оси. Информацию о количестве шагов можно посмотреть в документации к мотору. Вместо количества шагов  может быть указан угол, который составляет один шаг. Для определения числа шагов, нужно разделить 360 градусов на это число.
  • Set Speed(long rpms) – функция, в которой указывается скорость вращения. Аргументом является положительное целое число, в котором указано количество оборотов в минуту. Задается после функции Step().
  • Step(Steps) –поворот на указанное количество шагов. Аргументом может быть либо положительное число – поворот двигателя по часовой стрелке, либо отрицательное – против часовой стрелки.

Пример скетча для управления

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

#include const int stepsPerRevolution = 200; Stepper myStepper(stepsPerRevolution, 8,9,10,11); //подключение к пинам 8…11 на Ардуино void setup() { myStepper.setSpeed(60); //установка скорости вращения ротора Serial.begin(9600); } void loop() { //Функция ожидает, пока поступит команда, преобразовывает текст и подает сигнал на двигатель для его вращения на указанное число шагов. Serial.println(“Move right”); //по часовой стрелке myStepper.step(stepsPerRevolution); delay(1000); Serial.println(“Move left”); //против часовой стрелки myStepper.step(-stepsPerRevolution); delay(1000); }

Заключение

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

Мы также рассмотрели пример написания скетча, использующего встроенную библиотеку Stepper.

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

Шаговый двигатель и Arduino: как управлять, схема подключения 28byj-48, видео

Шаговый двигатель 4 провода подключение

На производстве и в быту при автоматической работе каких-либо механизмов часто требуется точное позиционирование рабочего органа или оснастки. Для этого могут использоваться серво приводы и шаговые двигатели.

Эти два вида электропривода значительно отличаются, как по конструкции, так и по особенности работы и управления.

В этой статье мы затронем тему работы с шаговыми двигателями с помощью Arduino и модуля для управления электродвигателями на базе ИМС ULN2003.

Что такое шаговый двигатель?

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

Итак, для начала сформулируем определение. Согласно Википедии: «Шаговый электродвигатель — синхронный бесщёточный электродвигатель с несколькими обмотками, в котором ток, подаваемый в одну из обмоток статора, вызывает фиксацию ротора. Последовательная активация обмоток двигателя вызывает дискретные угловые перемещения (шаги) ротора».

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

Всем известно что ротор «обычного» электродвигателя, будь то асинхронного, синхронного, коллекторного или любого другого будет вращаться до тех пор, пока на него подают напряжение питания, и после отключения питания он будет вращаться еще какое-то время по инерции, если же не используются какие-либо средства для его торможения.

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

Но шаговые двигатели разработаны для применения в механизмах, где детали поворачиваются точно на требуемый угол.

В приведенном выше определении было сказано «…вызывает дискретные угловые перемещения (шаги) ротора…» — это значит, что ротор шагового двигателя не вращается в обычном понимании, а поворачивается на какой-то определенный, «дискретный» угол. Этот угол называется шагом, отсюда и название «шаговый двигатель». Мне нравится еще одно название этих устройств — «двигатель с конечным числом положений ротора».  

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

Кроме того, что можно поворачивать двигатель на определенный угол и фиксировать его в этом положении, делать это всё можно без схемы обратной связи (датчиков положения и прочего).

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

  1.     Реактивные.
  2.     С постоянными магнитами.
  3.     Гибридные.

По способу питания:

  1.     Униполярные (однополярные — ток пропускают через обмотки только в одну сторону).
  2.     Биполярные (ток пропускают через обмотки в обе стороны). Здесь драйвер должен подавать напряжение различной полярности, что несколько усложняет схемотехнику. При тех же размерах развивают бОльшую мощность по сравнению с униполярными.

В униполярном двигателе зачастую 5 проводов — 1 общий, от середины каждой из двух обмоток, и 4 от концов обмоток. Иногда говорят «4 обмотки» – это также правильно, поскольку фактически мы получаем 4 обмотки соединенных в общей точки.

Униполярный шаговый двигатель

Также ШД могут отличаться и по количеству проводов, это зависит от того, как соединены обмотки и какое питание предполагается, некоторые варианты вы видите в таблице ниже.

Варианты схем соединения обмоток в шаговых двигателях

Управление шаговым двигателем

Различают два способа управления шаговым двигателем:

  1.       Полношаговое. Одновременно включается только пара обмоток (без перекрытия с другими). Достигается максимальный момент на валу, но точность установления угла меньше, чем в других способах.
  2.       Полушаговое. В этом случае увеличивается количество шагов, соответственно повышается точность установки положения вала. На каждый первый шаг включается одна обмотка, на каждый второй шагами (полушаг) – пара обмоток. Но когда включена одна обмотка момент на валу снижается вдвое.

На анимациях ниже наглядно продемонстрировано

Полношаговое управление

Полушаговое управление

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

Перейдем к практике

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

Итак, из рассмотренного ранее набора у меня есть:

  • Arduino UNO;
  • Модуль ULN2003;
  • Шаговый двигатель 28BYJ-48 5V DC;
  • Куча перемычек, бредборд и источник питания для него.

Модуль ULN2003 – предназначен для управления униполярным шаговым двигателем. Схематически это транзисторная сборка Дарлингтона с 7-ю каналами и, в принципе, ею можно управлять чем угодно. Технические характеристики приведены ниже:

  • Номинальный ток коллектора одного ключа — 0,5А;
  • Максимальное напряжение на выходе до 50 В;
  • Защитные диоды на выходах;
  • Вход адаптирован к разным видам логики;
  • Возможность применения для управления реле.

В модуле, кроме самой микросхемы ULN2003, есть светодиоды для индикации напряжения на выходе, колодка для подключения и перемычка для отключения питания.

Схема модуля на ULN2003, в левом верхнем углу принципиальная схема одного канала (таких в ней 7)

Двигатель 28BYJ-48 5V DC подключается штатным разъёмом к белой колодке на плате. У него 5 проводов — красный общий, и 4 от обмоток.

Схема фаз двигателя 28BYJ-48 5V DC

Основные характеристики:

  • 32 шага за один оборот ротора;
  • Встроенный редуктор с передаточным отношением 63.68395:1, благодаря этому вал делает 1 оборот за 2048 шагов, при полношаговом режиме и 4096 при полушаговом;
  • Cкорость вращения: номинальная 15 об/мин, максимальная 25 об/мин;
  • Напряжение питания 5 В;
  • Ток одной обмотки 160 мА;
  • Полный ток: в 4-шаговом режиме 320 мА, при быстром вращении 200 мА.
  • Коэффициент редукции: 1/63,68395
  • Угол шага ротора (без учета редуктора): при 4-ступенчатой последовательности сигналов управления 11,25 ° (32 шага на оборот); при 8-ступенчатой — 5,625 ° (64 шага на оборот)
  • Крутящий момент не менее: 34,3 мНм (120 Гц);
  • Тормозящий момент: 600–1200 гсм;
  • Тяга: 300 гсм;
  • Вес:33 г.

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

Значит, попробуем выдать такие сигналы с ардуино. Для этого я подключаю модуль ULN2003 по такой схеме (пин ардуино – контакт модуля)

  • 13 – IN1;
  • 12 – IN2;
  • 11 – IN3;
  • 10 – IN4.

Схема в сборе

Дальше напишем в Arudino IDE код, который будет подавать на выходы сигналы в соответствии с таблицей выше.

// назначим переменные с номерами портов

int in1 = 13;

int in2 = 12;

int in3 = 11;

int in4 = 10;

const int dl = 2; // переменная для задержки

// назначим указанные пины как выходы

void setup() {

pinMode(in1, OUTPUT);

    pinMode(in2, OUTPUT);

    pinMode(in3, OUTPUT);

    pinMode(in4, OUTPUT);

}

void loop() {

//сформируем сигналы для первого шага

digitalWrite( in1, HIGH );

    digitalWrite( in2, HIGH );

    digitalWrite( in3, LOW );

    digitalWrite( in4, LOW );

delay(dl); //Задержка между шагами, чем она меньше – тем быстрее вращение вала.

//сформируем сигналы для второго шага

digitalWrite( in1, LOW );

digitalWrite( in2, HIGH );

    digitalWrite( in3, HIGH );

    digitalWrite( in4, LOW );

    delay(dl);

//сформируем сигналы для третьего шага

digitalWrite( in1, LOW );

digitalWrite( in2, LOW );

    digitalWrite( in3, HIGH );

digitalWrite( in4, HIGH );

    delay(dl);

//сформируем сигналы для четвертого шага

digitalWrite( in1, HIGH );

digitalWrite( in2, LOW );

    digitalWrite( in3, LOW );

    digitalWrite( in4, HIGH );

    delay(dl);

}

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

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

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

Тогда код будет таким:

// назначим переменные с номерами портов

int in1 = 13;

int in2 = 12;

int in3 = 11;

int in4 = 10;

const int dl = 2; // переменная для задержки

// назначим указанные пины как выходы

void setup() {

pinMode(in1, OUTPUT);

    pinMode(in2, OUTPUT);

    pinMode(in3, OUTPUT);

    pinMode(in4, OUTPUT);

}

void loop() {

//сформируем сигналы для первого шага

digitalWrite( in1, HIGH );

    digitalWrite( in2, LOW );

    digitalWrite( in3, LOW );

    digitalWrite( in4, LOW );

delay(dl); //Задержка между шагами, чем она меньше – тем быстрее вращение вала.

//сформируем сигналы для второго шага

digitalWrite( in1, HIGH );

digitalWrite( in2, HIGH );

    digitalWrite( in3, LOW );

    digitalWrite( in4, LOW );

    delay(dl);

//сформируем сигналы для третьего шага

digitalWrite( in1, LOW );

digitalWrite( in2, HIGH );

    digitalWrite( in3, LOW );

    digitalWrite( in4, LOW );

    delay(dl);

//сформируем сигналы для четвертого шага

digitalWrite( in1, LOW );

digitalWrite( in2, HIGH );

digitalWrite( in3, HIGH );

digitalWrite( in4, LOW );

delay(dl);

//сформируем сигналы для пятого шага

digitalWrite( in1, LOW );

digitalWrite( in2, LOW );

digitalWrite( in3, HIGH );

digitalWrite( in4, LOW );

delay(dl);

//сформируем сигналы для шестого шага

digitalWrite( in1, LOW );

digitalWrite( in2, LOW );

digitalWrite( in3, HIGH );

digitalWrite( in4, HIGH );

delay(dl);

//сформируем сигналы для седьмого шага

digitalWrite( in1, LOW );

 digitalWrite( in2, LOW );

 digitalWrite( in3, LOW );

 digitalWrite( in4, HIGH );

 delay(dl);

//сформируем сигналы для восьмого шага

digitalWrite( in1, HIGH );

digitalWrite( in2, LOW );

digitalWrite( in3, LOW );

digitalWrite( in4, HIGH );

delay(dl);

}

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.