Как подключить драйвер шагового двигателя
Я его буду называть ниже просто “мотор”, для краткости.
Расскажу кратко, более подробно про него можно прочитать в википедии или тут.
Самый простой вариант:
Есть четыре электромагнитные катушки A, B, A’, B’. Если по ним пропускать ток — они становятся магнитами (катушки А и В активны при “прямом” направлении тока, A’ и B’ — при “обратном”).
Есть колесо с зубчиками (например, зубчик один — стрелка).
Зубчик притягивается к той катушке, по которой пропускают ток. Таким образом, если последовательно включать ток в катушках, то стрелка будет совершать вращательное движение.
Чтобы сделать это движение более плавным, можно добавлять зубчики, можно катушки, а можно и то и другое — принцип остаётся тот же, меняется только тяга и угол поворота за один вкл/выкл.
Обычно используется следующая конфигурация: катушки выстраиваются по четыре вдоль периметра вращения, на каждую четвёрку есть по зубцу, таким образом есть шестерёнка и много катушек вокруг неё.
Рассмотрим самую простую модель с четырьмя катушками и одним зубчиком.
Подумаем, какими способами можно вращать стрелку.
Допустим, начальное её положение — у B’.
1. Самое очевидное:
Включаем А: стрелка останавливается напротив А.
Выключаем А, включаем В: стрелка идёт к В и останавливает напротив.
Выключаем В, включаем A’: стрелка останавливает уже у A’.
Выключаем A’, включаем B’: стрелка идёт к B’ и останавливает напротив.
Выключаем B’, включаем А: стрелка останавливается напротив А. и т.д.
За каждый раз раз совершается вращение в 90 градусов, полный круг, соответственно, за четыре раза.
Быстро, но очень резко.
Чем плохо:
Резко, потому шумно.
Сразу большой угол поворота, поэтому в зависимости от груза инерция может быть большой, и разогнавшаяся стрелка не остановится сразу, поэтому нужна бОльшая задержка перед тем, как выключить текущую катушку и включить следующую.
Из-за проблемы выше, если скорость сделать слишком большой, можно потерять контроль над вращением, и у вас что-нибудь куда-нибудь улетит или движение станет совсем уж странным.
Чем хорошо: относительно просто реализуемо.
2. Чуть-чуть менее очевидное решение:
Включаем А и B’: стрелка останавливается между А и B’, ровно посередине.
Выключаем B’, включаем В: стрелка фиксируется между А и В.
Выключаем А, включаем A’: стрелка между В и A’.
Выключаем В, включаем B’: стрелка останавливается между A’ и B’.
Выключаем A’, включаем А: стрелка между B’ и А. И т.д.
За раз — те же 90 градусов, полный круг тоже за четыре раза.
Тоже резко.
Что плохо:
Все то же, что и в предыдущем методе
Плюс чуть-чуть сложнее в реализации, но не слишком.
Что хорошо:
Одновременно “в силе” сразу две катушки, то есть тяга гораздо лучше, чем у предыдущего метода.
Соответственно, порог скорость + инерция, после которого мы теряем управление, становится выше по сравнению с первым методом.
3. Измельчим шаги:
Пусть у нас для каждого мотора есть не только состояние вкл/выкл, а некая таблица состояний:
a)
0%
50%
100%
Здесь 50% означает, что сила тока в катушке 50% от максимальной.
Можно ещё мельче:
b)
0%
25%
50%
75%
100%
Или ещё мельче.
Тогда последовательность будет такой:
B’ 100%, А 0%
B’ 75%, А 25%
B’ 50%, А 50%
B’ 25%, А 75%
B’ 0%, А 100%
И то же самое для пар А-В, В-A’, A’-B’, B’-В
Что плохо:
Сложнее реализовать.
Что хорошо:
Шаг мельче, следовательно меньше шума и дребезжания, движение более плавное.
Меньше проблем с инерцией и потерей управления.
Можно сделать ещё мельче, и движение будет ещё плавнее.
4. Будем подавать ток аналоговым способом.
Так сказать предельный случай при увеличении частоты разбиения до бесконечности.
B’ плавно меняем от 100% до 0%, А от 0% до 100%, и так для всех пар А-В, В-A’, A’-B’, B’-В.
Чем хорошо:
Очень плавно, хороший контроль, хорошая тяга. И тишинааа.
Чем плохо:
Аналогово.
Запатентовано.
5. Используем следующий вариант:
Включаем B’ и А: стрелка между B’ и А.
Выключаем B’: стрелка у А.
Включаем В: стрелка между А и В.
Выключаем А: стрелка у В.
Включаем A’: стрелка между A’ и В.
Выключаем В: стрелка у A’.
Включаем B’: стрелка между B’ и A’.
Выключаем A’: стрелка у B’
Включаем А: стрелка между B’ и А.
И т.д.
Отличается от “0%,50%,100%” шага 3 только тягой. 5 — сильнее.
Методы 1, 2, 3, 5 — стандартные, у них даже есть обозначения.
Если считать положение “у катушки” за 1, а положение “между катушками” за 2, следующие обозначения станут понятными:
Режим 1 будет называться 1 phase (полношаговый) (стрелка останавливается только на фазе “1”), но он почти не используется — тяга нехороша и вообще.
Режим 2: 2 phase (полношаговый) (только на фазе “2”).
Режим 5: 1-2 phase (полушаговый) (останавливаемся и на “1” и на “2”).
Режим 3: В зависимости от частоты разбиения:
4 (Цикл от положения “перед катушкой” до “перед следующей катушкой” равен четырём шагам): 2W1-2 phase (2*2 = 4)
8: 4W1-2 phase (4*2 = 8)
По-русски микрошаговый.
Режим 3-а никак не называется, потому что не используется, а метод 4 — запатентован.
Таким образом, зависимость силы тока от времени на катушках А и В (A’ и B’ соответствуют отрицательным значениям силы тока) должна быть примерно такой (для случая 1-2 phase).
Можно, безусловно, подавать ток соответствующей силы в нужной последовательности прямо на мотор, а можно использовать чип, который сильно упрощает управление. Такой чип называют драйвером. Мы устанавливаем нужные настройки режимов (в регистры), постоянно подаём на драйвер сигнал таймера, и драйвер сам генерирует выход нужной конфигурации.
Нам нужно: сам драйвер (с мотором), таймер достаточной частоты и контролирующий девайс (процессор, микроконтроллер или fpga).
В общем случае, у драйвера есть пины, отвечающие за выставление режима, и управляющие пины.
Например, так:
Сам режим
Максимальная сила тока (от максимальной по спецификации).
Управляющие пины: таймер, направление вращения(по часовой стрелке, против часовой стрелки), пин сброса и пин enabled.
CW — clock-wise
CCW — counter clock-wise
Initial mode — заранее определённое состояние катушек, соответствующее “начальному”. Может быть разным для разных режимов. Например, 100% на А и 0% на В для 1-2 phase, 100% на А и -100% на В для 2 phase. Подержав мотор в этом режиме некоторое время, мы гарантируем, что мотор повёрнут определённым заранее известным образом. Можно начинать отсчёт с этого состояния (нам же нужно в каждый момент времени знать, на какой позиции находится мотор).
Наконец, мы имеем правильно выставленный режим (например, 1-2 phase) и работающий таймер. Тогда выход драйвера будет выглядеть следующим образом:
Для примера использовался драйвер от Тошиба TB6560AHQ/AFG, хотя подробности не сильно важны, так как цель статьи — рассказать именно общий принцип, не вдаваясь в детали.
В предыдущих статьях мы рассматривали процесс выбора шагового электродвигателя (см. статью«Как выбрать шаговый двигатель») в зависимости от способа его применения. В данной статье мы подробно рассмотрим как подключить шаговый двигатель.
КАК ПОДКЛЮЧИТЬ ШАГОВЫЙ ДВИГАТЕЛЬ С 4 ВЫВОДАМИ
Если в вашем распоряжении имеется шаговый двигатель, подключаемый при помощи только четырех проводов, это означает, что в нем две обмотки, это биполярный мотор и вы сможете использовать его только с биполярным драйвером. Обратите внимание на то, что каждая из фазных обмоток содержит пару проводов — для идентификации каждого провода используйте тестер (мультиметр).
Найдите замкнутые между собой провода(которые прозваниваются) и подключите их к шаговому двигателю. Лучше сразу свяжите их вместе, чтобы не повторять операцию постоянно
КАК ПОДКЛЮЧИТЬ УНИПОЛЯРНЫЙ ШАГОВЫЙ ДВИГАТЕЛЬ С 6 ВЫВОДАМИ
Также, как и шаговый двигатель с четырехконтактным соединением, униполярный двигатель с 6 проводами имеет пару проводов для каждой обмотки. Однако, он также имеет центральный вывод для каждой обмотки, что дает возможность подключать его как в качестве биполярного шагового двигателя, так и в качестве однополярного.
Для того, чтобы подключить шаговый двигатель с 6 выводами, с помощью тестера разделите все провода на три группы, замкнутые между собой, а затем найдите центральные выводы, измеряя сопротивление между проводами. Если вы хотите подключить ваш электродвигатель к униполярному драйверу, используйте все шесть проводов.
Подключение к биполярному драйверу(коих подавляющее большинство) потребует от вас использования только одного конца провода с одним выводом и одного центрального вывода для подключения к каждой обмотке.
Кроме того, определить обмотки можно только методом проб и ошибок; лучше всего попытаться найти центральный вывод, так как его сопротивление составляет половину от сопротивления других проводов.
В этой статье мы поговорим о шаговых двигателях в проектах Ардуино на примере очень популярной модели 28BYJ-48. Так же как и сервоприводы, шаговые моторы являются крайне важным элементом автоматизированных систем и робототехники. Их можно найти во многих устройствах рядом: от CD-привода до 3D-принтера или робота-манипулятора. В этой статье вы найдете описание схемы работы шаговых двигателей, пример подключения к Arduino с помощью драйверов на базе ULN2003 и примеры скетчей с использованием стандартной библиотеки Stepper.
Шаговый двигатель – это мотор, перемещающий свой вал в зависимости от заданных в программе микроконтроллера шагов и направления. Подобные устройства чаще всего используются в робототехнике, принтерах, манипуляторах, различных станках и прочих электронных приборах. Большим преимуществом шаговых двигателей над двигателями постоянного вращения является обеспечение точного углового позиционирования ротора. Также в шаговых двигателях имеется возможность быстрого старта, остановки, реверса.
Шаговый двигатель обеспечивает вращения ротора на заданный угол при соответствующем управляющем сигнале. Благодаря этому можно контролировать положение узлов механизмов и выходить в заданную позицию. Работа двигателя осуществляется следующим образом – в центральном вале имеется ряд магнитов и несколько катушек. При подаче питания создается магнитное поле, которое воздействует на магниты и заставляет вал вращаться. Такие параметры как угол поворота (шаги), направление движения задаются в программе для микроконтроллера.
Основные виды шаговых моторов:
- Двигатели с переменными магнитами (применяются довольно редко);
- Двигатели с постоянными магнитами;
- Гибридные двигатели (более сложные в изготовлении, стоят дороже, но являются самым распространенным видом шаговых двигателей).
Где купить шаговый двигатель
Самые простые двигатели Варианты на сайте AliExpress:
Драйвер для управления шаговым двигателем
Драйвер – это устройство, которое связывает контроллер и шаговый двигатель. Для управления биполярным шаговым двигателем чаще всего используется драйверы L298N и ULN2003.
Работа двигателя в биполярном режиме имеет несколько преимуществ:
- Увеличение крутящего момента на 40% по сравнению с униполярными двигателями;
- Возможность применения двигателей с любой конфигурацией фазной обмотки.
Но существенным минусов в биполярном режиме является сложность самого драйвера. Драйвер униполярного привода требует всего 4 транзисторных ключа, для обеспечения работы драйвера биполярного привода требуется более сложная схема. С каждой обмоткой отдельно нужно проводить различные действия – подключение к источнику питания, отключение. Для такой коммутации используется схема-мост с четырьмя ключами.
Драйвер шагового двигателя на базе L298N
Этот мостовой драйвер управляет двигателем с током до 2 А и питанием до 46В. Модуль на основе драйвера L298N состоит из микросхемы L298N, системы охлаждения, клеммных колодок, разъемов для подключения сигналов, стабилизатора напряжения и защитных диодов.
Драйвер шагового двигателя ULN2003
Другие драйвера
- Они позволяют стабилизировать фазные токи;
- Возможность установки микрошагового режима;
- Обеспечение защиты ключа от замыкания;
- Защита от перегрева;
- Оптоизоляция сигнала управления, высокая защищенность от помех.
В STEP/DIR драйверах используется 3 сигнала:
- STEP – импульс, который инициирует поворот на шаг/часть шага в зависимости от режима. От частоты следования импульсов будет определяться скорость вращения двигателя.
- DIR – сигнал, который задает направление вращения. Обычно при подаче высокого сигнала производится вращение по часовой стрелке. Этот тип сигнала формируется перед импульсом STEP.
- ENABLE – разрешение/запрет работы драйвера. С помощью этого сигнала можно остановить работу двигателя в режиме без тока удержания.
Одним из самых недорогих STEP/DIR драйверов является модуль TB6560-V2. Этот драйвер обеспечивает все необходимые функции и режимы.
Подключение шагового двигателя к Ардуино
Подключение будет рассмотрено на примере униполярного двигателя 28BYj-48 и драйверов L298 и ULN2003. В качестве платы будет использоваться Arduino Uno.
Еще один вариант схемы с использованием L298:
Принципиальная схема подключения.
Еще одна схема подключения биполярного шагового двигателя Nema17 через драйвер L298 выглядит следующим образом.
Обзор основных моделей шаговых двигателей для ардуино
Nema 17 – биполярный шаговый двигатель, который чаще всего используется в 3D принтерах и ЧПУ станках. Серия 170хHSхххА мотора является универсальной.
Основные характеристики двигателя:
28BYJ-48 – униполярный шаговый двигатель. Используется в небольших проектах роботов, сервоприводных устройствах, радиоуправляемых приборах.
- Номинальное питание – 5В;
- 4-х фазный двигатель, 5 проводов;
- Число шагов: 64;
- Угол шага 5,625°;
- Скорость вращения: 15 оборотов в секунду
- Крутящий момент 450 г/сантиметр;
- Сопротивление постоянного тока 50Ω ± 7% (25 ℃).
Описание библиотеки для работы с шаговым двигателем
В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:
Пример скетча для управления
В наборе примеров библиотеки Stepper.h существует программа stepper_oneRevolution, в которой задаются все параметры для шагового двигателя – количество шагов, скорость, поворот.
Заключение
В этой статье мы с вами узнали, что такое шаговый двигатель, как можно его подключить к ардуино, что такое драйвер шагового двигателя. Мы также рассмотрели пример написания скетча, использующего встроенную библиотеку Stepper. Как видим, ничего особенно сложного в работе с шаговыми моторами нет и мы рекомендуем вам обязательно поэкспериментировать самостоятельно и попробовать включить его в своих проектах Arduino.
В этой статье мы поговорим о шаговых двигателях в проектах Ардуино на примере очень популярной модели 28BYJ-48. Так же как и сервоприводы, шаговые моторы являются крайне важным элементом автоматизированных систем и робототехники. Их можно найти во многих устройствах рядом: от CD-привода до 3D-принтера или робота-манипулятора. В этой статье вы найдете описание схемы работы шаговых двигателей, пример подключения к Arduino с помощью драйверов на базе ULN2003 и примеры скетчей с использованием стандартной библиотеки Stepper.
Шаговый двигатель – это мотор, перемещающий свой вал в зависимости от заданных в программе микроконтроллера шагов и направления. Подобные устройства чаще всего используются в робототехнике, принтерах, манипуляторах, различных станках и прочих электронных приборах. Большим преимуществом шаговых двигателей над двигателями постоянного вращения является обеспечение точного углового позиционирования ротора. Также в шаговых двигателях имеется возможность быстрого старта, остановки, реверса.
Шаговый двигатель обеспечивает вращения ротора на заданный угол при соответствующем управляющем сигнале. Благодаря этому можно контролировать положение узлов механизмов и выходить в заданную позицию. Работа двигателя осуществляется следующим образом – в центральном вале имеется ряд магнитов и несколько катушек. При подаче питания создается магнитное поле, которое воздействует на магниты и заставляет вал вращаться. Такие параметры как угол поворота (шаги), направление движения задаются в программе для микроконтроллера.
Основные виды шаговых моторов:
- Двигатели с переменными магнитами (применяются довольно редко);
- Двигатели с постоянными магнитами;
- Гибридные двигатели (более сложные в изготовлении, стоят дороже, но являются самым распространенным видом шаговых двигателей).
Где купить шаговый двигатель
Самые простые двигатели Варианты на сайте AliExpress:
Драйвер для управления шаговым двигателем
Драйвер – это устройство, которое связывает контроллер и шаговый двигатель. Для управления биполярным шаговым двигателем чаще всего используется драйверы L298N и ULN2003.
Работа двигателя в биполярном режиме имеет несколько преимуществ:
- Увеличение крутящего момента на 40% по сравнению с униполярными двигателями;
- Возможность применения двигателей с любой конфигурацией фазной обмотки.
Но существенным минусов в биполярном режиме является сложность самого драйвера. Драйвер униполярного привода требует всего 4 транзисторных ключа, для обеспечения работы драйвера биполярного привода требуется более сложная схема. С каждой обмоткой отдельно нужно проводить различные действия – подключение к источнику питания, отключение. Для такой коммутации используется схема-мост с четырьмя ключами.
Драйвер шагового двигателя на базе L298N
Этот мостовой драйвер управляет двигателем с током до 2 А и питанием до 46В. Модуль на основе драйвера L298N состоит из микросхемы L298N, системы охлаждения, клеммных колодок, разъемов для подключения сигналов, стабилизатора напряжения и защитных диодов.
Драйвер шагового двигателя ULN2003
Другие драйвера
- Они позволяют стабилизировать фазные токи;
- Возможность установки микрошагового режима;
- Обеспечение защиты ключа от замыкания;
- Защита от перегрева;
- Оптоизоляция сигнала управления, высокая защищенность от помех.
В STEP/DIR драйверах используется 3 сигнала:
- STEP – импульс, который инициирует поворот на шаг/часть шага в зависимости от режима. От частоты следования импульсов будет определяться скорость вращения двигателя.
- DIR – сигнал, который задает направление вращения. Обычно при подаче высокого сигнала производится вращение по часовой стрелке. Этот тип сигнала формируется перед импульсом STEP.
- ENABLE – разрешение/запрет работы драйвера. С помощью этого сигнала можно остановить работу двигателя в режиме без тока удержания.
Одним из самых недорогих STEP/DIR драйверов является модуль TB6560-V2. Этот драйвер обеспечивает все необходимые функции и режимы.
Подключение шагового двигателя к Ардуино
Подключение будет рассмотрено на примере униполярного двигателя 28BYj-48 и драйверов L298 и ULN2003. В качестве платы будет использоваться Arduino Uno.
Еще один вариант схемы с использованием L298:
Принципиальная схема подключения.
Еще одна схема подключения биполярного шагового двигателя Nema17 через драйвер L298 выглядит следующим образом.
Обзор основных моделей шаговых двигателей для ардуино
Nema 17 – биполярный шаговый двигатель, который чаще всего используется в 3D принтерах и ЧПУ станках. Серия 170хHSхххА мотора является универсальной.
Основные характеристики двигателя:
28BYJ-48 – униполярный шаговый двигатель. Используется в небольших проектах роботов, сервоприводных устройствах, радиоуправляемых приборах.
- Номинальное питание – 5В;
- 4-х фазный двигатель, 5 проводов;
- Число шагов: 64;
- Угол шага 5,625°;
- Скорость вращения: 15 оборотов в секунду
- Крутящий момент 450 г/сантиметр;
- Сопротивление постоянного тока 50Ω ± 7% (25 ℃).
Описание библиотеки для работы с шаговым двигателем
В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:
Пример скетча для управления
В наборе примеров библиотеки Stepper.h существует программа stepper_oneRevolution, в которой задаются все параметры для шагового двигателя – количество шагов, скорость, поворот.
Заключение
В этой статье мы с вами узнали, что такое шаговый двигатель, как можно его подключить к ардуино, что такое драйвер шагового двигателя. Мы также рассмотрели пример написания скетча, использующего встроенную библиотеку Stepper. Как видим, ничего особенно сложного в работе с шаговыми моторами нет и мы рекомендуем вам обязательно поэкспериментировать самостоятельно и попробовать включить его в своих проектах Arduino.
Читайте также: