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

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

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

Пошаговая инструкция о том как своими руками собрать регулятор скорости вращения для униполярного шагового двигателя.

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

Регулятор скорости вращения для биполярного шагового двигателя на базе Arduino Nano

Самодельный димер на базе платы Arduino Nano и драйвера DRV8825

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

Привод для жалюзи на базе Arduino UNO и шаговых двигателях 28BYJ-48 5V

Как собрать привод для жалюзи, на базе Arduino UNO и двух шаговых двигателях 28BYJ-48 5V.

К данной статье прилагаются два готовых скетча.

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

Статья о том, из чего и как своими руками собрать привод на базе Arduino UNO, джойстика и двух униполярных шаговых двигателях 28BYJ-48 5V

Имеется схема и скетч, работающий без библиотек.

Автоматическая фокусировка на Arduino и Digispark с датчиком расстояния VL53L0X и драйвером DRW8825.

Статья, содержащая материалы для изучения и сборки двух вариантов привода, для автоматической фокусировки микроскопа, на Arduino UNO и Digispark

Как объединить две платы Arduino и Digispark, для совместной работы над общей задачей.

Как подключить биполярный шаговый двигатель к Arduino Uno и к Digispark.

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

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

В качестве пульта подойдет любой ANDROID телефон с наличием Bluetooth.

Лучший эмулятор Arduino UnoArduSim V2.6. Первая серия.

Набор из 9 простых скетчей, которые использовались в этой серии.

В этой серии рассмотрены принципы работы таких модулей как: светодиод, кнопка, потенциометр, Serial порт, программный Serial порт, 4 фазный шаговый двигатель, 2 фазный шаговый двигатель и DC Motor.

Регулятор скорости вращения для униполярного шагового двигателя на базе Didgispark

Простой и не дорогой, регулятор скорости вращения, для униполярного шагового двигателя.

В статье есть перечень материалов, скетч, схема для сборки, и видео инструкция.

Arduino управление шаговыми двигателями по Bluetooth при помощи Android смартфона

Статья о том как написать код для электрического привода, для слайдера под видеокамеру, с управлением по Bluetooth, на базе Arduino Nano, драйверов DRV8825 и Bluetooth модуля HC-05.

Управление биполярным шаговым двигателем при помощи инкрементального энкодера

Статья о том как подключить инкрементальный энкодер EC11 к Arduino, как управлять биполярным шаговым двигателем при помощи энкодера, как проверить инкрементный энкодер, как подключить драйвер шагового двигателя drw8825 к Arduino.

Творческая мастерская Мастер Колотушкин 2021

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

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

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

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

Прежде всего, шаговый двигатель — это двигатель. Это означает, что он преобразует электрическую энергию в механическую. Основное отличие между ним и всеми остальными типами двигателей состоит в способе, благодаря которому происходит вращение. В отличие от других моторов, шаговые двигатели вращаются НЕ непрерывно! Вместо этого, они вращаются шагами (отсюда и их название). Каждый шаг представляет собой часть полного оборота. Эта часть зависит, в основном, от механического устройства мотора и от выбранного способа управления им. Шаговые двигатели также различаются способами питания. В отличие от двигателей переменного или постоянного тока, обычно они управляются импульсами. Каждый импульс преобразуется в градус, на который происходит вращение. Например, 1.8º шаговый двигатель, поворачивает свой вал на 1.8° при каждом поступающем импульсе. Часто, из-за этой характеристики, шаговые двигатели еще называют цифровыми.

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

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

Здесь мы видим 4 обмотки, расположенные под углом 90° по-отношению друг к другу, размещенные на статоре. Различия в способах подключения обмоток в конечном счете определяют тип подключения шагового двигателя. На рисунке выше, обмотки не соединяются вместе. Мотор по такой схеме имеет шаг поворота равный 90°. Обмотки задействуются по кругу — одна за другой. Направление вращения вала определяется порядком, в котором задействуются обмотки. Ниже показана работа такого мотора. Ток через обмотки протекает с интервалом в 1 секунду. Вал двигателя поворачивается на 90° каждый раз, когда через катушку протекает ток.

Режимы управления

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

Волновое управление или полношаговое управление одной обмоткой

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

У такого мотора будет 4 шага на оборот, что является номинальным числом шагов.

Полношаговый режим управления

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

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

Полушаговый режим

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

Используя этот метод, тот же самый мотор сможет дать удвоенное число шагов на оборот, что означает двойную точность для системы позиционирования. Например, этот мотор даст 8 шагов на оборот!

Режим микрошага

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

Читать еще:  Чистка форсунок двигателя как часто

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

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

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

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

Шаговый двигатель с постоянным магнитом

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

Обычно, величина шага таких двигателей лежит в диапазоне 45-90°.

Шаговый двигатель с переменным магнитным сопротивлением

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

Шаговые двигатели с переменным магнитным сопротивлением обычно имеют шаг, лежащий в диапазоне 5-15°.

Гибридный шаговый двигатель

Данный тип шаговых моторов получил название «гибридный» из-за того, что сочетает в себе характеристики шаговых двигателей и с постоянными магнитами и с переменным магнитным сопротивлением. Они обладают отличными удерживающим и динамическим крутящим моментами, а также очень маленькую величину шага, лежащую в пределах 0.9-5°, обеспечивая великолепную точность. Их механические части могут вращаться с большими скоростями, чем другие типы шаговых моторов. Этот тип двигателей используется в станках ЧПУ high-end класса и в роботах. Главный их недостаток — высокая стоимость.

Обычный мотор с 200 шагами на оборот будет иметь 50 положительных и 50 отрицательных полюсов с 8-ю обмотками (4-мя парами). Из-за того, что такой магнит нельзя произвести, было найдено элегантное решение. Берется два отдельных 50-зубых диска. Также используется цилиндрический постоянный магнит. Диски привариваются один с положительному, другой к отрицательному полюсам постоянного магнита. Таким образом, один диск имеет положительный полюс на своих зубьях, другой — отрицательный.

Два 50-зубых диска помещены сверху и снизу постоянного магнита

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

Впадины на одном диске выровнены с возвышениями на другом

Ниже показана работа гибридного шагового двигателя, имеющего 75 шагов на оборот (1.5° на шаг). Стоит заметить, что 6 обмоток спарены, каждая имеет обмотку с противоположной стороны. Вы наверняка ожидали, что катушки расположены под углом в 60° следом друг за другом, но, на самом деле, это не так. Если предположить, что первая пара — это самая верхняя и самая нижняя катушки, тогда вторая пара смещена под углом 60+5° по отношению к первой, и третья смещена на 60+5° по отношению ко второй. Угловая разница и является причиной вращения мотора. Режимы управления с полным и половинным шагом могут использоваться, впрочем как и волновое управление для снижения энергопотребления. Ниже продемонстрировано полношаговое управление. В полушаговом режиме, число шагов увеличится до 150!

Не пытайтесь следовать за обмотками, чтобы понаблюдать, как это работает. Просто сфокусируйтесь на одной обмотке и ждите. Вы заметите, что всякий раз, когда обмотка задействована, есть 3 положительных полюса (красный) в 5° позади, которые притягиваются по направлению вращения и другие 3 отрицательных полюса (синий) в 5° впереди, которые толкаются в направлении вращения. Задействованная обмотка всегда находится между положительным и отрицательным полюсами.

Подключение обмоток

Шаговые двигатели относятся к многофазным моторам. Больше обмоток, значит, больше фаз. Больше фаз, более гладкая работа мотора и более выокая стоимость. Крутящий момент не связан с числом фаз. Наибольшее распространение получили двухфазные двигатели. Это минимальное количество необходимых для того, чтобы шаговый мотор функционировал. Здесь необходимо понять, что число фаз не обязательно определяет число обмоток. Например, если каждая фаза имеет 2 пары обмоток и мотор является двухфазным, то количество обмоток будет равно 8. Это определяет только механические характеристики мотора. Для упрощения, я рассмотрю простейший двухфазный двигатель с одной парой обмоток на фазу.

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

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

Это наиболее простая конфигурация. Используются 4 провода для подключения мотора к контроллеру. Обмотки соединяются внутри последовательно или параллельно. Пример биполярного двигателя:

Мотор имеет 4 клеммы. Два желтых терминала (цвета не соответствуют стандартным!) питают вертикальную обмотку, два розовых — горизонтальную обмотку. Проблема такой конфигурации состоит в том, что если кто-то захочет изменить магнитную полярность, то единственным способом будет изменение направления электрического тока. Это означает, что схема драйвера усложнится, например это будет H-мост.

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

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

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

Читать еще:  Что скажете про двигатель субару ef12

Униполярные двигатели могут иметь 5 или 6 выводов для подключения. На рисунке выше продемонстрирован униполярный мотор с 6 выводами. Существуют двигатели, в которых два общих провода соединены внутри. В этом случае, мотор имеет 5 клемм для подключения.

8-выводной шаговый двигатель

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

Этот двигатель может быть подключен любым из возможных способов. Он может быть подключен как:

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

Управление шаговым двигателем с помощью Arduino и потенциометра

Шаговые двигатели с каждым годом приобретают все большую популярность в мире электроники поскольку именно они обеспечивают превосходную точность позиционирования различных механизмов. В этой статье мы рассмотрим подключение одного из самых распространенных шаговых двигателей 28-BYJ48 к плате Arduino при помощи модуля ULN2003 и управление им с помощью потенциометра.

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

Общие принципы работы шаговых двигателей

Внешний вид шагового двигателя 28-BYJ48 (купить на AliExpress) представлен на следующем рисунке:

Первый вопрос, который напрашивается при взгляде на этот рисунок – почему в отличие от обычного двигателя из этого шагового двигателя выходят 5 проводов различных цветов? Чтобы понять это давайте сначала разберемся с принципами работы шагового двигателя.

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

Как можно видеть из рисунка, двигатель имеет однополярную катушку с 5 выводами. Но фактически это 4 катушки, на которые нужно подавать питание в определенной последовательности. На красные провода необходимо подать +5V, на остальные 4 провода необходимо подать землю чтобы запустить в работу соответствующую катушку. Мы будем использовать плату Arduino чтобы подавать питание на эти катушки в определенной последовательности и тем самым заставлять двигатель вращаться. Более подробно ознакомиться с принципами работы шаговых двигателей можно в статье про подключение шагового двигателя к микроконтроллеру AVR.

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

На первый взгляд от такого количества характеристик может закружиться голова, но давайте попробуем выделить из них самые важные, те, которые нам понадобятся для дальнейшей работы. Во-первых, мы знаем, что это шаговый двигатель 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). В сети интернет можно найти рейтинги эффективности различных драйверов мотора, но эти рейтинги будут меняться в зависимости от типа используемого шагового двигателя. Основной принцип, которого следует придерживаться при выборе драйвера мотора – он должен обеспечивать достаточный ток для управления шаговым двигателем.

Работа схемы

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

Чтобы подавать питание на соответствующие катушки шагового двигателя мы будем использовать цифровые контакты 8, 9, 10 и 11 платы Arduino, к которым подключены соответствующие контакты драйвера двигателей ULN2003. Потенциометр, с помощью которого мы будем управлять вращением шагового двигателя, подключен к аналоговому контакту A0 платы Arduino.

Драйвер мотора запитывается от контакта 5V платы Arduino. Но если вы будете подсоединять какую-нибудь нагрузку к шаговому двигателю, то вам потребуется внешний источник питания для драйвера мотора. Мы в нашем примере эксплуатируем шаговый двигатель без нагрузки, поэтому нам хватило питания от платы Arduino. И не забудьте соединить землю платы Arduino с землей драйвера мотора.

Объяснение программы для платы Arduino

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

Читать еще:  Ldv maxus от чего двигатель
Номер шагаКонтакты, на которое подается питаниеКатушки, на которое подается питание
Шаг 18 и 9A и B
Шаг 29 и 10B и C
Шаг 310 и 11C и D
Шаг 411 и 8D и 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) “шагов” в этой команде для совершения одного полного оборота двигателя.

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

А один шаг против часовой стрелки:

В нашей программе мы будем считывать значение на аналоговом контакте A0 платы Arduino и сравнивать его с предыдущим значением (Pval). Если оно увеличилось, то мы будем делать 5 шагов двигателем по часовой стрелке, а если уменьшилось – то 5 шагов двигателем против часовой стрелки.

potVal = map(analogRead(A0),0,1024,0,500);
if (potVal>Pval)
stepper.step(5);
if (potVal

stepper.step(-5);
Pval = potVal;

Работа проекта

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

После этого загрузите программу в плату Arduino и откройте окно монитора последовательной связи (serial monitor). После этого вы можете вращать ручку потенциометра и наблюдать как в соответствии с ее поворотами шаговый двигатель будет вращаться по часовой и против часовой стрелки.

Исходный код программы

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

Arduino. Подключение шагового двигателя 28BYJ к Arduino

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

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

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

Характеристики шагового двигателя 28BYJ-48:

  • Напряжение питания – 5В или 12В;
  • Число фаз – 4;
  • Коэффициент редукции – 1/63.68395;
  • Количество шагов ротора – 64;
  • Номинальная скорость вращения – 15 оборот/мин;
  • Крутящий момент – 450 г*см;
  • Размеры (диаметр,высота) –25×18 мм;
  • Вес – 40 грамм.

Двигатель за один оборот осуществляет 4075.7728395 шага. Данный двигатель поддерживает полушаговый режим и за один полный оборот может совершать 4076 шага, а точнее за 1° делает примерно 11,32 шага. (4076 / 360 = 11,32).

Чаще всего, при использовании шагового двигателя 28BYJ 48, используют два режима подключения.

  • Полношаговый режим — за 1 такт, ротор делает 1 шаг.
  • Полушаговый режим — за 1 такт, ротор делает ½ шага.

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

Драйвер – это устройство, которое связывает контроллер и шаговый двигатель. Он нужен так как цифровой вывод микроконтроллера Arduino UNO может выдать ток максимум

40 мА, а одна обмотка шагового двигателя 28BYJ-48 в пике потребляет

320 мА, следовательно если подключить двигатель напрямую, микроконтроллер сгорит.

Для защиты микроконтроллера был разработан «Модуль шагового двигателя ULN2003», в котором используется микросхема ULN2003A (по сути, состоящая из 7 ключей), позволяющая управлять нагрузкой до 500 мА (один ключ). Данный модуль может работать с 5В и 12В двигателем 28BYJ-48, для переключения необходимо установить или убрать перемычку (по умолчанию перемычка установлена, питание 5В).

Подключение 28BYJ-48 плате Arduino

Схема не сложная, необходимо всего шесть проводов для подключения, сначала подключаем интерфейсные провода, IN1 (ULN2003) в 11 (Arduino UNO), IN2 (ULN2003) в 10 (Arduino UNO), IN3 (ULN2003) в 9 (Arduino UNO) и IN4 (ULN2003) в 8 (Arduino UNO), осталось подключить питание GND к GND и VCC к VIN и подключаем разъем двигателя в модуль ULN2003.

Скетч управления шаговом двигателем 28BYJ-48

В пакете Arduino IDE есть стандартная библиотека Stepper.h для управления униполярными и биполярными шаговыми двигателями. Ее не надо искать и загружать из интернета. Она устанавливается вместе с пакетом Arduino IDE. Библиотека очень простая. Кроме конструктора имеет всего две функции: setSpeed и step.

Описание библиотеки Stepper.h

Stepper( steps, pin1, pin2, pin3, pin4 ) — конструктор класса Stepper. Создает объект типа Stepper.

  • steps – количество шагов двигателя на один оборот (360°). Параметр используется функцией setSpeed() для вычисления скорости вращения.
  • pin1, pin2, pin3, pin4 – выводы для подключения драйвера двигателя. Для двух проводной схеме подключения pin3 и pin4 не используются. Для четырех проводной схемы pin1, pin2, pin3, pin4 соответствуют фазам A, C, B, D при униполярном режиме управления.

void setSpeed(long rpms) — устанавливает скорость вращения двигателя в оборотах в минуту.

  • rpms — скорость вращения в оборотах в минуту.

void step(int steps) — вызывает поворот двигателя на заданное число шагов. Функция останавливает выполнение программы до тех пор, пока не завершится.

  • steps – число шагов, на которое требуется повернуть ротор двигателя. Отрицательное значение вращает двигатель в противоположную сторону.

Пример простого скетча управления двигателем 28BYJ-48:

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты