Регулировка скорости вращения шагового двигателя
Регулировка скорости вращения шагового двигателя
Комплексные поставки комплектующих для ЧПУ и автоматизации
Расчёт проекта
Консультация
Устройство шагового двигателя и его управление
Устройство шагового двигателя и управление им
Шаговый двигатель (ШД)- это бесколлекторный синхронный электромотор, оснащённый несколькими обмотками. Подача напряжения на одну из обмоток статора вызывает остановку ротора. При последовательной активации обмоток ротор начинает дискретно поворачиваться. То есть, ротор совершает отдельные угловые перемещения – шаги. Отсюда и название этого типа электродвигателей.
Управление шаговым двигателем гораздо более сложное, нежели стандартным коллекторным аналогом. Сложность определяется необходимостью переключения в строгой последовательности напряжения в обмотках. При этом нужно ещё контролировать и силу тока. Обычно ШД управляются с помощью устройств, называемых драйверами.
Типы шаговых двигателей
Конфигурация обмоток определяет деление ШД на биполярные и униполярные.
У биполярного двигателя одна обмотка на каждую фазу. Всего их в биполярном двигателе две. Выводов, соответственно, четыре. Для изменения направления силовых линий магнитного поля драйвер переполюсовывает обмотку.
Устройство шагового привода
Шаговый привод состоит из синхронной электрической машины и управляющего контроллера. Последний обеспечивает подачу управляющих сигналов на обмотки двигателя и их попеременное включение в соответствии с заданной программой.
Шаговый двигатель — электрическая машина, преобразующая управляющие сигналы в перемещение вала на определенный угол и фиксацию его в заданном положении. Количество шагов таких электродвигателей составляет от 100 до 400, угол шага — от 0,9-3,6°.
Шаг 3: Присоединяем провода
Большинство шаговых двигателей имеют четыре провода, поэтому вам нужно будет обрезать четыре медных провода (обратите внимание, что цвет не коррелирует с чем-либо конкретным (обычно есть правило, что черный — это земля, но не сейчас). Различные цвета были использованы только для облегчения понимания. Эти выводы будут использоваться для управления, какая катушка в настоящее время активна в двигателе. Для этого проекта Ардуино шаговый двигатель был взят от старого принтера, поэтому пайка проводов была самым простым вариантом для этого проекта. В любом случае, вы можете безопасно установить соединение (пайка, штекер, клипы).
Работа шагового двигателя и описание драйвера
Как работает шаговик?
Для практических задач с точным перемещением объекта обязательно требуется ШД. Это мотор, который перемещает свой вал в зависимости от заданных шагов в программе контроллера. Чаще всего их применяют в станках ЧПУ, робототехнике, манипуляторах, 3D-принтерах.
Мы же с вами рассмотрим конкретный двигатель 28BYj-48 с драйвером управления ULN2003 . Он достаточно дешёвый, прост в сборке и легко писать программу.
В 4-шаговом режиме он может совершать 2048 шагов, в 8-шаговом 4096 шагов. Питание 5 В, ток потребления 160 мА. Передаточное число 1:64 , то есть один шаг он совершит на 5,625 градусов. Крутящий момент составляет 34 мН.м. Средняя скорость 15 об/мин, с помощью программного кода можно ускорить до 35 об/мин, но вы должны понимать, что мы при этом теряем мощность и точность.
Размеры двигателя указаны из первоисточника — даташита производителя Kiatronics.
А вот таким образом он выглядит изнутри:
Для небольших технических проектов — 28BYj-48 идеальный вариант. Его главным преимуществом является дешевизна и простота. Прилагаю спецификацию:
8-шаговая управляющая сигнальная последовательность — 5.625º/шаг
ШД имеет четыре обмотки, которые запитываются последовательно:
Для того, чтобы заставить мотор двигаться по часовой стрелке, нужно попеременно подавать на обмотки напряжение. Движок работает в двух режимах в шаговом и полушаговом, чем они отличаются, мы сейчас разберём.
1.Шаговый режим — это когда две из четырех обмоток запитываются на каждом шаге. Смотрите карту включения обмоток: Для этого способа используется библиотека my Stepper.h.
Провод | Фазы для шагового режима | |||
1 | 2 | 3 | 4 | |
4 оранжевый | ||||
3 желтый | ||||
2 розовый | ||||
1 синий |
2.Полушаговый режим — это когда запитывается первая обмотка, потом вторая и третья вместе, потом четвёртая и т.д. В Даташите разработчика указано, что предпочтительнее режим полушага для мотора. Подробно изображено на карте подключений:
Провод | Фазы для полушагового режима | |||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
4 оранжевый | ||||||||
3 желтый | ||||||||
2 розовый | ||||||||
1 синий |
Описание драйвера ULN2003
Плата представляет собой силовой модуль, который содержит в себе семь независимых транзисторов Дарлингтона. Каждая пара представляет собой каскад из двух биполярных транзисторов. ULN2003 является неким усилителем с током нагрузки 500 мА и напряжением 50 В. На изображении отображена сама плата и описание выводов к ней.
Управляющие входы IN1,IN2,IN3,IN4 подключаются к любым дискретным выводам Arduino Uno. Если кому интересно, можете прочитать статью здесь . Светодиоды отображают, какой шаг совершил двигатель. Выводы для подключения внешнего источника питания. Рекомендую запитывать отдельной батареей, так как нагрузка может возрастать до 1 А. Только не забудьте переставить джампер на внешнее питание двигателя.
Подключение к плате RAMPS 1.4
Правильное расположение драйверов DRV8825 и A4988 на плате Ramps
Обратите внимание, на то, каким образом должен стоять драйвер, неправильное расположение может и скорее всего выведет ваш драйвер из строя. В остальном, подключение не должно вызвать у вас, какие-либо, сложности. Для деления шага на плате предусмотрены джамперы прямо под колодкой драйвера.
Подключение драйвера к Arduino
Схема подключения A4988 к плате Arduino
Схема подключения драйвера A4988 для управления биполярным шаговым двигателем показана на рисунке выше. Вывод RESET подключен к выводу SLEEP, чтобы на нем был высокий уровень HIGH. Загрузим на плату Arduino скетч из примера №1, который управляет движением биполярного шагового двигателя с постоянной скоростью на один оборот в одну сторону, затем в другую, и далее в цикле.
Если после загрузки скетча не происходит движения двигателя, проверьте правильность подключения обмоток к выводам драйвера A4988. К выводам 2B и 2A (1A и 1B) подключаются провода двигателя, которые «прозваниваются» тестером.
PWM ШИМ
Задача возникла управлять обмотками шагового двигателя «по взрослому»: то есть с возможностью изменять количество импульсов и с возможностью задавать определенный период импульсов.
Сначала включаем в Cube MX таймер
У него может быть несколько каналов на выход , т.е. можем управлять несколькими ножками на выходе колнтроллера.
Настраиваем частоты для STM32F407VET6
Параметр Prescaler первым делом понижает частоту в n раз. У нас 8400 выбрано для удобства , 84MHz — частота APB2 peripheral clock , ну и еще в 100 раз уменьшим.
Как задается скважность?
Параметром таймера Counter Period (AutoReload register) задаем какое-то число (допустим 500).
А параметром Pulse конкретного канала таймера устанавливаем число от 0 до Counter Period.
Pulse /Counter Period- это скважность. В нашем случае 100/500 = 20%.
Обратите внимание на частоту сигнала 19,956Hz . 19,956 * 500 * 8400 = 83815200 — это частота генератора нашего таймера (APB2 peripheral clock).
CH Polarity
Для канала важно CH Polarity , что выставлено LOW | HIGH ?
Вот простой пример : если у канала стоит TIM_OCPOLARITY_LOW, и случается одиночный импульс, то выглядеть он может совсем не как импульс, в зависимости от того какой уровень на линии был до этого (0).
То есть при таком импульсе сначала идет установка в 0 , а потом в 1. Но дело в том ,что изначально у линии уже ноль был, поэтому мы видим не импульс , а ступеньку.
CH Polarity : HIGH это обычный вариант, когда импульс выглядит как 0-1-0, а LOW наоборот 1-0-1.