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

Управление биполярным шаговым двигателем без использования драйвера

Как-то раз мне захотелось поэксперементировать с шаговыми двигателями. С униполярным двигателем всё очень просто, достаточно полумоста на очень бюджетной микросхеме ULN2003 или ULN2803. А вот с биполярным двигателем всё гораздо сложнее. Он имеет минимум две обмотки, на каждом конце которых полярность питания должна меняться на противоположную. Кто-то скажет «зачем изобретать велосипед? Купи драйвер на L239 и радуйся жизни», может быть это и правильно, но мы же не ищем лёгких путей, да и что-нибудь спаять руки чешутся (а драйверы были куплены, просто они ещё ехали из Китая). Немного покопавшись в интернете, я заинтересовался такой штукой, как H-мост.

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

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

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

  • Увеличение крутящего момента на 40% по сравнению с униполярными двигателями;
  • Возможность применения двигателей с любой конфигурацией фазной обмотки.

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

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

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


Драйвер двигателя L298N

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


Описание драйвера шаговых двигателей UNL2003

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

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

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

  • Они позволяют стабилизировать фазные токи;
  • Возможность установки микрошагового режима;
  • Обеспечение защиты ключа от замыкания;
  • Защита от перегрева;
  • Оптоизоляция сигнала управления, высокая защищенность от помех.

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

  • STEP – импульс, который инициирует поворот на шаг/часть шага в зависимости от режима. От частоты следования импульсов будет определяться скорость вращения двигателя.
  • DIR – сигнал, который задает направление вращения. Обычно при подаче высокого сигнала производится вращение по часовой стрелке. Этот тип сигнала формируется перед импульсом STEP.
  • ENABLE – разрешение/запрет работы драйвера. С помощью этого сигнала можно остановить работу двигателя в режиме без тока удержания.

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

1Что такое драйвер двигателей и для чего он нужен

Максимальный ток на выводах Arduino слаб (около 50 мА) для такой мощной нагрузки как электромотор (десятки и сотни миллиампер). Поэтому напрямую к выводам Arduino подключать электродвигатель нельзя: есть риск сжечь вывод, к которому подключён двигатель. Для безопасного подключения электродвигателей разных типов к Arduino необходим самодельный или промышленно изготовленный т.н. драйвер двигателей. Драйверы двигателей бывают разные, для их работы часто используются микросхемы типа HG788, L9110S, L293D, L298N и другие. Драйверы двигателей имеют выводы подачи питания, выводы для подключения электродвигателей, а также управляющие выводы.

Различные варианты исполнения драйверов двигателей

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

БИБЛИОТЕКА GYVERSTEPPER

GyverStepper v1.5

GyverStepper – производительная библиотека для управления шаговыми моторами

  • Поддержка 4х фазных (шаг и полушаг) и STEP-DIR драйверов
  • Автоматическое отключение питания при достижении цели
  • Режимы работы: Вращение с заданной скоростью
  • Следование к позиции с ускорением и ограничением скорости
  • Следование к позиции с заданной скоростью (без ускорения)

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

  • Модифицированный планировщик из библиотеки AccelStepper: максимальная плавность и скорость до 7’000 шагов/секс ускорением (для активации пропиши дефайн SMOOTH_ALGORITHM )

Мой планировщик обеспечивает максимальную производительность: скорость до 30’000 шагов/сек с ускорением (активен по умолчанию). Т.е. на небольшой скорости экономит кучу процессорного времени для других задач.

Поддерживаемые платформы: все Arduino (используются стандартные Wiring-функции)

Версия 1.1: добавлена возможность плавно менять скорость в режиме KEEP_SPEED. Добавлены примеры multiStepper и accelDeccelButton Версия 1.2: добавлена поддержка ESP и других Ардуино-совместимых плат Версия 1.3: исправлена логика setTarget(val, RELATIVE) Версия 1.4: добавлена задержка между STEP HIGH и STEP LOW

Технические характеристики Motor Shield L293D

Motor Shield L293D имеет следующие характеристики :

Разберемся же, из чего состоит этот motor shield. На фотографии ниже вы можете найти цифры, на которые мы будем опираться.

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

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

Драйвер двигателя в проектах ардуино

Для чего нужен драйвер двигателя?

Как известно, плата ардуино имеет существенные ограничения по силе тока присоединенной к ней нагрузки. Для платы это 800 mA, а для каждого отдельного вывода – и того меньше, 40mA. Мы не можем подключить напрямую к Arduino Uno, Mega или Nano даже самый маленький двигатель постоянного тока. Любой из этих двигателей в момент запуска или остановки создаст пиковые броски тока,  превышающие этот предел.

Как же тогда подключить двигатель к ардуино? Есть несколько вариантов действий:

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

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

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

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

Микросхема или плата расширения Motor Shield

Motor Shield – плата расширения для Ардуино, которая обеспечивает работу двигателей постоянного тока и шаговых двигателей. Самыми популярными платами Motor Shield являются схемы на базе чипов L298N и L293D, которые могут управлять несколькими двигателями. На плате установлен комплект сквозных колодок Ардуино Rev3, позволяющие устанавливать другие платы расширения. Также на плате имеется возможность выбора источника напряжения – Motor Shield может питаться как от Ардуино, так и от внешнего источника. На плате имеется светодиод, который показывает, работает ли устройство. Все это делает использование драйвера очень простым и надежным – не нужно самим изобретать велосипеды и решать уже кем-то решенные проблемы. В этой статье мы будем говорить именно о шилдах.

Принцип действия H-моста

Принцип работы драйвера двигателя основан на принципе работы H-моста. H-мост является электронной схемой, которая состоит из четырех ключей с нагрузкой. Название моста появилось из напоминающей букву H конфигурации схемы.

Схема моста изображена на рисунке. Q1…Q4 0 полевые, биполярные или  IGBT транзисторы. Последние используются в высоковольтных сетях. Биполярные транзисторы практически не используются, они могут присутствовать в маломощных схемах. Для больших токов берут полевые транзисторы с изолированным затвором. Ключи не должны быть замкнуты вместе одновременно, чтобы не произошло короткого замыкания источника. Диоды D1…D4 ограничительные, обычно используются диоды Шоттки.

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

Q1Q2Q3Q4Состояние
11Поворот мотора вправо
11Поворот мотора влево
Свободное вращение
11Торможение
11Торможение
11Короткое замыкание
11Короткое замыкание

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

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

Шаговый двигатель Nema17 42BYGH 1.7A (17HS4401-S) для 3D принтераНабор из 5 шаговых двигателей ULN2003 28BYJ-48 с платам драйверов для АрдуиноШаговый двигатель с модулем драйвера 5V Stepper Motor 28BYJ-48 + ULN2003
Еще один вариант шагового двигателя для Arduino 28BYJ-48 5V 4 Phase DC Motor + ULN2003 Drive Test BoardНабор из трех шаговых двигателей Nema17 Stepper Motor 42BYGH 1.7A (17HS4401) для 3D приентераAliExpress.com Product – 3D Printer Parts StepStick A4988 DRV8825 Stepper Motor Driver With Heat sink Carrier Reprap RAMPS 1.4 1.5 1.6 MKS GEN V1.4 board

Настройка тока DRV8825.

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

Для настройки необходимо рассчитать значение напряжения Vref.

Vref = Current Limit / 2

где,

Current Limit — номинальный ток двигателя.

Для примера рассмотрим двигатель NEMA 17 17HS4401 с током 1,7 А.

Vref = 1,7 / 2 = 0,85 В.

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

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

Подключим двигатель DRV8825 к Arduino UNO по схеме.

Для этого подключаем GND LOGIC к GND на Arduino. Контакты DIR и STEP подключим к цифровым контактам 2 и 3 на Arduino. Подключение шагового двигателя к контактам B2, B1, A2 и A1.

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

Затем необходимо подключить контакт RST к соседнему контакту SLP к 5В на Arduino, чтобы включить драйвер. А контакты выбора микрошага необходимо оставить не подключенными, чтобы работал режим полный микрошаг. Теперь осталось подключить питание двигателя к контактам VMOT и GND MOT, главное не забудьте подключить электролитический конденсатор на 100 мкФ к контактам питания двигателя. В противном случае, при скачке напряжения модуль может выйти из строя.

Скетч вращения шагового двигателя NEMA 17, драйвер DRV8825.

Как уже было упомянуто выше, драйвер DRV8825 заменим драйвером A4988, поэтому и код вращения двигателем можно взять из предыдущей статьи: Драйвер шагового двигателя A4988. Но для увеличения кругозора сегодня будем использовать код вращения двигателя nema 17 без использования библиотеки.

const int dirPin = 2;
const int stepPin = 3;
const int stepsPerRevolution = 200;

void setup()
{
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}
void loop()
{
  digitalWrite(dirPin, HIGH); // Установка вращения по часовой стрелки
  
  for(int x = 0; x > stepsPerRevolution; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(2000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(2000);
  }
  delay(1000);
  
  digitalWrite(dirPin, LOW); // Установка вращения против часовой стрелки

  for(int x = 0; x < stepsPerRevolution; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
  }
  delay(1000);
}

Описание скетча:

Для работы данного скетча, не требуется никаких библиотек. Программа начинается с определения выводов Arduino, к которым подключены выводы STEP и DIR. Так же указываем stepsPerRevolution количество шагов на оборот.

В функции void setup() указываем управляющие контакты как выход.

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

Подробнее о подключении шаговых двигателей к Ardiono смотрите на сайте Ардуино технологии.

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

Распиновку и как подключать модуль драйвера DRV8825 будем рассматривать в следующей статье.

Использование драйвера DRV8825 с CNC shield v3.

Драйвер DRV8825 можно установить на CNC shield v3. CNC shield используются для управления ЧПУ станками и облегчают сборку электроники.

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

Вывод можно сделать следующий. Драйвер DRV8825 обладает рядом преимуществ перед драйвером A4988. А также, при использовании драйвера шагового двигателя DRV8825, меньше шума от шаговых двигателей. Это актуально при сборке лазерного гравера, 3D принтера. Когда при работе главный источник шума – это механика и гул шаговых двигателей.

Понравился статья Драйвер шагового двигателя DRV8825? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу , в группу на .

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Скачивая материал, я соглашаюсь с
Правилами скачивания и использования материалов.

drv8825-datasheet.pdf743 Kb 395 Скачать

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

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

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

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

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

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

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

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

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

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

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

  1. Реактивные.
  2. С постоянными магнитами.
  3. Гибридные.

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

  1. Униполярные (однополярные — ток пропускают через обмотки только в одну сторону).
  2. Биполярные (ток пропускают через обмотки в обе стороны). Здесь драйвер должен подавать напряжение различной полярности, что несколько усложняет схемотехнику. При тех же размерах развивают бОльшую мощность по сравнению с униполярными.

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

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

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

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

  1. Полношаговое. Одновременно включается только пара обмоток (без перекрытия с другими). Достигается максимальный момент на валу, но точность установления угла меньше, чем в других способах.
  2. Полушаговое. В этом случае увеличивается количество шагов, соответственно повышается точность установки положения вала. На каждый первый шаг включается одна обмотка, на каждый второй шагами (полушаг) – пара обмоток. Но когда включена одна обмотка момент на валу снижается вдвое.

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

Полношаговое управление

Полушаговое управление

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

Второй вариант.

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

Ниже представлен скетч второго варианта, он имеет уже 8 настроек.

Две настройки как и в первом варианте это t1 и t2, которые являются задержкой между переключениями фаз.

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

И 4 настройки, это переменная i которая имеет значение 50 . Эта переменная отвечает за количество шагов, которые необходимо выполнить при срабатывании концевика. То есть при срабатывании концевика, шаговый двигатель останавливается и выполняет обратное вращение чтобы отъехать от концевика на количество шагов, которое прописано в переменной i.

Можете загрузить скетч как есть, или при желании предварительно подредактировать настройки.

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

Как видите концевики подключаются параллельно, это означает что всего на 2 контакта можно подключать любое количество концевиков. И при срабатывании любого из них, вал двигателя отъедет в обратном направлении, не зависимо от того какой из двигателей работал и в каком направлении вращался вал.

Если все собрано, то можете подключить питание и протестировать устройство.

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

Шаговый двигатель от CD-ROM — запуск на Arduino без драйвера

Добрый вечер ребята. У меня такой вопрос. Как правильно подключить и запустить на ардуино шаговый двигатель от дисковода без драйвера и как урправлять реверсом? Заранее всем откликнувшимся большое спасибо за помощь.

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

Там нет шагового двигателя. Там три других двигателя: один обычный коллекторный моторчик, который открывает/закрывает каретку. И два трёхфазных бесколлекторных двигателя: один крутит диск (побольше), другой двигает лазерную головку (поменьше).

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

Хмм . А я видел привод каретки и от коллекторного и от шагового движков.

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

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

Меня значит интересует тот который двигает лазерную головку ( у него 4 контакта). Как его можно подключить без драйвера к ардуино и сделать реверс программно??

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

Похоже я ошибся и двигатель, который двигает головку всё-таки биполярный шаговый.

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

Спасибо за ролики я первый смотрел уже, там через драйвер. Можно ли обойтись без драйвера?

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

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

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

Через транзистор реверсить не получится надо или мост или полумост.

вообщетто непонятно , как Вы нашли этот форум, если не умеете пользоваться поиском?

а если умеете то почему не ищете сами?

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

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

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

Спасибо вам. через Н-мост попробую Но я так понимаю если случайно запусить оба транзистора то будет короткое замыкание цепи (например нажал на пульте две кнопки Вперед и Назад одновременно).

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

Да, будет коротыш. Именно роэтому лучше применить мелкосхему, там есть защита.

откуда такой антагонизм к драйверам? Драйвер на мелкосхеме — тот же Нмост с защитами и в одном корпусе. Очень удобно.

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

Да не антагонизм к драйверам. Просто нет в наличии пока. А так понимаю что очень удобно

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

Хмм. L293 достаточно распрострненная и недорогая. На ебээ вообще копейки стоит.

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

Заказать собираюсь либо на алике или а ебее

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

Спасибо за совет вам. Вопрос такой L293 может управлять 12В моторами? Какое количество моторов можно задействовать максимально. Я так понимаю он служит вроде ключа для открывания (пропукскания) питания на моторы, а также реверсы делать.

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

В даташите всё написано:

Wide Supply-Voltage Range: 4.5 V to 36 V Output Current 1 A Per Channel (600 mA for L293D) Peak Output Current 2 A Per Channel (1.2 A for L293D)

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

БЛАГОДАРЮ ВСЕХ ЗА ОКАЗАННУЮ ВАМИ МНЕ ПОМОЩЬ))))))))))))))))))))))))))))))))))

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

Там нет шагового двигателя. Там три других двигателя: один обычный коллекторный моторчик, который открывает/закрывает каретку. И два трёхфазных бесколлекторных двигателя: один крутит диск (побольше), другой двигает лазерную головку (поменьше).

Не будьте столь категоричны: недавно разбирал CD-Drive, так там головку двигает мотор, к которому идет ровно 2 провода — красный и черный. Вы уверены, что это трехфазный бесколлекторный?

Источник

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

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

Двух переключателей достаточно, чтобы построить простейший драйвер шагового двигателя, как показано на рисунке. Здесь используем 6-проводный униполярный двигатель. Также можно сказать, что двигатель в этом случае управляется однополярно, за счет использования средней обмотки катушки и постоянного напряжения питания на нее.

Переключая данные переключатели в последовательности S1, S2, S1, S2, S1, S2… заметим, что двигатель вращается. Рисунок выше иллюстрирует важный принцип управления: обе обмотки не могут питаться от одной пары одновременно. Каждое изменение переключателя поворачивает ротор на один шаг. Чем быстрее начнем переключать переключатели в последовательности S1, S2, S1, S2…, тем быстрее начнет вращаться ротор.

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

Скорость шагового двигателя зависит не от величины напряжения, а от скорости подключения питания к отдельным обмоткам. Чтобы добиться полного вращения ротора с 200-шаговым двигателем, надо изменить положение каждого переключателя 100 раз, то есть выполнить до 200 последовательностей для двух переключателей. Это уже говорит о том, что шаговые двигатели не могут работать на высокой скорости. Из этого следует, что шаговые двигатели можно назвать «цифровыми двигателями», поскольку для вращения ротора необходимо переключать переключатели в соответствующей последовательности.

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

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

Упрощенная схема управления униполярным шаговым двигателем

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

Вращение униполярного шагового двигателя в последовательных тактах цикла управления волной

Управляющая последовательность A +, B +, A-, B- повторяется каждые четыре импульса тактового генератора. Этот тип управления называется однофазным или волновым. Это полный шаг управления, потому что двигатель выполняет один полный ход (шаг) с одним импульсом генератора.

Самый простой способ изменить направление – поменять местами одну пару проводов катушки (поменять местами, например, B + с B – и B – с B +), затем дадим последовательность A +, B -, A -, B + импульсы, он вращает двигатель в противоположном направлении. Так управление направлением реализовано в некоторых контроллерах шаговых двигателей. Самый простой способ изменить последовательность импульсов – использовать, например, реле.

Форма волны (однофазная) импульсная последовательность драйвера

Упрощенная схема однофазного (волнового) регулятора с изменением направления вращения

Несомненное преимущество униполярных шаговых двигателей – простота управления. Но это связано с волновым управлением, с использованием только половины обмотки за раз, одна из них всегда не используется. Используется только 1/4 всех обмоток шагового двигателя, что значительно снижает максимальную производительность.

ДОКУМЕНТАЦИЯ

Документация

Инициализация

Библиотека поддерживает два типа драйверов:

  • STEPPER2WIRE – специализированный 2-х проводной драйвер для шагового мотора с протоколом STEP-DIR, например A4988, DRV8825, TMC2208 и прочие.
  • STEPPER4WIRE и STEPPER4WIRE_HALF – 4-х проводной драйвер, т.е. полномостовой (например L298N) или транзисторная сборка (например ULN2003). STEPPER4WIRE управляет мотором в полношаговом режиме (выше скорость и момент).
  • STEPPER4WIRE_HALF – в полушаговом (меньше скорость и момент, но больше шагов на оборот и выше точность).

При инициализации указывается тип драйвера, количество шагов на оборот и пины:

  • GStepper stepper(steps, step, dir); // драйвер step-dir
  • GStepper stepper(steps, step, dir, en); // драйвер step-dir + пин enable
  • GStepper stepper(steps, a1, a2, b1, b2); // драйвер 4 пин
  • GStepper stepper(steps, a1, a2, b1, b2, en); // драйвер 4 пин + enable
  • GStepper stepper(steps, a1, a2, b1, b2); // драйвер 4 пин полушаг
  • GStepper stepper(steps, a1, a2, b1, b2, en); // драйвер 4 пин полушаг + enable

Где steps – количество шагов на один оборот вала для расчётов с градусами, step , dir , a1 , a2 , b1 , b2 – любые GPIO на МК, en – пин отключения драйвера EN, любой GPIO на МК. Пин en опциональный, можно не указывать.

Поделитесь в социальных сетях:FacebookTwitterВКонтакте
Напишите комментарий