Драйвер шагового двигателя своими руками
Драйвер шагового двигателя своими руками
Шаговый двигатель используется в машинах для точного перемещения. Наладим управление шаговым двигателем через USB с компьютера своими руками. Нам потребуется:
1) Шаговый двигатель, возьмем — Nema23 76 мм, вместо него может быть другой, управлять будем биполяным методом, любой гибридный и биполярный шаговый двигатель будет работать с таким же управлением.
2) Блок питания, возьмем — импульсный блок питания мощностью 360W с выходным напряжением 24V / 15A, может использоваться любой другой блок питания, если будет достаточно мощности и напряжения для работы двигателя. Более мощному двигателю будет нужно больше напряжения. Предел напряжения нашего драйвера ограничивается максимальным напряжением, которое выдерживают транзисторы, это 100V, у нас блок питания на 24V. В случае большего напряжения транзисторы в схеме необходимо заменить на более мощные, также при увеличении напряжения, транзисторы могут начать греться, если такое случилось, необходимо дополнительно обдувать их куллером (у меня все в порядке и куллер не требуется). Для подключения блока питания к сети 220V также нужен шнур и нужно определить где в вашей розетке ноль, а где фаза. Контакт блока N подключается к нулю, а L к фазе, также можно подключить заземление (но не обязательно). Определение возможно при помощи индикаторной отвертки, у меня определилось, что слева ноль, а справа фаза.
Как крутить шаговый двигатель
Шаговый двигатель работает от подачи комбинаций напряжения в разных направлениях на его обмотки, у этого шагового двигателя 2 обмотки — 4 провода, первая обмотка — черный (A) и зеленый (A*) провод, вторая обмотка — красный (B) и синий (B*). За одну смену комбинаций делается 1 шаг — 1,8 градусов. Если комбинации быстро менять, то двигатель будет быстро и точно позиционироваться — крутиться. Смена комбинаций возможна в двух направлениях, соответственно двигатель будет крутиться вперед или назад.
Чтобы крутить шаговый двигатель, надо:
1) Собрать устройство — USB контроллер шагового двигателя на микроконтроллере AVR и драйвер шагового двигателя, 2 в 1. Перед тем как собирать это сложное устройство, рекомендую сначало отдельно собрать и проверить работу только USB контроллера, его я уже собрал вот тут — контроллер USB. Если USB связь работает нормально, то можно приступать к изготовлению драйвера.
2) Написать программу для компьютера, которая будет посылать USB команды устройству.
3) Написать программу для микроконтроллера AVR, которая будет принимать USB команды и крутить двигатель.
USB контроллер шаговых двигателей и USB драйвер шагового двигателя
Взятый нами двигатель является гибридным и поддерживает несколько вариантов управления. Управлять двигателем будем биполярным методом и соответственно собираем мы драйвер биполярного шагового двигателя с USB контроллером. Сначало покажу готовый результат, а потом подробно рассмотрим его. Вот фото собранного драйвера шагового двигателя с USB управлением, который я собрал:
Драйвер шагового двигателя с USB управлением своими руками
Схема драйвера биполярного шагового двигателя и USB контроллера (схема длинная и нуждается в прокрутке для просмотра):
Драйвер шагового двигателя USB на микроконтроллере AVR своими руками
Дополнительно нужно (нет в наличии):
1) Модуль питания DC-DC SMAU01L-12 (вместо него пойдет любой конвертер DC-DC с 5V до 10V-15V) — 1 шт., возможно можно без него, от 5V питать (не проверено)
Главным компонентом схемы является программируемый микроконтроллер AVR — ATmega16A, если вы не знаете как с ними работать (записывать программу), сначало ознакомьтесь с основами такой работы, которые подробно описаны в первой статье
управление машиной. Для устройства можно использовать и другой микроконтроллер AVR, я выбрал ATmega16A, т.к. в нем с запасом имеется много памяти и контактов для подключения нескольких двигателей и большого количества рабочих инструментов.
Слева от ATmega16A находятся компоненты для организации связи по протоколу USB — к выводам XTAL подключен внешний кварцевый резонатор с USB-совместимой частотой 12 МГц. Для сглаживания сигнала у него есть 2 конденсатора по 20 пФ, все это соединяется с минусом питания. К контактам, через которые идет обмен сообщениями с USB, подключены 2 резистора по 68 Ом, как того требует протокол USB. Резистор на 1.5 кОм, подключенный к D- линии задает низкоскоростной режим работы USB устройства. Диоды Зенера 3V6 понижают напряжение на линиях, через которые идет обмен данными USB с 5 до 3.6V.
Управление двигателем подключается к контактам PB0, PB1, PB2, PB3, на остальные свободные P-контакты можно в будующем подключить еще двигатели и рабочие инструменты, но пока они пустуют. Микроконтроллер ATmega16 отдает команды и обрабатывает USB сигналы после того как в него записана программа (ниже она будет написана). После него идет конструкция из микросхем IR2102 и транзисторов IRF540N (2 так называемых H-моста) — она приводит шаговый двигатель в движение.
Драйвер IR2101 нужен для преодаления большой емкости затвора транзистора IRF540N, что позволяет открывать и закрыть транзистор с большой скоростью (например принимать сигнал ШИМ, которым может регулироваться скорость двигателя при необходимости — об этом сигнале дальше напишу), что нам и нужно. К сожалению для питания этого драйвера необходимо 10-15V, у нас есть только 5V от USB. Поэтому пришлось поставить компонент DC-DC SMAU01L-12, который преобразует 5V в 12V, вместо него можно использовать любой другой способ получения такого напряжения, например, при помощи трансформатора или любым другим путем. К VCC подключается +12V, к COM -12V. Один драйвер работает с 2мя транзисторами — верхним (H) и нижним (L). Контакты HIN и LIN — входной сигнал с микроконтроллера для верхнего и нижнего транзистора, по этому сигналу транзисторы открываются и закрываются. HO и LO — это выходные сигналы, транзисторы подключаются гейтами (G) к этим контактам. Они подключаются не просто так — справа на линиях 2 резистора 10/100 Ом и диод, они нужны для нормальной работы транзисторов — чтобы они замедлялись при открытии и не замедлялись при закрытии, эти транзисторы слишком быстро открываются и это может вызвать проблемы. Диод и конденсаторы 3300 пФ — нужны для работы драйвера IR2101 согласно документации на эту микросхему.
Каждая обмотка (фаза) двигателя (у двигателя 2 обмотки A и B — 4 контакта) подключается к H-мосту из транзисторов IRF540N. H-мост — это специальная схема соединения транзисторов, которая позволяет подавать через них напряжение высокого уровня (24V) в разных направлениях. Один мост изготавливается из 4-х транзисторов. В итоге здесь вы видите 2 H-моста, которые позволяют гонять разнонаправленное напряжение высокого уровня по 2м обмоткам двигателя и тем самым крутить его.
Обратите внимание, что в мосту — HIN верхнего драйвера соединяется с LIN нижнего драйвера, а LIN верхнего с HIN нижнего. Это сделано для одновременной подачи сигналов. Если вы включили HIN сверху, то обязаны включить LIN с низу, иначе произойдет короткое замыкание. Такое подключение позволяет автоматом включать пару. Впрочем короткое замыкание все же возможно, если вы откроете и HIN и LIN на одном мосте, поэтому не допускайте этого. На контактах PB0 — PB3 допустимы только значения 0000, 1010, 0110, 0101, 1001. Их перебор крутит двигатель. Подача других значений скорей всего приведет к короткому замыканию моста.
Мощные резисторы с низким номиналом 0.1 Ом и высокой мощностью (3-5 Вт) нужны для защиты от высокого тока — это шунты. Если что их можно снять и заменить простым соединением с минусом питания, если например не будет хватать мощности. Для слабых резисторов мощность берется от тока USB: 0.05 А * 5 V = 0.25 Вт (ток USB задается программно, по умолчанию в нашей программе стоит 0.05). Черная полоска на диодах соответствует вертикальной линии на схеме.
Шаговый двигатель и блок питания подключаются к H-мостам, как показано на схеме. Минусы питания 24V, 12V и 5V соединяются. Между плюсом и минусом 24V линии ставится сглаживающий пленочный конденсатор.
Отдельное крупное фото драйвера шагового двигателя:
Motor Shield
Хотите подключить мотор к Arduino или Iskra JS?! К сожалению микроконтроллер установленный на управляющих платформах не сможет без посторонней помощи управлять большой нагрузкой. Motor Shield поможет микроконтроллеру управлять коллекторными моторами и шаговыми двигателями.
Motor Shield — это плата расширения, предназначенная для двухканального управления скоростью и направлением вращения коллекторных двигателей постоянного тока, напряжением 5–24 В и максимальным током до двух ампер на канал.
Плата расширения также сможет управлять одним биполярным шаговым двигателем.
Видеообзор
Подключение и настройка
Примеры работы для Arduino
Управление коллекторными двигателями
Подключите два коллекторных мотора к клеммникам M1 и M2 соответственно.
Схема устройства
Код программы
Для начала покрутим каждый мотор в одну, а затем другую сторону.
Код программы
Усложним задачу. Будем плавно увеличивать скорость первого мотора до максимальной скорости, а потом понижать до полного выключения. Аналогично проделываем со вторым мотором.
Управление биполярным шаговым двигателем
Драйвер моторов может на себя также взять управления шаговым двигателем. В качестве примера подключим шаговый двигатель 42STH47-0406A.
Схема устройства
Управление без библиотек
Motor Shield поддерживает три режима управления биполярным шаговым двигателем:
Код программы
Протестируем по очереди три режима управления.
Скорость вращения шагового двигателя очень сильно влияет на развиваемый мотором момент. Убедитесь сами. Запустите этот же пример с разными значениями delayTime .
Обратите внимание, что двигатель в однофазном полношаговом режиме позволяет развить гораздо меньший момент, чем в двухфазном полношаговом режиме.
Управление через готовую библиотеку
Для лёгкого и быстрого управления шаговым двигателем мы написали библиотеку AmperkaStepper. Она скрывает в себе все тонкости работы с мотором и предоставляет удобные методы.
Пример работы в различных режимах
Пример работы для Espruino
Управление коллекторными двигателями
Подключите два коллекторных мотора к клеммникам M1 и M2 соответственно.
Схема устройства
Код программы
Для начала покрутим каждый мотор в одну, а затем другую сторону.
Код программы
Усложним задачу. Будем плавно увеличивать скорость первого мотора до максимальной скорости, а потом понижать до полного выключения. Аналогично проделываем со вторым мотором.
Элементы платы
Драйвер двигателей
Сердце и мускулы платы — микросхема двухканального H-моста L298P.
Термин «H-мост» появился благодаря графическому изображению схемы, напоминающему букву «Н». H-мост состоит из четырёх ключей. В зависимости от текущего состояние переключателей возможно разное состояние мотора.
S1 | S2 | S3 | S4 | Результат |
---|---|---|---|---|
1 | 1 | Мотор крутится вправо | ||
1 | 1 | Мотор крутится влево | ||
Свободное вращение мотора | ||||
1 | 1 | Мотор тормозит | ||
1 | 1 | Мотор тормозит | ||
1 | 1 | Короткое замыкание источника питания | ||
1 | 1 | Короткое замыкание источника питания |
Ключи меняем на транзисторы для регулировки скорости мотора с помощью ШИМ-сигнала.
H-мост с силовыми ключами — основная начинка микросхемы L298P для управления скоростью и направлением двигателей.
Питание
На плате расширения Motor Shield два контура питания.
Если отсутствует хотя бы один из контуров питания — Motor Shield работать не будет.
Силовое питание подключается через клеммник PWR . Диапазон входного напряжения:
При подключении питания соблюдайте полярность. Неправильное подключение может привести к непредсказуемому поведению или выходу из строя платы или источника питания.
Джампер объединения питания
Motor Shield использует два контура питания: силовое и цифровое. По умолчанию для питания всей конструкции необходимо два источника напряжения:
При установки джампера в положение PWR JOIN , происходит объединение контакта Vin управляющей платформы и положительного контакта клеммника PWR . Режим объединённого питания позволяет запитывать управляющую платформу и силовую часть драйвера от одного источника питания.
При объединённом режиме напряжение может быть подано двумя способами:
При работе двигателей по цепи питания может проходить очень большой ток, на который цепь Vin управляющей платформы не рассчитана. Поэтому выбор для питания клеммника PWR предпочтительнее.
В режиме совместного питания управляющей платформы и Motor Shield, используйте входное напряжение в диапазоне 7–12 вольт. Напряжение более 12 вольт убьёт управляющую платформу. Если вы хотите работать с Motor Shield в диапазоне 5–24 вольта, используйте два отдельных источника питания.
Источник питания должен быть способен обеспечить стабильное напряжение при резких скачках нагрузки. Даже кратковременная просадка напряжения может привести к перезагрузке управляющей платформы. В итоге программа начнётся сначала и поведения двигателей будет неадекватным.
При объединённом питании используйте литий-ионные и никель-металлгидридные аккумуляторы. Если вы используете другие источники питания, лучше воспользуйтесь раздельной схемой питания управляющей платформы и Motor Shield.
Нагрузка
Нагрузка разделена на два независимых канала. К каждому каналу можно подключить один коллекторный мотор. Первый канал на плате обозначен шёлком M1 , второй канал — M2 .
Обозначения «+» и «−» показывают воображаемые начало и конец обмотки. Если подключить два коллекторных двигателя, чтобы их одноимённые контакты щёточного узла соответствовали одному и тому же обозначению на плате, то при подаче на Motor Shield одинаковых управляющих импульсов, моторы будут вращаться в одну и ту же сторону.
Светодиодная индикация
Имя светодиода | Назначение |
---|---|
PWR | Индикация состояния силового питания. Есть питание — светодиод горит, нет питания — не горит. |
H1 | Индикация состояния направления первого канала M1 . При высоком логическом уровне светится зелёным светом, при низком — красным. |
H2 | Индикация состояния направления второго канала M2 . При высоком логическом уровне светится зелёным светом, при низком — красным. |
E1 | Индикация скорости первого канала M1 . Яркость светодиода пропорциональна скорости вращения двигателя. |
E2 | Индикация скорости второго канала M2 . Яркость светодиода пропорциональна скорости вращения двигателя. |
Пины управления скоростью вращения двигателей
Для запуска двигателя на первом или втором канале установите высокий уровень на пинах скорости E1 или E2 соответственно. Для остановки моторов установите на соответствующих пинах низкий уровень.
Управление скоростью происходит при помощи ШИМ, за счёт быстрого включения и выключения нагрузки.
Пины управления направлением вращения двигателей
Пины направления H1 или H2 отвечают за направление вращения двигателей. Смена направления вращения коллекторных двигателей достигается за счёт изменения полярности приложенного к ним напряжения.
Контакты выбора управляющих пинов
По умолчанию Motor Shield для управления скоростью и направлением вращения моторов использует пины управляющей платы:
Назначение | Канал 1 | Канал 2 |
---|---|---|
Скорость | 5 | 6 |
Направление | 4 | 7 |
Если в вашем устройстве эти пины уже заняты, например используются для управления Relay Shield), вы можете использовать другой свободный пин.
Контакты отвечающие за направления — H1 и H2 можно заменять на любые другие. А вот контакты управляющие скоростью моторов — E1 и E2 , можно перебрасывать только на пины с поддержкой ШИМ.
Для переброски пинов снимите джампер напротив занятого пина и припаяйте проводок между луженым отверстием рядом со снятым джампером и луженым отверстием напротив нужного пина. На этой картинке мы перекинули:
Можно ли использовать драйвер двигателя на 5 В для двигателя на 24 В?
user16307
Я управляю двигателем 5 В с помощью Arduino, но мне нужно больше крутящего момента, что означает более мощный двигатель. Вот моя схема. (Я взял это из учебника):
Здесь Arduino управляет однополярным шаговым двигателем 5 В через транзистор Дарлингтона.
У меня вопрос: если я просто заменю этот двигатель на 24 В и буду питать новый двигатель внешним источником питания 24 В и останусь неизменной конфигурацией покоя, будет ли двигатель по-прежнему управляться? Или мне нужна другая конфигурация?
Брайан Карлтон
user16307
Мэтт Янг
Крис К
HikeOnPast
Из таблицы данных UNL2803A имеет Vce (поддерживающий) 50 В. При условии, что максимальный ток для вашего шагового устройства 24 В составляет 500 мА или менее, и вы осторожны с заземлением, оно должно работать на вас. Обязательно подайте на двигатель и 2803 только +24 В (а не Arduino!).
РЕДАКТИРОВАТЬ: ваша схема будет выглядеть примерно так. Обратите внимание, что есть только одно место, где возврат 24 В и цифровое заземление соединены вместе. Проводка 24 В будет передавать больше тока, чем цифровая; принять это во внимание. Кроме того, комментарии Ричмана о рассеянии мощности являются точными. Вы должны будете принять это во внимание при выборе двигателя.
(Извинения за взломать диаграмму)
user16307
HikeOnPast
user16307
HikeOnPast
user16307
Крис Страттон
Вообще говоря, шаговые устройства 24 В не являются устройствами с высоким крутящим моментом — большинство из них от дешевых принтеров. Большинство шаговых устройств с высоким крутящим моментом на самом деле имеют довольно низкие номинальные напряжения (и высокие токи), потому что они имеют короткие обмотки, предназначенные для уменьшения индуктивного сопротивления при высоких скоростях шага. Для поддержания крутящего момента при увеличении скорости шага используются прерыватели, которые многократно подают номинальное напряжение катушки, чтобы пропустить ток через индуктивность обмотки, но используют регулировку ширины импульса, чтобы ток не превышал номинальные / безопасные характеристики.
Некоторые маломощные встроенные мостовые (и, вероятно, однополярные) драйверы работают в режимах прерывания до 40 или 50 В. Для более высоких напряжений, используемых на станках и т. Д., Обычно используются дискретные N МОП-транзисторов.
Очевидно, что существует множество разрушительных режимов отказа схемы такого типа.
user16307
Крис Страттон
Тони Э. Ракетолог
Пакет ULN2xxx может иметь мощность 500 А на порт. Выход Darlington имеет преимущество в 1000х усиления по току в этом пакете, но гораздо выше, чем Vce, поэтому насыщение рассеивается. Определите температуру перехода на основе P = Vce * Ic * n, для n активных фаз одновременно. Состояние упаковки 55 ° C / W и 125 ° C — абсолютный максимум. (pref 80’C max)
Это хорошая часть, но ограничена в мощности. Это легко вычисляется, если вы знаете, что ток двигателя под нагрузкой.
Шаговый двигатель 24в схема
Мини станок для сверления печатных плат
Автор: er-ror
Опубликовано 13.09.2011
Создано при помощи КотоРед.
2011
Для начала поздравление для РадиоКота: С Днем Рождения.
Теперь можно начинать.
Необходимость создания данной конструкции возникла после успешно сломанных полдесятка сверл диаметром 0.6 мм с использованием самодельного ручного дремеля (двигатель с закрепленной цангой).
Оценив стоявшие перед станком основные задачи, было решено использовать в конструкции станка шаговый двигатель для подъема и опускания дремеля, модуль индикации для визуального отображения настроек, возможность работы с внешними кнопками «педалями» для освобождения рук.
Отличным донорным вариантом для реализации силовой и механической части оказался принтер Canon IP1000 (i250/255, i350/355 аналогичные). Эти принтера были «хитами» своего времени, поэтому достаточно распространенные, и болезнь у них практически одна — неисправность печатающей головки, а ее замена не целесообразна в виду высокой стоимости.
Из принтера были взяты:
— двигатель постоянного тока на 24в (привода каретки) для дремеля;
— двигатель шаговый на 24в (прокрутки бумаги) для подъема и опускания дремеля;
— драйвер TB62207BFG для управления двигателями, очень функциональная и интересная микросхема, но об этом ниже;
— кое-какие элементы с платы;
— блок питания на 24в, он там даже конструктивно выполнен в отдельном корпусе.
Для реализации индикации был применен 8-разрядный ЖК индикатор ЖКИ 13-8/7-02, с драйверами КР1820ВГ1. Преимущество использования такой индикации – это существенная экономия выводов микроконтроллера (достаточно 4-х выводов) и малое потребление тока.
Модули индикации (см. рис.1) с данным ЖКИ широко используются в кассовых аппаратах российского производства, хорошо распространены на просторах СНГ, их в сборе можно достать у мастеров любого центра технического обслуживания кассовых аппаратов.
Управляющим контроллером взят AT89C51.
Все элементы схемы выбирались из критерия «что есть под рукой».
Теперь о функциональности станка.
— расстояние опускания/подъема сверла может быть разделено на одну или две зоны, в каждой из них возможна регулировка скорости опускания/подъема через меню настроек. Эта функция очень полезна для экономии времени при установке/замене сверла.
— возможность настройки крутящего момента, ослабления тока в обмотках шагового двигателя через меню настроек;
— возможность выбора направления и скорости вращения сверла;
— для контроля крайних положений, зональности и индикации оборотов сверла применены оптодатчики аналогичные тем, что используются в шариковых мышках.
— возможность включения подсветки через меню;
— возможность включения звукового сопровождения нажатия кнопок через меню;
— возможность подключения внешних кнопок подъема/опускания дремеля («педалей») распознает автоматически (при подключении автоматически переназначаются функции пульта);
— индикация всех настроек и текущего состояния на дисплее и дополнительно на светодиодах;
— сохранение настроек в энергонезависимую память.
Принципиальная схема представлена на рис.2
Основным узлом является микроконтроллер IC1- AT89C51. Микроконтроллер имеет два источника прерывания по изменению внешнего сигнала один из них отслеживает момент срабатывания датчиков положения дремеля через логический элемент DD1.1 3ИЛИ-НЕ, второй используется для замера оборотов сверла. Сразу оговорюсь что функция замера оборотов сделана скорее как «примочка», так как свободных ресурсов периферии контроллера не осталось, то обороты он показывает с точность +/- 54 единицы, что при высоких оборотах двигателя не особо существенно.
Для сохранения настроек применена микросхема IC3 — AT24C16.
Звуковое оповещение происходит посредством излучателя EP1 — HCM1206a, это излучатель без встроенного генератора (из материнской платы компьютера), сигнал с частотой около 2-х кГц генерирует контроллер.
Набор резисторов DR1 необходим для подтяжки выводов контроллера с открытым коллектором.
Светодиоды LED2-LED5 – зеленые smd — служат для индикации нажатия кнопок вверх/вниз и направления вращения сверла (вместе с резисторами R21, R25, R26, R28 можно не устанавливать).
Светодиод LED1 – подсветка места сверления – устанавливается непосредственно на дремеле.
Вернемся к драйверу IC2 — TB62207. Данная микросхема представляет собой универсальный двухканальный драйвер шаговых двигателей или двигателей постоянного тока или различных их комбинаций, двухканальный стабилизатор напряжения и имеет цифровое управление по последовательному каналу, что также экономит выводы микроконтроллера.
В данном устройстве драйвер конфигурируется для работы с одним биполярным шаговым двигателем в микрошаговом режиме (16 шагов), одним двигателем постоянного тока увеличенной мощности и одним каналом преобразователя напряжения на 5в.
Вся обвязка драйвера взята из платы принтера. Позиционные обозначения элементов платы принтера указаны в скобках на рисунке печатной платы. Схему обвязки можно упростить исключив элементы (C3, C4, C6, C8, C10, C11, C14, C16, C18, C21, C22, C26, C27) согласно даташиту они отсутствуют на типовой схеме включения, но это возможно уменьшит надежность работы схемы, в принтере они присутствуют.
Конструктивно станок состоит из 5-и блоков:
1.Пульт управления с индикацией рис.3, рис.4;
2.Плата управления с контроллером рис.5, рис.6;