Как "крутить" шаговый двигатель без микроконтроллера. Драйверы от TI: Управляй любым электродвигателем Схема драйвера шагового двигателя с обратной связью

Шаг 1.

Нам потребуется…

От старого сканера:

  • 1 шаговый двигатель
  • 1 микросхема ULN2003
  • 2 стальных прута

Для корпуса: - 1 картонная коробка

Инструменты:

  • Клеевой пистолет
  • Кусачки
  • Ножницы
  • Принадлежности для пайки
  • Краска

Для контроллера:

  • 1 разъем DB-25 - провод
  • 1 цилиндрическое гнездо для питания постоянного тока Для испытательного стенда
  • 1 стержень с резьбой
  • 1 подходящая под стержень гайка - разные шайбы и шурупы - куски древесины

Для управляющего компьютера:

  • 1 старый компьютер (или ноутбук)
  • 1 копия TurboCNC (отсюда)

Шаг 2.

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

Шаг 3.

Извлекаем микросхему из платы управления Теперь нужно найти на плате управления шаговым двигателем микросхему ULN2003. Если вы не смогли обнаружить ее на своем устройстве, ULN2003 можно купить отдельно. Если она есть, ее нужно выпаять. Это потребует некоторого умения, но не так уж сложно. Сначала при помощи отсоса удалите как можно больше припоя. После этого осторожно просуньте под микросхему конец отвертки. Осторожно прикоснитесь концом паяльника к каждому выводу, продолжая при этом нажимать на отвертку.

Шаг 4.

Пайка Теперь нам нужно припаять микросхему на макетную плату. Припаяйте к плате все выводы микросхемы. На показанной здесь макетной плате имеется две шины электропитания, поэтому положительный вывод ULN2003 (смотрите схему и на рисунке ниже) припаивается к одной из них, а отрицательный - к другой. Теперь, нужно соединить вывод 2 коннектора параллельного порта с выводом 1 ULN2003. Вывод 3 коннектора параллельного порта соединяется с выводом 2 ULN2003, вывод 4 - с выводом 3 ULN2003 и вывод 5 - с выводом 4 ULN2003. Теперь вывод 25 параллельного порта припаивается к отрицательной шине питания. Далее к управляющему устройству припаивается мотор. Делать это придется путем проб и ошибок. Можно просто припаять провода так, чтобы потом цеплять на них крокодилы. Еще можно использовать клеммы с винтовым креплением или что-нибудь подобное. Просто припаяйте провода к выводам 16, 15, 14 и 13 микросхемы ULN2003. Теперь припаяйте провод (желательно черный) к положительной шине питания. Управляющее устройство почти готово. Наконец, подсоедините к шинам электропитания на макетной плате цилиндрическое гнездо для питания постоянного тока. Чтобы провода не могли отломаться, их закрепляют клеем из пистолета.

Шаг 5.

Установка программного обеспечения Теперь о программном обеспечении. Единственная вещь, которая точно будет работать с вашим новым устройством - это Turbo CNC. Скачайте его . Распакуйте архив и запишите на CD. Теперь, на компьютере, который вы собираетесь использовать для управления, перейдите на диск C:// и создайте в корне папку "tcnc". Затем, скопируйте файлы с CD в новую папку. Закройте все окна. Вы только что установили Turbo CNC.

Шаг 6.

Настройка программного обеспечения Перезагрузите компьютер чтобы перейти к работе в MS-DOS. В командной строке наберите "C: cncTURBOCNC". Иногда лучше использовать загрузочный диск, тогда копия TURBOCNC помещается на него и нужно набирать, соответственно "A: cncTURBOCNC". Возникнет экран, похожий на изображенный на рис. 3. Нажмите пробел. Теперь вы находитесь в главном меню программы. Нажмите F1, и при помощи клавиш со стрелками выберите меню "Configure". При помощи клавиш со стрелками выберите "number of axis". Нажмите Enter. Введите количество осей, которые будут использоваться. Поскольку у нас только один мотор, выбираем "1". Нажмите Enter чтобы продолжить. Снова нажмите F1 и в меню "Configure" выберите пункт "Configure axes", затем дважды нажмите Enter.

Появится следующий экран. Нажимайте Tab пока не перейдете к ячейке "Drive Type". При помощи стрелки вниз выберите пункт "Phase". Снова при помощи Tab выберите ячейку "Scale". Чтобы использовать калькулятор, нам нужно найти число шагов, которые двигатель делает за один оборот. Зная номер модели двигателя, можно установить на сколько градусов он поворачивается за один шаг. Чтобы найти число шагов, которые двигатель делает за один оборот, теперь нужно поделить 360 на число градусов за один шаг. Например, если мотор поворачивается за один шаг на 7,5 градусов, 360 поделить на 7,5 получится 48. Число, которое получится у вас, забейте в калькулятор шкалы (scale calculator).

Остальные настройки оставьте как есть. Нажмите OK, и скопируйте число в ячейке Scale в такую же ячейку на другом компьютере. В ячейке Acceleration установите значение 20, поскольку установленных по умолчанию 2000 слишком много для нашей системы. Начальную скорость установите равной 20, а максимальную - 175. Нажимайте Tab пока не дойдете до пункта "Last Phase". Установите в нем значение 4. Нажимайте Tab пока не дойдете до первого ряда иксов.

Скопируйте следующее в четыре первых ячейки:

1000XXXXXXXX
0100XXXXXXXX
0010XXXXXXXX
0001XXXXXXXX

Остальные ячейки оставьте без изменений. Выберите OK. Теперь вы настроили программное обеспечение.

Шаг 7.

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

Чтобы закрепить двигатель, имевшийся в наличии, использовали два отрезка стержня с резьбой 1/8. Брусок с прикрепленным двигателем надевается на свободный конец стальных прутов. Снова закрепите их шурупами. Сквозь третье отверстие на первом бруске проденьте стержень с резьбой. Заверните на стержне гайку. Проденьте стержень сквозь отверстие во втором бруске. Поворачивайте стержень до тех пор, пока он не пройдет сквозь все отверстия и не дойдет до вала двигателя. Соедините вал двигателя и стержень при помощи шланга и зажимов из проволоки. На втором бруске гайка удерживается при помощи дополнительных гаек и винтов. В завершение, отрежьте брусок дерева для подставки. Привинтите ее шурупами ко второму бруску. Проверьте, установлена ли подставка ровно на поверхности. Регулировать положение подставки на поверхности можно при помощи дополнительных винтов и гаек. Так делается вал для тестовой системы.

Шаг 8.

Подсоединяем и тестируем двигатель Теперь нужно соединить двигатель с контроллером. Во-первых, соедините общий провод (смотрите документацию к двигателю) с проводом, который был припаян к положительной шине питания. Другие четыре провода соединяются путем проб и ошибок. Соедините их все, и затем меняйте порядок соединения, если ваш двигатель делает два шага вперед и один назад или что-либо подобное. Для проведения тестирования подключите 12 В 350 мА источник питания постоянного тока в цилиндрическое гнездо. Затем соедините разъем DB25 c компьютером. В TurboCNC проверьте как соединен двигатель. В результате тестирования и проверки правильного подсоединения двигателя у вас должен получиться полностью работоспособный вал. Чтобы проверить масштабирование вашего устройства, прикрепите к нему маркер и запустите тестовую программу. Измерьте получившуюся линию. Если длина линии составляет порядка 2-3 см, устройство работает правильно. В противном случае, проверьте вычисления в шаге 6. Если у вас все получилось, поздравляем, самое трудное уже позади.


Шаг 9.

Изготовление корпуса

Часть 1

Изготовление корпуса - это завершительный этап. Присоединимся к защитникам природы и сделаем его из вторсырья. Тем более, что контроллер у нас тоже не с магазинных полок. У представленного вашему вниманию образца плата имеет размер 5 на 7,5 см, поэтому корпус будет размером 7,5 на 10 на 5 см, чтобы оставить достаточно места для проводов. Из картонной коробки вырезаем стенки. Вырезаем 2 прямоугольника размером 7,5 на 10 см, еще 2 размером 5 на 10 см и еще 2 размером 7,5 на 5 см (см. рисунки). В них нужно вырезать отверстия для разъемов. Обведите контуры разъема параллельного порта на одной из 5 х 10 стенок. На этой же стенке обведите контуры цилиндрического гнезда для питания постоянного тока. Вырежьте по контурам оба отверстия. То, что вы будете делать дальше, зависит от того, припаивали ли вы к проводам двигателя разъемы. Если да, то закрепите их снаружи второй пока пустой стенки размером 5 х 10. Если нет, проткните в стенке 5 отверстий для проводов. При помощи клеевого пистолета соедините все стенки вместе (кроме верхней, см. рисунки). Корпус можно покрасить.

Шаг 10.

Изготовление корпуса

Часть 2

Теперь нужно приклеить все компоненты внутрь корпуса. Убедитесь, что на разъемы попало достаточно много клея, потому что они будут подвергаться большим нагрузкам. Чтобы коробка оставалась закрытой, нужно сделать защелки. Из пенопласта вырежьте пару ушек. Затем вырежьте пару полос и четыре небольших квадратика. Приклейте по два квадратика к каждой из полос как показано на рисунке. Приклейте ушки по обеим сторонам корпуса. Сверху коробки приклейте полосы. Этим завершается изготовление корпуса.

Шаг 11.

Возможные применения и заключение Этот контроллер можно применять как: - ЧПУ устройство - плоттер - или любую другую вещь, которой нужно точное управление движением. - добавление- Здесь приведены схема и инструкции по изготовлению контроллера с тремя осями. Чтобы настроить программное обеспечение, следуйте вышеуказанным шагам, но в поле "number of axis" введите 3.

зарегистрироваться .

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

Общее описание.

Контроллер шагового двигателя разработан на PIC контроллере PIC12F629. Это 8 выводной микроконтроллер стоимостью всего 0,5 $. Несмотря на простую схему и низкую стоимость комплектующих, контроллер обеспечивает довольно высокие характеристики и широкие функциональные возможности.

  • Контроллер имеет варианты схем для управления как униполярным, так и биполярным шаговым двигателем.
  • Обеспечивает регулировку скорости вращения двигателя в широких пределах.
  • Имеет два режима управления шаговым двигателем:
    • полношаговый;
    • полушаговый.
  • Обеспечивает вращение в прямом и реверсивном направлениях.
  • Задание режимов, параметров, управление контроллером осуществляется двумя кнопками и сигналом ВКЛ (включение).
  • При выключении питания все режимы и параметры сохраняются в энергонезависимой памяти контроллера и не требуют переустановки при включении.

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

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

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

Объяснять в схеме особенно нечего. К PIC контроллеру подключены:

  • кнопки "+" и "–" (через аналоговый вход компаратора);
  • сигнал ВКЛ (включение двигателя);
  • драйвер (транзисторы VT1-Vt4 , защитные диоды VD2-VD9).

PIC использует внутренний генератор тактирования. Режимы и параметры хранятся во внутреннем EEPROM.

Схема драйвера на биполярных транзисторах КТ972 обеспечивает ток коммутации до 2 А, напряжение обмоток до 24 В.

Я спаял контроллер на макетной плате размерами 45 x 20 мм.

Если ток коммутации не превышает 0,5 А, можно использовать транзисторы серии BC817 в корпусах SOT-23. Устройство получится совсем миниатюрным.

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

Резидентное программное обеспечение написано на ассемблере с циклической переустановкой всех регистров. Программа зависнуть в принципе не может. Загрузить программное обеспечение (прошивку) для PIC12F629 можно .

Управление контроллером достаточно простое.

  • При активном сигнале "ВКЛ" (замкнут на землю) двигатель крутится, при неактивном (оторван от земли) – остановлен.
  • При работающем двигателе (сигнал ВКЛ активен) кнопки "+" и "–" меняют скорость вращения.
    • Каждое нажатие на кнопку "+" увеличивает скорость на минимальную дискретность.
    • Нажатие кнопки "–" - уменьшает скорость.
    • При удержании кнопок "+" или "–" скорость вращения плавно увеличивается или уменьшается, на 15 значений дискретности в сек.
  • При остановленном двигателе (сигнал ВКЛ не активен).
    • Нажатие кнопки "+" задает режим вращения в прямом направлении.
    • Нажатие кнопки "–" переводит контроллер в режим реверсивного вращения.
  • Для выбора режима – полношаговый или полушаговый необходимо при подаче питания на контроллер удерживать кнопку "–" в нажатом состоянии. Режим управления двигателем будет изменен на другой (проинвертирован). Достаточно выдержать кнопку – нажатой в течение 0,5 сек.

Схема контроллера униполярного шагового двигателя с драйвером на MOSFET транзисторах.

Низкопороговые MOSFET транзисторы позволяют создать драйвер с более высоким параметрами. Применение в драйвере MOSFET транзисторов, например, IRF7341 дает следующие преимущества.

  • Сопротивление транзисторов в открытом состоянии не более 0,05 Ом. Значит малое падение напряжения (0,1 В при токе 2 А), транзисторы не греются, не требуют радиаторов охлаждения.
  • Ток транзисторов до 4 А.
  • Напряжение до 55 В.
  • В одном 8 выводном корпусе SOIC-8 размещены 2 транзистора. Т.е. на реализацию драйвера потребуется 2 миниатюрных корпуса.

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

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

В униполярном режиме могут работать двигатели с конфигурациями обмоток 5, 6 и 8 проводов.

Схема подключения униполярного шагового двигателя с 5 и 6 проводами (выводами).

Для двигателей FL20STH, FL28STH, FL35ST, FL39ST, FL42STH, FL57ST, FL57STH с конфигурацией обмоток 6 проводов выводы промаркированы следующим цветами.

Конфигурация с 5 проводами это вариант, в котором общие провода обмоток соединены внутри двигателя. Такие двигатели бывают. Например, PM35S-048.

Документацию по шаговому двигателю PM35S-048 в PDF формате можно загрузить .

Схема подключения униполярного шагового двигателя с 8 проводами (выводами).

То же самое как и для предыдущего варианта, только все соединения обмоток происходят вне двигателя.

Как выбирать напряжение для шагового двигателя.

По закону Ома через сопротивление обмотки и допустимый ток фазы.

U = Iфазы * Rобмотки

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

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

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

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

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

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

Схема контроллера биполярного шагового двигателя с интегральным драйвером L298N.

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

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

Создавать схему биполярного драйвера на дискретных элементах – дело неблагодарное. Проще использовать интегральный драйвер L298N. Описание на русском языке есть .

Схема контроллера с биполярным драйвером L298N выглядит так.

Драйвер L298N включен по стандартной схеме. Такой вариант контроллера обеспечивает фазные токи до 2 А, напряжение до 30 В.

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

В этом режиме может быть подключен двигатель с любой конфигурацией обмоток 4, 6, 8 проводов.

Схема подключения биполярного шагового двигателя с 4 проводами (выводами).

Для двигателей FL20STH, FL28STH, FL35ST, FL39ST, FL42STH, FL57ST, FL57STH с конфигурацией обмоток 4 провода выводы промаркированы следующим цветами.

Схема подключения биполярного шагового двигателя с 6 проводами (выводами).

Для двигателей FL20STH, FL28STH, FL35ST, FL39ST, FL42STH, FL57ST, FL57STH с такой конфигурацией обмоток выводы промаркированы следующим цветами.

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

Схема подключения биполярного шагового двигателя с 8 проводами (выводами).

Может быть два варианта:

  • с последовательным включением
  • с параллельным включением.

Схема последовательного включения обмоток.

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

Схема параллельного включения обмоток.

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

Т.е. выбор между последовательным и параллельным включением биполярного шагового двигателя с 8 выводами определяется критериями:

  • максимальный ток драйвера;
  • максимальное напряжение драйвера;
  • скорость вращения двигателя.

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

Как правило, логические сигналы для управления шаговым двигателем формирует микроконтроллер. Ресурсов современных микроконтроллеров вполне хватает для этого даже в самом ”тяжелом” режиме – микрошаговом.

Несмотря на простоту контроллера, реализованы следующие режимы управления:

  • полно-шаговый, одна фаза на полный шаг;
  • полно-шаговый, две фазы на полный шаг;
  • полу-шаговый;
  • фиксацию положения двигателя при остановке.

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

  • простой, дешевый, надежный драйвер.

К недостаткам:

  • в униполярном режиме крутящий момент примерно на 40 % меньше по сравнению с биполярным режимом.

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

В биполярном режиме могут работать двигатели, имеющие любые конфигурации обмоток.

L298N это полный мостовой драйвер для управления двунаправленными нагрузками с токами до 2 А и напряжением до 46 В.

  • Драйвер разработан для управления компонентами с индуктивными нагрузками, такими как электромагниты, реле, шаговые двигатели.
  • Сигналы управления имеют TTL совместимые уровни.
  • Два входа разрешения дают возможность отключать нагрузку независимо от входных сигналов микросхемы.
  • Предусмотрена возможность подключения внешних датчиков тока для защиты и контроля тока каждого моста.
  • Питание логической схемы и нагрузки L298N разделены. Это позволяет подавать на нагрузку напряжение другой величины, чем питание микросхемы.
  • Микросхема имеет защиту от перегрева на уровне + 70 °C.

Структурная схема L298N выглядит так.

Микросхема выполнена в 15ти выводном корпусе с возможностью крепления радиатора охлаждения.

Назначение выводов L298N.

1 Sense A Между этими выводами и землей подключаются резисторы - датчики тока для контроля тока нагрузки. Если контроль тока не используется, они соединяются с землей.
15 Sense B
2 Out 1 Выходы моста A.
3 Out 2
4 Vs Питание нагрузки. Между этим выводом и землей должен быть подключен низкоимпедансный конденсатор емкостью не менее 100 нФ.
5 In 1 Входы управления мостом A. TTL совместимые уровни.
7 In 2
6 En A Входы разрешения работы мостов. TTL совместимые уровни. Низкий уровень сигналов запрещает работу моста.
11 En B
8 GND Общий вывод.
9 Vss Питание логической части микросхемы (+ 5 В). Между этим выводом и землей должен быть подключен низкоимпедансный конденсатор емкостью не менее 100 нФ.
10 In 3 Входы управления мостом B. TTL совместимые уровни.
12 In 4
13 Out 3 Выходы моста B.
14 Out 4


Предельно допустимые параметры L298N.

Параметры расчетов тепловых режимов.

Электрические характеристики драйвера L298N.

Обозначение Параметр Значение
Vs Напряжение питания (вывод 4) Vih+2.5 ...46 В
Vss Питание логики 4,5... 5 ...7 В
Is Потребляемый ток покоя (вывод 4)
  • Ven=H, Vi=L
  • Ven=H, Vi=H
  • Ven=L

13 ... 22 мА
50 ... 70 мА
4 мА

Iss Потребляемый ток покоя (вывод 9)
  • Ven=H, Vi=L
  • Ven=H, Vi=H
  • Ven=L

24 ... 36 мА
7 ... 12 мА
6 мА

Vil Входное напряжение низкого уровня
-0,3 ... 1,5 В
Vih Входное напряжение высокого уровня
(выводы 5, 7, 10, 12, 6, 11)
2,3 ... Vss В
Iil Входной ток низкого уровня
(выводы 5, 7, 10, 12, 6, 11)
-10 мкА
Iih Входной ток высокого уровня
(выводы 5, 7, 10, 12, 6, 11)
30 ... 100 мкА
Vce sat (h) Напряжение насыщения верхнего ключа
  • при токе 1 А
  • при токе 2 А

0,95...1,35...1,7 В
2 ... 2,7 В

Vce sat (l) Напряжение насыщения нижнего ключа
  • при токе 1 А
  • при токе 2 А

0,85...1,2...1,6 В
1,7 ... 2,3 В

Vce sat Общее падение напряжения на
открытых ключах
  • при токе 1 А
  • при токе 2 А
Vsens Напряжение датчиков тока
(выводы 1, 15)
-1 ... 2 В
Fc Частота коммутаций 25 ... 40 кГц

Схема подключения шагового двигателя к микроконтроллеру с помощью драйвера L298N.

Диаграмма работы этой схемы в полношаговом режиме выглядит так.

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

Электронные компоненты . Вы можете добавить в закладки.

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

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

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

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

  • Биполярный — имеет четыре выхода, содержит в себе две обмотки.
  • Униполярный — имеет шесть выходов. Содержит в себе две обмотки, но каждая обмотка имеет отвод из середины.
  • Четырехобмоточный — имеет четыре независимые обмотки. По сути дела представляет собой тот же униполярник, только обмотки его разделены. Вживую не встречал, только в книжках.
Униполярный отличается от биполярного только тем, что ему нужна куда более простая схема управления, а еще у него значительно слабее момент. Так как работает он только половинами обмоток. НО! Если оторвать нафиг средний вывод униполярника, то мы получим обычный биполярный . Определить какой из выводов средний не сложно, достаточно прозвонить сопротивление тестером. От среднего до крайних сопротивление будет равно ровно половине сопротивления между крайних выводов. Так что если тебе достался униполярник, а схема подключения для биполярного, то не парься и отрывай средний провод.

Где взять шаговый двигатель.
Вообще шаговики встречаются много где. Самое хлебное место — пятидюймовые дисководы и старые матричные принтеры . Еще ими можно поживиться в древних винчестерах на 40Мб, если, конечно, рука поднимется покалечить такой антиквариат.
А вот в трехдюймовых флопарях нас ждет облом — дело в том, что там шаговик весьма ущербной конструкции — у него только один задний подшипник, а передним концом вал упирается в подшипник закрепленный на раме дисковода. Так что юзать его можно только в родном креплении. Либо городить высокоточную крепежную конструкцию. Впрочем, тебе может повезет и ты найдешь нетипичный флопарь с полноценным движком.

Схема управления шаговым двигателем
Я разжился контроллерами шаговиков L297 и мощным сдвоенным мостом L298N.

Лирическое отступление, при желании можно его пропустить


Схема включения L298N+L297 до смешного проста — надо тупо соединить их вместе. Они настолько созданы друг для друга, что в даташите на L298N идет прямой отсыл к L297 , а в доке на L297 на L298N .

Осталось только подключить микроконтроллер.
  • На вход CW/CCW подаем направление вращения — 0 в одну сторону, 1 — в другую.
  • на вход CLOCK — импульсы. Один импульс — один шаг.
  • вход HALF/FULL задает режим работы — полный шаг/полушаг
  • RESET сбрасывает драйвер в дефолтное состояние ABCD=0101.
  • CONTROL определяет каким образом задается ШИМ, если он в нуле, то ШИМ образуется посредством выходов разрешения INH1 и INH2 , а если 1 то через выходы на драйвер ABCD. Это может пригодится, если вместо L298 у которой есть куда подключать входы разрешения INH1/INH2 будет либо самодельный мост на транзисторах, либо какая-либо другая микросхема.
  • На вход Vref надо подать напряжение с потенциометра, которое будет определять максимальную перегрузочную способность. Подашь 5 вольт — будер работать на пределе, а в случае перегрузки сгорит L298 , подашь меньше — при предельном токе просто заглохнет. Я вначале тупо загнал туда питание, но потом передумал и поставил подстроечный резистор — защита все же полезная вещь, плохо будет если драйвер L298 сгорит.
    Если же на защиту пофигу, то можешь заодно и резисторы, висящие на выходе sense выкинуть нафиг. Это токовые шунты, с них L297 узнает какой ток течет через драйвер L298 и решает сдохнет он и пора отрубать или еще протянет. Там нужны резисторы помощней, учитывая что ток через драйвер может достигать 4А, то при рекомендуемом сопротивлении в 0.5 Ом, будет падение напряжения порядка 2 вольт, а значит выделяемая моща будет около 4*2=8 Вт — для резистора огого! Я поставил двухваттные, но у меня и шаговик был мелкий, не способный схавать 4 ампера.

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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