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

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

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

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


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

Управление шаговым двигателем может быть реализовано по одному из четырех основных алгоритмов: попеременное включение фаз, управление с перекрытием фаз, полушаговое управление или микрошаговое управление.

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

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

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

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

Подробнее смотрите со схемами здесь:

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

Силовая часть драйвера - это , задача которого преобразовать подаваемые на фазы импульсы тока в перемещения ротора: один импульс - один точный шаг или микрошаг.

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


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

Контроллер шагового двигателя

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

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

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

Возможности контроллеров

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

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

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

В зависимости от характера поставленной цели выбирают способ управления шаговым двигателем. Если необходимо настроить простое управление маломощным электроприводом, когда в каждый момент времени один импульс подается на одну катушку статора: на полный оборот нужно, скажем, 48 шагов, и ротор будет перемещаться на 7,5 градусов при каждом шаге. Режим одиночных импульсов в этом случае подойдет.

Для достижения более высокого вращающего момента применяют двойной импульс - в две соседние катушки подается одновременно по импульсу. И если для полного оборота нужно 48 шагов, то опять же нужно 48 таких двойных импульсов, каждый приведет к шагу в 7,5 градусов но с на 40% большим моментом нежели в режиме одиночных импульсов. Скомбинировав оба способа можно получить 96 импульсов разделив шаги - получится 3,75 градуса на шаг - это комбинированный режим управления (полушаговый).

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

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

Типы шаговых двигателей

Существуют три основных типа шаговых двигателей:

  1. Двигатель с постоянным магнитом
  2. Двигатель с переменным магнитным сопротивлением
  3. Гибридный двигатель

Шаговый двигатель с постоянными магнитами

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

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

Шаговый двигатель с переменным магнитным сопротивлением

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

Гибридный шаговый двигатель

Гибридный двигатель, на сегодняшний день, является самым популярным двигателем в промышленной сфере. Его название происходит от того, что он сочетает в себе принципы работы двух других типов двигателя (с постоянными магнитами и переменным магнитным сопротивлением). Большинство гибридных двигателей имеют две фазы.

Как работает гибридный двигатель

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

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

Когда ток протекает через одну из обмоток, ротор занимает одно из положений, показанных на рисунках. Это связано с тем что, постоянный магнит ротора пытается минимизировать магнитное сопротивление обмотки. Крутящий момент, что стремится держать ротор в этих положениях, как правило, небольшой и называется «релаксация крутящего момента». Ниже изображена схема работы двигателя с 12 шагами.

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

Изменяя ток первой до второй обмотки (В), магнитное поле статора поворачивается на 90 градусов и притягивает новую пару полюсов ротора. В результате этого ротор поворачивается на 30 градусов, что соответствует полному шагу. Возвращение к первому набору обмоток статора, но с питанием обратной полярности, изменяет магнитное поле статора еще на 90 градусов, и ротор поворачивается на 30 градусов (С).

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

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

Режим полшага

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

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

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

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

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

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

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

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

В качестве примера управления шаговым двигателем возьмем униполярный шаговый двигатель ШД-1ЕМ, имеющий характеристики: количество шагов - 200/об., ток обмотки – 0,5А, мощность - 12 Ватт.

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

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

Вывод 9 микросхемы ULN2003A подведен к источнику питания через стабилитрон, который защищает схему от ЭДС самоиндукции, появляющейся в момент выключения блока питания схемы. Управление шаговым двигателем производится с помощью компьютера через LPT порт при помощи программы:

(скачено: 1 845)

Недавно приобрел ARDUINO в Китае. Мыслей по изготовление различных устройств- море. Мигать светодиодом на плате очень быстро надоело, захотелось чего то более существенного. Конечно надо бы заказать набор но цена его несколько завышена и пришлось что то искать в интернете, что то придумывать самому. В итоге все равно заказал в том же Китае различные датчики, реле, индикаторы… Немного попозже пришел знаменитый индикатор 1602. С ним поучился работать, тоже довольно быстро освоился. Захотелось поуправлять шаговым двигателем от CD-DVD привода. Ждать с Востока посылку 1-2 месяца не захотелось и я решил попробовать сделать драйвер самостоятельно. Нашел вот такую схему включения биполярного шагового двигателя:

Микросхемы в нашей глуши я не нашел, или заказывать микросхемы в российских интернет-магазинах по стоимости 2-3 готовых драйверов за 1 микросхему. Микросхема представляет собой Н- мост из транзисторов. Кстати включать в мост надо или составные биполярные транзисторы (так называемые сборки Дарлингтона), или полевые транзисторы. Одиночным биполярным транзисторам нужна хорошая раскачка, которую контроллер дать не может, иначе получается очень высокое падение напряжение на транзисторе из за того что он открыться не может. Т.к. хороший товарищ занимается ремонтом компьютеров, то с полевиками проблем не возникло. Сначала хотел сделать на биполярниках- но получается в 2 раза больше транзисторов, что не совсем хорошо для габаритов драйвера, да и ток они выдержат гораздо меньший. Выпаяв около десятка полевых транзисторов и почитав на них даташиты я снова впал в уныние- в интернете есть схемы только на парах полевых транзисторов n- и p- типов. И ниодной схемы на транзисторах одного типа я просто не нашел. В компьютерах же используются транзисторы n- типа. Пришлось мудрить на макетной плате небольшой девайс на полевиках, попробовал управлять светодиодами, получилось и я решил собрать готовое устройство. Драйвер не нуждается в налаживании ибо налаживать здесь практически нечего. Единственная проблема возникла с программным обеспечением. Нашел даташит на похожий двигатель и по графикам работы выставил состояния выходов. После этого осталось только подобрать delay и все- устройство готово! Собственно схема замены микросхемы L293D.


Данные транзисторов даны просто так- в мультисиме никак не смог их изменить. Я использовал транзисторы P60N03LDG в корпусе ТО-252 . В ней все довольно просто: при поступлении напряжения на один из входов U1 или U2 открываются 2 транзистора в верхнем и нижнем плече, причем крест- накрест. Таким образом переключается полярность напряжения на двигателе. А чтобы не подавалось напряжение сразу на 2 входа (это вызовет КЗ цепи питания) и использовал схему включения L293D. При таком включении NPN-транзистор не позволяет открывать сразу все 4 транзистора Н-моста. Кстати 1 двигатель будет управляться по 2 выходам Arduino, что крайне важно для экономии выходов и входов микроконтроллера. Еще условие- минусовой провод транзисторных ключей обязательно должен быть соединен с минусовым выводом платы управления. Питание подается на плату управления от Arduino, на ключи- от внешнего БП. Это позволяет подключить достаточно мощные двигатели. Все зависит от характеристик транзисторов. Итак для одного драйвера вам нужно 8 полевых транзисторов (P60N03LDG или любые другие n-канальные), любые 2 SMD-биполярных транзистора NPN (у меня стоят с маркировкой t04), smd-резисторы типоразмера 0805, и 4 такие же перемычки того же размера (на них написано 000 или просто 0). Все эти детали можно найти на старых и негодных материнских платах. Обязательно проверьте детали перед установкой.


Плата драйвера Arduino

Выкладываю плату в формате Layout6. . Замечу что у вас должен получится именно такой вид- надписи должны быть читабельными а не перевернутыми, учитывайте это при печати платы, детали ведь будут установлены со стороны дорожек. Разъемы тоже выпаиваем из материнки феном, отрезаем сколько по надо количеству пинов и впаиваем в нашу плату- так гораздо удобнее и надежнее нежели чем паять провода в плату. Разберемся с назначением выводов: выводы Out1 и Out2- подключение обмоток шагового двигателя, In1,2- вход от Arduino, ±5V- питание управления от Arduino (сделал двойной разъем т.к. подключать питание можно шлейфом сразу к нескольким блокам), 2 перемычки располагаются на другой стороне платы, по ним подается напряжение на ключи. Размер платы- 43х33мм. Кто желает- может еще больше минимизировать.

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


Диаграмма работы шагового двигателя

Цифрами указаны номера шагов. Исходя из того что при переключении контроллером высокого уровня на низкий драйвер сам переключит нужные ключи, то пишем, например, состояния только для верхних графиков каждой обмотки. Первый шаг: первая обмотка- первый провод +(HIGH), другой автоматически переключится драйвером на минус (LOW), напоминаю что описываем по первому проводу каждой обмотки. Вторая обмотка: первый провод — (LOW), второй + (HIGH), второй провод переключится драйвером автоматически. Переходим к первому изменению графика. Это 2 шаг. Описываем состояние только первых проводов. 1 провод первой обмотки остался HIGH, 1 провод второй сменился с LOW на HIGH . Третий шаг- 1 провод первой обмотки сменился HIGH на LOW, 1 провод второй остался HIGH. Четвертый шаг: 1 провод первой обмотки остался LOW, 1 провод второй обмотки сменился с HIGH на LOW. Описывать можно с любого шага, главное сохранять последовательность. Чтобы двигатель вращался в другую сторону нужно просто сдвинуть в диаграмме значения любой обмотки на полцикла в любую сторону. Таким образом можно писать программное обеспечение для драйверов. Нужно лишь знать диаграмму и правильно описать ее состояние на выходные пины.

Теперь подключаем плату к Arduino, двигателю. Забрасываем такой скетч:

// подключаемся к 8,9 выводам arduino
int input1 = 8;
int input2 = 9;
int stepCount = 5; //задержка между шагами регулирует скорость двигателя

void setup()
{
pinMode(input1,OUTPUT);
pinMode(input2,OUTPUT);
}

void loop()
{
//1-ый шаг
digitalWrite(input1,LOW);
digitalWrite(input2,HIGH);
delay(stepCount);

//2-ой шаг
digitalWrite(input1,HIGH);
digitalWrite(input2,HIGH);
delay(stepCount);

//3-ий шаг
digitalWrite(input1,HIGH);
digitalWrite(input2,LOW);
delay(stepCount);

digitalWrite(input1,LOW);
digitalWrite(input2,LOW);
delay(stepCount);

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

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

Представляю Вашему вниманию драйвер биполярного шагового двигателя на биполярных транзисторах серии «КТ».

Драйвер работает по принципу эмиттерного повторителя. Сигнал управления поступает на каскад усиления собранного на транзисторе кт315. После чего попадет на Н мост из комплементарной пары КТ815 и КТ 814.

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

Так же в схеме предусмотрено гашение помех в виде конденсаторов на 3 на 0,1 мкф и 1 на 100 мкф. Так как драйвер проектировался для работы с двигателем от CD привода на 150 ватт, охлаждение на транзисторах не

Шаговый двигатель из CD привода подключенный к драйверу на транзисторах

устанавливалось, но максимальный ток эмиттера транзисторов КТ814 и КТ815 составляет 1,5 а, благодаря чему данным драйвером можно крутить моторы и по мощнее. Для этого всего необходимо установить пластины охлаждения на силовые транзисторы.

Шаговые двигатели интересны тем, что позволяют повернуть вал на определённый угол. Соответственно, с их помощью можно повернуть вал и на определённое число оборотов, потому что 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.

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

IN1 EN1 Out1 (a) Out2(b) IN2 EN2 Out3(c) Out4(d)
Low High + Low High +
High High + High High +
X Low откл откл X Low откл откл

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

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

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

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

Схема :

Готовый девайс :

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

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