Как подключить arduino nano к шаговому двигателю

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

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

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

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

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателюКак подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателюУпрощенные анимированные схемы работы шагового двигателя

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

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

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

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

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

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

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

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

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателюДрайвер двигателя L298N

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

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

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

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

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

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

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

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателюПодключение шагового двигателя к Ардуино

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателюПодключение шагового двигателя к Ардуино на базе L298

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю Подключение шагового двигателя к Ардуино

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю Принципиальная схема подключения шагового двигателя

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

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

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

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

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

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

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

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

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

Заключение

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

Источник

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

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

Модуль A4988 может контролировать как скорость, так и направление вращения биполярного шагового двигателя, такого как NEMA 17, использую всего два вывода контроллера.

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

От характера управляющих импульсов зависит поведение шагового двигателя, а именно:

Микросхема драйвера шагового двигателя A4988

Модуль собран на чипе A4988. Не смотря на свой малый размер (всего 0,8 ″ × 0,6 ″), но обладает хорошими характеристиками.

Драйвер шагового двигателя A4988 имеет высокую выходную мощность (до 35 В и 2 А) и позволяет управлять одним биполярным шаговым двигателем с выходным током до 2 А на катушку, например NEMA 17.

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

Драйвер предлагает 5 различных разрешений шага, а именно:

Распиновка драйвера A4988

Драйвер A4988 имеет всего 16 контактов, которые связывают его с внешним миром. Распиновка у A4988 следующая:

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

Давайте ознакомимся со всеми контактами по очереди.

Выводы питания

На самом деле A4988 требует подключения двух источников питания.

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

VDD и GND используется для управления внутренней логической схемой. Напряжение питания должно находиться в пределах от 3 до 5,5 В.

Vmot и GND для обеспечения питания шагового двигателя. Тут напряжение в пределах от 8 до 35 В.

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

Один из способов защитить драйвер от таких скачков — подключить электролитический конденсатор емкостью 100 мкФ (или как минимум 47 мкФ) к контактам источника питания двигателя.

Выводы выбора микрошага

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

Например, если вы решите управлять шаговым двигателем NEMA 17 с шагом 1,8 градуса (200 шагов на оборот) в режиме 1/4 шага, то двигатель будет выдавать 800 микрошагов на оборот.

Драйвер A4988 имеет три вывода селектора размера шага (разрешения), а именно: MS1, MS2 и MS3. Установив соответствующие логические уровни на эти контакты, мы можем настроить двигатели на одно из пяти ступенчатых разрешений.

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

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

Выводы управления

Драйвер A4988 имеет два управляющих входа, а именно: STEP и DIR.

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

STEP — управляет микрошагом мотора. Каждый высокий импульс, отправляемый на этот вывод, приводит двигатель в действие на количество микрошагов, заданное выводами Microstep Selection (MS1, MS2 и MS3). Чем быстрее импульсы, тем быстрее будет вращаться двигатель.

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

Если вы просто хотите, чтобы двигатель вращался только в одном направлении, то вы можете соединить вывод DIR непосредственно с VCC или GND соответственно.

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

Выводы управления питанием A4988

A4988 имеет три различных вывода для управления состоянием питания, а именно. EN, RST и SLP.

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

EN — вывод включения (0)/ выключения (1) драйвера A4988. По умолчанию на этом выводе установлен низкий уровень, поэтому драйвер всегда включен.

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

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

Если вам не нужно использовать вывод RST, вы можете подключить его к соседнему контакту SLP / SLEEP, чтобы вывести его на высокий уровень и включить драйвер.

Выводы для подключения шагового двигателя

Выходные контакты: 1B, 1A, 2A и 2B.

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

К этим выводам можно подключить любой биполярный шаговый двигатель с напряжением питания от 8 до 35 В.

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

Система охлаждения — радиатор

Чрезмерное рассеивание мощности микросхемы драйвера A4988 приводит к повышению температуры, которая может выйти за пределы возможностей микросхемы, что, вероятно, приведет к ее повреждению.

Даже если микросхема драйвера A4988 имеет максимальный номинальный ток 2 А на катушку, микросхема может подавать только около 1 А на катушку без перегрева.

Для достижения более 1 А на катушку требуется радиатор или другой метод охлаждения.

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

Драйвер A4988 обычно поставляется с радиатором. Желательно установить его перед использованием драйвера.

Ограничение тока

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

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

Для этого есть два метода:

Способ 1:

В данном случае мы собираемся установить ограничение тока путем измерения напряжения (Vref) на выводе «ref».

ограничение тока = Vref x 2,5

Например, если ваш двигатель рассчитан на 350mA, вы должны установить опорное напряжение 0,14В.

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

Способ 2:

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

Подключение драйвера шагового двигателя A4988 к Arduino UNO

Подключения довольно простое. Начните с подключения VDD и GND (рядом с VDD) к контактам 5V и минус на Arduino. Входные контакты DIR и STEP подключите к цифровым контактам №2 и №3 на Arduino соответственно. Шаговый двигатель подключите к контактам 2B, 2A, 1A и 1B.

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

Затем подключите вывод RST к соседнему выводу SLP/SLEEP, чтобы драйвер оставался включенным. Также держите контакты выбора микрошага отключенными, чтобы двигатель работал в полношаговом режиме.

Наконец, подключите источник питания двигателя к контактам VMOT и GND. Не забудьте установить большой развязывающий электролитический конденсатор 100 мкФ на контакты источника питания двигателя, рядом с платой.

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

Код Arduino — простой пример

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

Пояснение к скетчу:

Скетч начинается с определения выводов Arduino, к которым подключены выводы STEP и DIR A4988. Мы также определяем stepsPerRevolution. Установите его в соответствии со спецификациями шагового двигателя.

В разделе setup() кода все контакты управления двигателем объявлены как цифровой выход.

В цикле loop() мы медленно вращаем двигатель по часовой стрелке, а затем быстро вращаем его против часовой стрелки с интервалом в секунду.

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

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

Скетч Arduino — использование библиотеки AccelStepper

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

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

Эта библиотека не включена в IDE Arduino, поэтому вам необходимо сначала установить ее.

Установка библиотеки

Чтобы установить библиотеку, перейдите в Эскиз> Include Library> Manage Libraries… Подождите, пока диспетчер библиотек загрузит индекс библиотек и обновит список установленных библиотек.

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

Отфильтруйте результаты поиска, набрав «Accelstepper». Щелкните первую запись и выберите «Установить».

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

Скетч Arduino

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

Пояснение к скетчу:

Мы начинаем с подключения недавно установленной библиотеки AccelStepper.

Определяем выводы Arduino, к которым подключаются выводы STEP и DIR A4988. Устанавливаем motorInterfaceType значение 1. (1 означает внешний шаговый драйвер с выводами Step и Direction).

Затем мы создаем экземпляр библиотеки с именем myStepper.

В функции setup() мы сначала устанавливаем максимальную скорость двигателя 1000. Затем мы устанавливаем коэффициент ускорения для двигателя, чтобы добавить ускорение и замедление к движениям шагового двигателя.

Затем мы устанавливаем обычную скорость 200 и количество шагов, например, 200 (поскольку NEMA 17 совершает 200 шагов за оборот).

В функции loop() мы используем оператор If, чтобы проверить, как далеко двигателю нужно проехать (путем чтения distanceToGo), пока он не достигнет целевой позиции (moveTo). Как только distanceToGo станет равен нулю мы переключаем двигатель в противоположное направление, изменив moveTo на противоположное значение относительно его текущего положения.

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

Источник

Как подключить arduino nano к шаговому двигателю

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

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

Шаговый двигатель (stepper motor) предназначен для точного позиционирования или перемещения объекта на заданное количество шагов вала. Плата Arduino может управлять шаговым двигателем с помощью драйвера и библиотеки stepper.h или accelstepper.h. Рассмотрим принцип работы и схему подключения шагового двигателя к Arduino Uno / Nano, а также разберем скетч для управления шаговым мотором.

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателю

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

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателюФото. Устройство шагового мотора в разрезе

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

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

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателюФото. Виды драйверов для управления шаговым двигателем

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

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

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

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

Как подключить arduino nano к шаговому двигателю. Смотреть фото Как подключить arduino nano к шаговому двигателю. Смотреть картинку Как подключить arduino nano к шаговому двигателю. Картинка про Как подключить arduino nano к шаговому двигателю. Фото Как подключить arduino nano к шаговому двигателюСхема подключения шагового двигателя к Arduino UNO

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. С постоянными магнитами.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Но на практике такой подход к управлению шаговым двигателем не используется. Для этого есть готовые библиотеки, в Arduino IDE есть встроенная «Stepper». Возьмем из библиотеки готовый пример «Stepper_oneRevolution» и изменим его под наш двигатель, код привожу ниже и в комментариях опишу основные особенности:

const int stepsPerRevolution = 2048; // изменить в соответствии с количеством

//шагов вашего двигателя. Вообще здесь задаём количество шагов, на которые повернется двигатель

// мы указали для 1 полного оборота

// назначаем пины, к которым подключен драйвер ШД

Stepper myStepper(stepsPerRevolution, 13, 12, 11, 10);

// указываем номинальную скорость 15 об.мин:

// включаем последовательный пор:

// делаем оборот по часовой стрелке:

Serial.println(«clockwise»); // сообщение в монитор порта

// делаем оборот против часовой стрелке:

Serial.println(«counterclockwise»); // сообщение в монитор порта

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

Stepper название (количество шагов в полном обороте, пин 1, пин 2, пин 3, пин 4).

Ну а когда нам нужно вращать сам двигатель мы обращаемся к двигателю название которого мы написали в Stepper с приставкой «.step», у нас это myStepper.step. В видео ролике я для наглядности вставил фрагмент, где по часовой стрелке двигатель делает пол оборота, а против – целый оборот. Он в самом конце. Код я для этого изменил следующим образом:

// делаем оборот по часовой стрелке:

Serial.println(«clockwise»); // сообщение в монитор порта

// делаем оборот против часовой стрелке:

Serial.println(«counterclockwise»); // сообщение в монитор порта

В мониторе порта микроконтроллер нам «говорит» в какую сторону вращается двигатель.

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

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *