Управление шаговыми двигателями
Устройство шагового двигателя.
Шаговый двигатель - одно из распространенных устройств автоматики и управления.
Его особенность состоит в том, что он позволяет осуществлять вращение не непрерывно, а небольшими
дискретными "шагами". Причем даже при отсутствии тока для того, чтобы повернуть ось шагового
двигателя нужно приложить небольшое усилие. С другой стороны, если через обмотку двигателя пропустить ток,
то это усилие значительно возрастет. Это значит, что с помощью шагового двигателя можно не только
поднять, например, груз, но и удерживать его безо всяких дополнительных приспособлений.
С точки зрения управления шаговый двигатель обладает тем полезным свойством, что при достаточно малой нагрузке
нет необходимости в системе обратной связи. Обычная система управления состоит из двигателя, который
что-то перемещает, и датчика, который следит за тем, куда оно переместилось. Если такого датчика нет, то система
не сможет выполнить команду вроде "переместиться на 10 см влево". У шагового двигателя величина шага постоянна,
и обратная связь не нужна. Разумеется, только в тех случаях, когда можно гарантировать, что никакая внешняя сила
не сможет остановить мотор или провернуть его.
Как устроен шаговый двигатель ? Посмотрим на рисунок.
В середине находится зубчатое колесо - ротор, по краям - несколько электромагнитов с такими же зубцами.
На рисунке видно, что когда зубцы колеса находятся в точности напротив верхнего электромагнита, зубцы
правого и левого электромагнитов смещены на четверть расстояния между зубцами, а нижнего - на половину этого расстояния.
То есть если угол, на который нужно повернуть ротор, чтобы зубцы совпали, для верхнего магнита равен 0, то для левого он будет
-φ/4; для правого φ/4, для нижнего φ/2, где φ - угол между соседними зубцами. Если подать ток
на правый магнит, то ротор повернется на угол φ/4. Смещение верхнего магнита станет -φ/4; правого 0;
нижнего φ/4 и левого -φ/2 (что то же самое, что и φ/2). Для следующего шага в том же направлении нужно включить ток в нижнем
электромагните, потом в левом, и так далее по кругу. Если электромагниты подключать в обратной последовательности,
против часовой стрелки, то и вращение ротора будет противоположно по направлению.
Если ток пустить в обмотку
электромагнита не соседнего, а противоположного тому, зубцы которого находятся напротив зубцов ротора, то
ротор повернется, но неизвестно, в какую сторону.
Положение ротора при повороте на угол, меньший чем φ/4
неустойчиво. Если его принудительно привести в такое состояние и отпустить, ротор вернется в одно из соседних,
устойчивых положений.
Таким образом, управление шаговым двигателем сводится к последовательному подключению обмоток электромагнитов
либо по часовой стрелке, либо против. При этом возможны два варианта: после завершения шага выключать ток или
оставлять его включенным. Мы будем рассматривать первый вариант, реализация второго немного отличается.
Типы шаговых двигателей и их подключение.
Разные типы моторов отличаются разным подключением этих обмоток.
Основных типов моторов два. Мы будем называть их 6-выводными и 4-выводными, так как тип мотора проще всего
определить, посмотрев, сколько проводов из него выходит. У 6-выводных моторов их 5 или 6, у 4-выводных - 4.
Если проводов шесть, то два из них - общие, а остальные 4 используются для подключения четырех обмоток
электромагнитов. Если проводов пять, то схема та же самая, но два общих провода соединены вместе.
У 4-выводных моторов (они называются еще биполярными, в отличие от униполярных) всего две обмотки. И
последовательность их подключения немного другая. Чтобы получить четыре шага, нужно менять направление
тока в обмотках электромагнитов: сначала первую обмотку подключаем в одном направлении, допустим, слева
направо, потом вторую обмотку слева направо, потом первую справа налево, и, наконец, вторую справа налево.
Для вращения в обратном направлении надо изменить последовательность на обратную.
Подключение 6-выводных шаговых двигателей
Для управления 6-выводным шаговым двигателем нужно 4 независимых управляющих элемента - транзистора.
Можно взять отдельные транзисторы, но лучше использовать специальную микросхему ULN2003A, которая
содержит целых семь транзисторов, и, кроме того, там есть еще 7 защитных диодов, которые пропускают
через себя ток самоиндукции при отключении электромагнитов.
Схема подключения проста.
Для питания двигателя в этой схеме используется то же напряжение, которое питает микроконтроллер. Для снижения
тока через двигатель используется резистор. Во многих приложениях необходимо отдельное питание двигателя
более высоким напряжением. В этом случае резистор R1 просто не устанавливается, а питание подается прямо на
провода, приходящие от мотора (нижние по схеме контакты SV2). Выглядит это примерно так.
Для управления драйвером нужно 4 провода, которые подпаиваются к четырем выводам какого-либо порта
микроконтроллера. Управление состоит в том, что каждый из четырех битов порта по очереди
устанавливается в 1. Для отключения мотора все биты устанавливаются в 0.
Как обычно, рисунок печатной платы и файл для распечатки на принтере с разрешением 600 DPI.
Во втором варианте платы возможна установка как чип-резистора, так и обычного выводного.
Обратите внимание, что контакты для подключения мотора расположены на этих платах по-разному.

Вариант платы для микросхемы
ULN2003A в корпусе SO16.
Подключение 4-выводных шаговых двигателей
Здесь все немного сложнее, поскольку нужно не просто подключать и отключать ток, но и менять его направление.
Для того, чтобы можно было изменять направление тока в обмотке электромагнита, используется схема, которая
называется H-мост. Она состоит из четырех ключей - транзисторов. Если открыты Q2 и Q4, ток течет так, как показано
синей стрелкой. Если открыты Q1 и Q3, ток течет так, как показано красной стрелкой. Главный недостаток этой схемы
состоит в том, что открывать одновременно Q1 и Q2 (Q3 и Q4) нельзя - это вызовет короткое замыкание (желтая стрелка).
Поэтому производители микросхем управления двигателями добавляют к схеме H-моста несколько логических элементов, которые
гарантируют правильное включение транзисторов. Из таких микросхем мы будем использовать недорогую BA6845 производства ROHM.
Внутри этой микросхемы есть два H-моста. У нее имеется 4 управляющих входа (вдвое меньше, чем у двух H-мостов),
назначение их такое: входы IN11 и IN21 определяют направление тока в соответствующих H-мостах, а входы IN12/OFF и
IN22/OFF включают/выключают ток. Соответственно, последовательность управляющих сигналов должна быть такой:
Сочетание 010 означает, что из исходного состояния 0 нужно переключить вход в 1, подождать какое-то время, достаточное для
того, чтобы ротор двигателя повернулся, и переключить вход обратно в 0.
IN11 IN11 IN12/OFF IN22/OFF 0 0 010 0 0 0 0 010 1 1 010 0 1 1 0 010
Печатная плата драйвера 4-выводного шагового двигателя.
У этой платы расположение входных контактов несколько отличается от большинства наших плат. А именно, общий провод и питание расположены не на крайних выводах разъема, а рядом. Питание двигателей - отдельное. Если нужно питать двигатели от того же напряжения, что и контроллер, нужно соединить контакт JP4 c плюсом питания.