Sw-motors.ru

Автомобильный журнал
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Arduino UNO;
  • Модуль ULN2003;
  • Шаговый двигатель 28BYJ-48 5V DC;
  • Куча перемычек, бредборд и источник питания для него.

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

  • Номинальный ток коллектора одного ключа — 0,5А;
  • Максимальное напряжение на выходе до 50 В;
  • Защитные диоды на выходах;
  • Вход адаптирован к разным видам логики;
  • Возможность применения для управления реле.
Читать еще:  Что паяют в двигателе

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

Схема модуля на ULN2003, в левом верхнем углу принципиальная схема одного канала (таких в ней 7)

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

Схема фаз двигателя 28BYJ-48 5V DC

Основные характеристики:

  • 32 шага за один оборот ротора;
  • Встроенный редуктор с передаточным отношением 63.68395:1, благодаря этому вал делает 1 оборот за 2048 шагов, при полношаговом режиме и 4096 при полушаговом;
  • Cкорость вращения: номинальная 15 об/мин, максимальная 25 об/мин;
  • Напряжение питания 5 В;
  • Ток одной обмотки 160 мА;
  • Полный ток: в 4-шаговом режиме 320 мА, при быстром вращении 200 мА.
  • Коэффициент редукции: 1/63,68395
  • Угол шага ротора (без учета редуктора): при 4-ступенчатой последовательности сигналов управления 11,25 ° (32 шага на оборот); при 8-ступенчатой — 5,625 ° (64 шага на оборот)
  • Крутящий момент не менее: 34,3 мНм (120 Гц);
  • Тормозящий момент: 600–1200 гсм;
  • Тяга: 300 гсм;
  • Вес:33 г.

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

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

  • 13 – IN1;
  • 12 – IN2;
  • 11 – IN3;
  • 10 – IN4.

Схема в сборе

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

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

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

Запуск шагового двигателя без электроники

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

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

Для эксперимента использовался вот такой шаговый двигатель:

Обычно у них четыре вывода и две обмотки, в большинстве случаев, но есть и другие конечно. В данном случае будет рассмотрен самый ходовой двигатель.

Схема шагового двигателя

Схема обмоток данного двигателя выглядит вот так:

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

Для запуска двигателя понадобится:

  • Электролитический конденсатор 470-3300 мкФ.
  • Источник переменного тока 12 Вольт.

Замыкаем обмотки последовательно, как на схеме ниже.

Середину проводов нужно скрутить и спаять.

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

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

Если перекинуть вывод конденсатора с одного выхода питания на другой, то вал двигателя начнет вращаться в другую сторону.

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

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

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

Сморите видео

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

*, студент 4 курса факультета технологии и профессионально педагогического образования, Т-ПРОИ101, Алтайской государственной академии образования имени , г. Бийск.

Эл. почта:Kraizer1993@mail.ru

Сл. телефон: +7(923)6497670

*, доцент кафедры физики и информатики, Алтайской государственной академии образования имени , г. Бийск.

Сл. телефон: +7(923)6480674

*, старший преподаватель кафедры физики и информатики, Алтайской государственной академии образования имени , г. Бийск.

Сл. телефон: +7(906)9417984

УПРАВЛЕНИЕ УНИПОЛЯРНЫМ ШАГОВЫМ ДВИГАТЕЛЕМ С ПОМОЩЬ USB ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА

Ключевые слова: Шаговый двигатель, драйвер шагового двигателя, драйвер USBasp, макетная плата AVR-USB-MEGA16, микроконтроллер ATMEGA32, библиотека LibUSB.

В статье затрагивается вопрос управлению униполярным шаговым двигателем через USB порт персонального компьютера. Задача состоит в том, чтобы с помощью USB персонального компьютера и драйвера управлять шаговым двигателем. В рамках данной работы предлагается решение данного вопроса с помощью: драйвера шагового двигателя состоящего из макетной платы AVR-USB-MEGA16 и силового модуля на основе транзисторов, системы программирования Delphi, дополнительной библиотеке для программирования LibUSB, прошивки для микроконтроллера ATMEGA32 и драйвера USBasp.

Читать еще:  Горит чек неисправности дизельного двигателя

Шаговый двигатель широко используется в различных направлениях: в периферийных устройствах вычислительных машин, серийное печатающее устройство, двухкоординатный XY-графопостроитель, в станках с числовым программным управлением, XY-столы и вращающиеся столы, фрезерные станки, чертежные автоматы и другие применения. В работе рассмотрена система для управления шаговым двигателем через USB персонального компьютера и способ ее сборки.

Для реализации данной системы необходимо приготовить макетную плату AVR-USB-MEGA16 [1] к работе.

Первое, что нужно сделать — это прошить плату. Она снабжена загрузчиком bootloadHID, что позволит прошить ее через USB. Для этого устанавливаем перемычку между ножками 4 и 6 коннектора U1 ISP и подключаем плату к персональному компьютеру через USB. На ней загорится красный светодиод и в системе Windows обнаружится программатор USBasp. После чего запускаем программу для прошивки микроконтроллера и загружаем в нее прошивку для ATMEGA32 с необходимой частотой [2], прошиваем. Отключаем макетную плату AVR-USB-MEGA16 и удаляем перемычку.

Второе – необходимо установить драйвер USBaps [3] для платы, если его нет на персональном компьютере, на котором выполняется работа. Снова подключением плату к USB компьютера и он обнаруживает новое устройство. Если на нем не установлен драйвер, то он не сможет определить его. Для распознания платы через диспетчер устройств вручную устанавливаем драйвер. Теперь плата полностью готова к работе.

Силовой модуль системы состоит из четырех транзисторов (КТ972Б), четырех резисторов (330 Ом) и четырех диодов (1N4001S). Они соединены между собой по следующей схеме (Рис. 1) [2].

Рис. 1. Схема силового модуля

Работает силовой модуль по следующей схеме. При открывании одного из транзисторов, ток будет протекать через соответствующую обмотку шагового двигателя. Для управления транзисторами используются свободные выходы микроконтроллера платы AVR-USB-MEGA16.

Тип транзисторов зависит от мощности подключаемого двигателя, напряжения его питания и нагрузочной способности портов микроконтроллера. В данной конструкции использовались транзисторы КТ972Б, обладающие достаточным коэффициентом усиления по току, с допустимым напряжением коллектор-эммитер до 45 В, ток коллектора – до 4 А.

Поскольку нагрузка индуктивная, в схеме стоят защитные диоды. Использовались 1-амперные диоды 1N4001S, но можно обойтись и без них. Защитные диоды увеличивают время спада тока в обмотках шагового двигателя, что уменьшает максимально возможную частоту вращения шагового двигателя. Если убрать диоды, то время спада тока окажется минимальным, двигатель сможет вращаться быстрее, но при этом возникают опасные для транзисторов выбросы ЭДС самоиндукции, которые могут превысить допустимое для них напряжение 45 В.

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

Перед тем как начать разработку управляющего алгоритма необходимо установить на персональный компьютер дополнительную библиотеку LibUSB [4]. Устанавливается она как обычная программа. После чего в среде программирования Delphi создаем, или берем готовый [2], дополнительный модуль LibUSB для библиотеки. Теперь приступаем к написанию общей части непосредственно самой программы. Общая часть включается в себя функции: получения ASCII последовательности, открытие устройство USB и послания сообщения контролеру через USB. Общую часть также можно взять из источника [2].

Отправка сообщения макетной плате через USB осуществляется через функцию SendUSBControlMessage (PC2USB, RQ_IO_WRITE, 1, aPORTA, 0, data);

SendUSBControlMessage … – имя функции.

… PC2USB … – сообщение отправляется от персонального компьютера в USB.

… RQ_IO_WRITE … — команда на запись.

.. 1, .. – что записываем в микроконтроллер.

… aPORTA, … — куда записываем или имя порта микроконтроллера.

… 0, data — что записываем в буфер обмена микроконтроллера.

Представленная выше функция подает напряжение в 5 вольт на свободный выход P1 макетной платы AVR-USB-MEGA16. SendUSBControlMessage (PC2USB, RQ_IO_WRITE, 2, aPORTA, 0, data) – подает напряжение на выход P2, а P1 станет без напряжения, так как 2 в двоичной системе счисления 0010, 0 пойдет на P1, а 1 на Р2. Для активации Р1 и Р2 одновременно достаточно написать SendUSBControlMessage (PC2USB, RQ_IO_WRITE, 3, aPORTA, 0, data). 3 в двоичной системе счисления это 0011. Чтобы сбросить напряжение на всех выходах «порта А» необходимо использовать команду SendUSBControlMessage (PC2USB, RQ_IO_WRITE, 0, aPORTA, 0, data).

Используя данную функцию, задаем последовательную активацию обмоток шагового двигателя. При этом опираемся на управляющею последовательность, представленную в таблицах 1 и 2.

Управляющая последовательность для полного шага

cnc-club.ru

Статьи, обзоры, цены на станки и комплектующие.

TB6560 — особенности настройки и работы

  • Отправить тему по email
  • Версия для печати
  • Перейти на страницу:

TB6560 — особенности настройки и работы

Сообщение Steel.ne » 04 окт 2012, 12:41

Основное чтиво по нему — это его даташит. Скачать можно, например, тут:
http://www.kosmodrom.com.ua/data/cncste . 560AHQ.pdf

Итак, что же из себя представляет этот работяга?
Это драйвер биполярных шаговых двигателей. На входе управление STEP-DIR, то есть одним пином задается направление вращения, второй пин отсчитывает шаги. Есть возможность использовать микрошаг и некоторые регулировки рабочего тока. Работает до напряжения 40В, выдать может ток до 3.5А. Все. Никакой отдельной регулировки тока удержания, минимум защит.

В качестве подопытного экземпляра буду расматривать TB6560AHQ – вариант в 25-ногом выводном корпусе. Судя по даташиту, есть вариант в корпусе HQFP64, но я его ни разу еще не видел.

Регулировки

Все регулировки выполняются или внешними элементами (резисторами и конденсаторами) или установкой логических уровней на определенных ногах.
1. Установка номинального тока. Регулируется резисторами на ногах 14 и 11 соответственно для обмотки A и B. Включается в разрыв земли моста. С одной стороны — упрощается внутренняя схемотехника (измерение напряжения относительно земли несколько проще), с другой стороны — любой ток, текущий на землю мимо этого резистора не учитывается и приводит к вылетанию транзисторов. К этому вернемся в разделе «Надежность». Поскольку через этот резистор течет весь рабочий ток, то на нем может выделяться до двух ватт тепла. Не забыть про это!

Читать еще:  Chery amulet характеристика двигателя

2. Установка рабочего тока. Имеется четыре комбинации, в зависимости от уровней на ножках TQ1 и TQ2 (2 и 1 соответственно). Часто на них ставят джамперы или микропереключатели. Возможны варианты 100%, 75%, 50%, 20% от номинального. Иногда эту группу пинов обзывают Torque control.

3. Частота работы ШИМ (PWM). На самом деле регулировка тока производится отсечкой по достижении установленного значения (chopper-type PWM). Но тем не менее включение и выключение ключей происходит с некоторой частотой, которая, собственно, и задается внешним конденсатором.

4. Режимы микрошага. Выставляются комбинацией уровне на ногах M1 и M2. Возможны варианты — шаг, полушаг, 1/8 шага и 1/16 шага за один импульс STEP. Диаграммы токов, что будут на обмотках, можно глянуть в даташите. Не забываем, что чем мельче шаг, тем меньше усилие на валу двигателя.

5. Decay mode – режим гашения тока. Выставляется, как и рабочий ток, уровнями на ножках Dcy1 и Dcy2 (25 и 24 соответственно). В чем его пафос? Когда ток в обмотке достиг нужного уровня, то ключи моста закрываются. При этом, поскольку обмотка двигателя обладает значительной индуктивностью, ток в обмотке никуда не девается и ищет выход. По умолчанию он рассасывается через паразитные диоды ключей и через внешние диоды, которые обычно ставят для защиты от индуктивных скачков напряжения. Когда мы работаем в режиме шага или полушага, проблем от этого обычно не возникает. Ну рассасывается и ладно. Все равно при следующем шаге подадим обратное напряжение, все нормализуется. А вот в режиме микрошага, нам надо точно соблюдать соотношение токов в обмотках. И может получиться, что ток в обмотках будет спадать не так быстро, как нам надо. Некоторые до 1-2 тысячи шагов в секунду двигатели гоняют. И тут нам на помощь приходит принудительное гашение тока.

Посмотрим на режимы работы транзисторов в мосту:

Charge mode – рабочий режим. Мост открыт, ток в обмотке растет.
Slow mode – когда произошла отсечка по току, то открываются два нижних транзистора. Чтобы было куда деваться току из обмотки. Паразитные диоды в транзисторах обладают неважными характеристиками, поэтому чтобы их не перегружать, открывают транзисторы, которые уже более продуктивно пропускают через себя ток. Катушка получается фактически замкнута сама на себя.
Fast mode – в этом режиме на катушку подается обратное напряжение. В этом случае ток гасится максимально эффективно.

Все эти пляски происходят с частотой ШИМ, то есть Charge-Slow-Fast и опять по кругу. Так вот, настройки decoy mode и определяют, когда включится Fast режим. При установке Slow mode он не используется вообще, при увеличении процентов — включается все ранее.

Смотрим на картинку:

Один период управления ШИМ происходит в течение четырех тактов управляющего генератора (частота которого, как мы помним, задается внешним конденсатором). Соответственно fast mode либо не используется, либо включается в последнем такте (25%), либо в двух последних (50%) или сразу (100%) по достижении установленного тока.

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

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

Надежность.

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

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

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

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

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector