Sw-motors.ru

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

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

Управление биполярным шаговым двигателем. Часть 1. Теория. Схема с контроллером PIC12F629 и драйвером LB1838

Шаговые двигатели интересны тем, что позволяют повернуть вал на определённый угол. Соответственно, с их помощью можно повернуть вал и на определённое число оборотов, потому что N оборотов — это тоже определённый угол, равный 360*N, и, в том числе, на нецелое число оборотов, например на 0.75 оборота, 2.5 оборота, на 3.7 оборота и т.д. Этими возможностями шаговых двигателей определяется и область их применения. В основном они используются для позиционирования различных устройств: считывающих головок в дисководах, печатающих головок в принтерах и плоттерах и т.д.

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

Итак, что нам понадобится для экспериментов. Во-первых, шаговый двигатель. Я брал 5-ти вольтовый китайский биполярный шаговик с загадочным названием, выдранный из старого 3,5″ дисковода, аналог M20SP-GW15. Во-вторых, поскольку обмотки двигателя потребляют значительный ток (в данном случае до 300 мА), то вполне понятно, что подключить шаговик к контроллеру напрямую не удастся, нужен драйвер.

В качестве драйвера для биполярных шаговых двигателей обычно используют схему так называемого H-моста или специальную микросхему (в которой всё равно встроен H-мост). Можно конечно ваять самому, но я взял готовую микруху (LB1838) из того же старого дисковода. Собственно, кроме всего вышеописанного, для наших экспериментов также понадобятся: PIC-контроллер (был взят PIC12F629, как самый дешёвый) и пара кнопок.

Перед тем, как перейти непосредственно к схеме, давайте немного разберёмся с теорией.

Биполярный шаговый двигатель имеет две обмотки и, соответственно, подключается по четырём проводам. Найти концы обмоток можно простой прозвонкой — концы проводов, относящиеся к одной обмотке, будут между собой звониться, а концы, относящиеся к разным обмоткам, — нет. Концы первой обмотки обозначим буквами «a», «b», а концы второй обмотки буквами «c», «d».

На рассматриваемом экземпляре есть цифровая маркировка контактов возле мотора и цветовая маркировка проводов (бог его знает, может это тоже какой-то стандарт): 1 — красный, 2 — голубой — первая обмотка; 3 — жёлтый, 4 — белый — вторая обмотка.

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

За один полный цикл двигатель делает четыре шага.

Для правильной работы, должна строго соблюдаться указанная в таблице последовательность коммутаций. То есть, например, после второй комбинации (когда мы подали + на вывод «c» и минус на вывод «d») мы можем подать либо третью комбинацию (отключить вторую обмотку, а на первой подать — на «a» и + на «b»), тогда двигатель повернётся на один шаг вперёд, либо первую комбинацию (двигатель повернётся на один шаг назад).

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

То есть, допустим мы повернули двигатель на 5 шагов вперёд, подавая на него комбинации 2-3-4-1-2, потом обесточили, а потом захотели повернуть ещё на один шаг вперёд. Для этого на обмотки надо подать комбинацию 3. Пусть после этого мы его опять обесточили, а через какое-то время захотели вернуть его на 2 шага назад, тогда нам нужно подать на двигатель комбинации 2-1. И так далее в таком же духе.

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

На этом мы закончим с двигателем и перейдём к драйверу LB1838.

У этой микрухи есть четыре управляющие ноги (IN1, IN2, EN1, EN2), на которые мы как раз и будем подавать сигналы с контроллера, и четыре выходных ноги (Out1, Out2, Out3, Out4), к которым подключаются обмотки двигателя. Обмотки подключаются следующим образом: провод «a» подключается к Out1, провод «b» — к Out2, провод «c» — к Out3, провод «d» — к Out4.

Ниже представлена таблица истинности для микросхемы драйвера (состояние выходов в зависимости от состояния входов):

IN1EN1Out1 (a)Out2(b)IN2EN2Out3(c)Out4(d)
LowHigh+LowHigh+
HighHigh+HighHigh+
XLowотклотклXLowотклоткл
Читать еще:  Двигатели тойота рейтинг лучших

Теперь давайте нарисуем на диаграмме, какую форму должны иметь сигналы IN1, EN1, IN2, EN2 для одного полного цикла вращения (4 шага), т.е. чтобы на выходах появились последовательно все 4 комбинации подключения обмоток:

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

Итак, на последней диаграмме нарисовано, какие комбинации уровней сигналов должны быть на управляющих входах драйвера (EN1, EN2, IN1, IN2) для того, чтобы получить соответствующие комбинации подключения обмоток двигателя, а также стрелками указан порядок смены этих комбинаций для обеспечения вращения в нужную сторону.

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

R1..R2 = 1 кОм. Когда соответствующая кнопка не нажата — резистор подтягивает напряжение на входе контроллера к +5 В (высокий уровень). При нажатии на кнопку напряжение на входе подтягивается к земле (низкий уровень).

С1, С2 = 0,1 мкФ — керамические конденсаторы.

С3 = 470 мкФ х 16В — электролитический конденсатор.

Программа управления реализует следующий алгоритм: при нажатии кнопки КН1 двигатель поворачивается на один шаг в одну сторону, а при нажатии кнопки КН2 — на один шаг в другую сторону.

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

«Первый шаг» шагового двигателя

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

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

Для получения общего представления о теории ШД и проверки этой теории на практике достаточно небольшого объёма информации – в пределах этой статьи. Однако, как и в любой предметной области, знаний для профессионального освоения предмета требуется намного больше.

Шаговый двигатель, в общем случае, – это двигатель, имеющий ротор, статор и несколько обмоток. Вал ШД совершает поворот на фиксированный угол (шаг) при кратковременной подаче напряжения на обмотки в правильной последовательности. Обычно обмоток 2 или 4. Для того чтобы заставить ШД вращаться, необходимо поочерёдно подавать рабочее напряжение на обмотки двигателя в нужной полярности. Для ШД с двумя обмотками (биполярного ШД) необходимо менять очерёдность и полярность подаваемых импульсов. ШД с 4 обмотками (униполярный ШД) проще в управлении – для вращения вала достаточно поочерёдно подавать напряжение на каждую из четырёх обмоток. Вал двигателя при этом будет каждый раз поворачиваться на фиксированный шаг. Величина этого шага обусловлена конструкцией двигателя и составляет обычно единицы градусов. Как правило, чем меньше шаг двигателя, тем он дороже. Для формирования требуемой последовательности импульсов применяются микроконтроллеры в связке с силовыми элементами – драйверами. В простейшем случае драйвер представляет собой транзисторный ключ. Также выпускаются специализированные драйверы в интегральном исполнении, рассчитанные на разную мощность и более сложные алгоритмы управления, например, с использованием обратной связи.

Для нашего примера используем ШД привода головки записи-чтения от 5,25″ флоппи-дисковода TEAC.

Это униполярный двигатель с 5 выводами: 4 обмотки и общий провод подачи питания 12 В. ШД имеет шаг 1,8 градуса. Соответственно, для того чтобы вал совершил полный оборот, необходимо подать 200 импульсов. Для нашего эксперимента не подойдет ШД от современного 3,5″ дисковода. Там применяются биполярные двигатели, которые требуют более сложной схемы драйвера. Кроме того, качество исполнения ШД от трёхдюймового дисковода заметно ниже. Для небольших униполярных двигателей от CD-привода, принтера или флоппи-дисковода в качестве драйвера можно применить микросхему ULN2003A (рис. 1). Это набор транзисторов по схеме Дарлингтона с открытым коллектором и защитным диодом в цепи нагрузки (рис. 2). Микросхема содержит в себе 7 каналов коммутации с током нагрузки до 0,5 А. В качестве микроконтроллера может использоваться любой 8- или 16-разрядный процессор. В экспериментальной схеме (рис. 3) мы применяем процессор PIC16F84 от Microchip, однако провести эксперимент с использованием данной программы можно практически на любом процессоре семейства PIC12…PIC18.

Читать еще:  Lacetti двигатель такой же как

Программа 1 (Stepper1.asm) реализует вращение вала двигателя с заданной скоростью в одном направлении. Используется так называемый «полношаговый режим». Диаграмма подачи импульсов на обмотки приведена на рис. 4. Это простейший способ управления ШД со всеми присущему ему недостатками: повышенная шумность, колебания вала при перемещении от шага к шагу, особенно заметные при наличии массивной нагрузки на валу, малое количество шагов на оборот. В реальных системах используются более сложные алгоритмы управления ШД. Это режимы плавного разгона, микрошага, использование обратной связи по току и другие. В программе 2 (Stepper2.asm) реализован «полушаговый» режим управления. Здесь двигатель совершает в два раза больше шагов на оборот, т.е. теперь вал занимает и промежуточные положения между фиксированными углами поворота в 1,8 градуса. Это достигается одновременной подачей напряжения на две соседние обмотки на чётных шагах (рис. 5). Полушаговый режим повышает плавность хода и снижает шум двигателя. Всего программой подаётся 200 импульсов на обмотки двигателя, при этом вал поворачивается на угол 180 градусов. Затем следует пауза в 2 секунды и происходит поворот на тот же угол, но в противоположном направлении. Далее цикл повторяется. Программа хорошо закомментирована и достаточно «прозрачна». Изменением констант вы сможете задать другие углы поворота и скорость вращения вала. Следует учитывать, что предельная скорость вращения ограничена конструкцией используемого ШД и не превышает 150…200 оборотов в минуту в зависимости от режима управления. Более сложные алгоритмы управления выходят за рамки данной статьи.

Статья Олега Пушкарёва с сайта журнала «СОВРЕМЕННАЯ ЭЛЕКТРОНИКА» приведена с сокращениями.

Подпишитесь на наши новости

Получайте первыми актуальную информацию от ООО «Электропривод»

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

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

Вот мы и подошли к одному из основных преимуществ шагового двигателя — возможность точного позиционирования.

Шаговые двигатели бывают трёх основных типов:

  • двигатели с переменным магнитным сопротивлением
  • двигатели с постоянными магнитами
  • гибридные двигатели

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

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

Перейдём к практике, для эксперимента возьмём шаговый двигатель MITSUMI M42SP-5 с шагом 7.5°, изображённый на картинке.

Из таблицы понятно, что такие двигатели бывают двух типов:

  • 12 вольтовые с сопротивлением обмотки 50 Ом
  • 24 вольтовые с сопротивлением обмотки 120 Ом

Схема двигателя изображена на картинке ниже.

Из двигателя выходит 5 проводов: 4 фазы и один общий. Общий провод можно найти с помощью мультиметра, сопротивление между ним и оставшимися 4 проводами равно сопротивлению фазы, в нашем случае 50 Ом.

Как писалось выше, необходим посредник, который примет от микроконтроллера 20mA и отдаст двигателю 259mA. Можно как раньше взять полевой транзистор, но есть одно, но фаз здесь целых четыре штуки и для этого случая есть более простое решение — это использовать микросхему ULN2003.

Транзистор Дарлингтона или пара Дарлингтона, представляет собой два соединённых транзистора, его отличительной особенностью является высокий коэффициент усиления, который равен произведению коэффициентов усиления каждого из транзисторов(βс = β1 ∙ β2).

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

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

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

Читать еще:  Что цокотит в двигателе лачетти

AVR Урок 18. Подключаем шаговый двигатель. Часть 1

Урок 18

Подключаем шаговый двигатель

Сегодня мы попробуем к микроконтроллеру Atmega8a подключить шаговый двигатель.

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

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

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

Мне в руки попался именно вот такой вот шаговый двигатель 28-BJ48 компании Kiatronics

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

Данные обмотки своими сердечниками в статоре находятся не в 4 местах, а намного чаще, а именно каждая повторяется 2048 раз, поэтому когда мы подаем напряжение на соседнюю обмотку, ротор поворачивается на очень малый угол. А если напряжение подавать ещё и на 2 соседние обмотки, то ротор можно расположить между ними, и количество положений при этом вообще удваивается. А есть вообще микрошаговый режим, когда мы на одну обмотку подаём меньшее напряжение, а на другую большее, то и вообще можно потеряться в количестве шагов и вообще крутить данный шаговый двигатель очень плавно.

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

Данный модуль представляем собой микросхему ULN2003. Можно использовать ее не только для двигателей. Но мы будем использовать здесь 4 входа и 4 выхода, так как у нашего двигателя 4 провода. каждый из которых подключен к определённой обмотке, а пятый провод является общим. Подключенный таким образом мотор уже не влияет на ножки портов, у которых ограничен максимальный ток и можно уже ничего не бояться на этот счёт. При подключении к ножкам контроллера мы используем входы модуля IN1, IN2, IN3 и IN4, а разъём двигателя просто соединим с разъёмом модуля.

Нарисуем вот такую схему, чтобы лучше понять принцип работы двигателя (чтобы увидеть процесс рисования, смотрите видеоверсию урока, ссылка на которую внизу страницы)

Здесь мы видим 4 катушки, одним выводом которые соединены к общему проводу, а на другие выводы каждой катушки мы будем подавать логические уровни, например на рисунке поданы 1000.

Данные обмотки потом по кругу так циклически и повторяются.

Теперь рассмотрим возможные режимы управления с помощью логических уровней.

1 режим – этот простейший режим, при котором мы по очереди подаём логические единицы или высокие логические уровни на каждую обмотку. Называется он также полношаговый режим или One Phase Step Mode.

Схематично данный режим можно изобразить таким образом

Существует также ещё один интересный режим – это режим когда ротор будет шагать между обмотками, то есть мы единички будем подавать на 2 соседние обмотки

А также есть ещё и третий решим – это полушаговый режим, когда мы уже чередуем комбинации, сначала ротор будет находиться у обмотки, потом наполовину переместится к соседней обмотке, потом совсем к соседней обмотке и т.д. Это полушаговый режим или one and two-phase-on

Вот таких вот три режима существуют. мы остановимся на 3 режиме, так как он будет самый плавный и самый интересный.

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

Программатор и шаговый двигатель 28YBJ-48 с драйвером ULN2003 можно приобрести здесь:

Смотреть ВИДЕОУРОК (нажмите на картинку)

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