Что такое драйвер шагового двигателя? Управляем шаговыми движками и DC моторами, L298 и Raspberry Pi Управление шаговым двигателем сканера.

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


Рисунок 1

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

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

Драйвер шагового двигателя своими руками — на Рисунке 1 показана альтернативная схема драйвера двигателя, основанная на аудио усилителе класса D компании Maxim. Микросхема МАХ9715 в миниатюрном корпусе для поверхностного монтажа может отдавать мощность до 2.8 Вт в типичную нагрузку 4 или 8 Ом. Каждый из двух выходов микросхемы образован Н-мостами из мощных MOSFET, управляющими парами линий OUTR+, OUTR- и OUTL+, OUTL-, которые подключаются к обмоткам А и В шагового двигателя, соответственно. Каждая пара формирует дифференциальный широтно-модулированный импульсный сигнал с номинальной частотой переключения 1.22 МГц. Малый уровень помех, создаваемых схемой, исключает необходимость в выходных фильтрах.

Конденсаторы развязки

Конденсаторы С1, С3, С4 и С6 служат развязкой для входов питания и смещения, а С5 и С7 выполняют накопительные функции для мощных выходных усилителей класса D. Конденсаторы С8 и С9 ограничивают полосу пропускания усилителя до 16 Гц, а ферритовые бусины L2 и L3 ослабляют электрические помехи, наводимые на длинные кабели. П-образный фильтр C1, C2, L1 подавляет помехи на входе питания микросхемы IС1. Входные сигналы микросхемы Шаг_А и Шаг_В, управляющие, соответственно, правым и левым каналами двигателя, могут формироваться любым подходящим контроллером. Внутренние цепи защищают усилитель от коротких замыканий и перегрева в случае неисправности шагового двигателя или неправильного подключения его выводов.


Таблица 1

Иллюстрация последовательности импульсов

Таблица 1 иллюстрирует последовательность импульсов Шаг_А и Шаг_В, управляющих вращением типичного шагового двигателя в одном направлении путем непрерывной подачи комбинаций сигналов от 0 до 4. Шаг 4 возвращает вал двигателя в исходное положение, завершая оборот в 360°. Чтобы изменить направление вращения мотора, начинайте формировать временную диаграмму импульсов снизу таблицы и последовательно двигайтесь по ней вверх. Подав напряжение низкого логического уровня на вход SHDN микросхемы (вывод 8), можно отключить оба канала усилителя. Формы сигналов на входах и выходах схемы представлены на Рисунке 2.

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

Ниже представлена принципиальная схема драйвера шагового двигателя. Драйвер построен с использованием трех микросхем 4000 серии и четырех силовых MOSFET транзисторов.

Схема тактируется генератором прямоугольных импульсов, построенного на логических элементах 2И-НЕ с триггером Шмитта на выходе. Рабочая частота генератора определяется общим сопротивлением PR1 + R2 и емкостью конденсатора С1, и может быть изменена в широком диапазоне с помощью PR1.

Фрагмент схемы на элементах EXOR и J-K триггере создает счетчик по модулю 4, с тактами высокого уровня. Переключатель SB1 (JP1) предназначен для изменения направления работы счетчика, а, следовательно, для изменения направления вращения шагового двигателя. С помощью переключателя SB2 (JP2) можно запускать и останавливать двигатель.

Управление катушками 4-фазного шагового двигателя осуществляется с помощью четырех MOSFET транзисторов (VT1…VT4). Использование в данной схеме транзисторов высокой мощности типа BUZ11 — это решение, гарантирующее надлежащую работу двигателя высокой мощности.

Ниже показаны формы сигналов на разъеме Х2, к которому подключаются обмотки шагового двигателя.

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

Разъемы JP1 и JP2 имеют ту же функцию, что и нажатие кнопки SB1 и SB2, так что вы можете подключить к ним кнопки и вынести их за пределы платы.
Печатная плата разработана таким образом, что вы можете установить транзисторы на общий радиатор, предварительно изолировав их слюдяными или силиконовыми прокладками.

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

Следует, упомянуть о способе подключения питания и обмоток двигателя к плате драйвера. В случае питания схемы управления и двигателя тем же напряжением, которое находится в диапазоне от 5…15 В, и ток потребления не превышает 1 А, то необходимо установить перемычку JP3 и питание подать к разъему VDD.

Если параметры питания шагового двигателя не находится в пределах напряжения питания схемы драйвера, то необходимо снять перемычку JP3, и к разъему VDD подвести напряжение питания от 5…15 В, а к разъему X2 подать питание в соответствии с параметрами шагового двигателя.

(8,5 Kb, скачано: 1 486)

Простой контроллер Шагового Двигателя из компьютерного барахла стоимостью ~150 рублей.

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

В результате протяженных поисков в сети было найдено несколько сайтов посвященных этой проблеме, однако русскоязычных среди них не было ни одного (это было примерно 3 года назад). В общем, в конце концов, я нашел два принтера CM6337 (кстати их выпускал Орловский завод УВМ), откуда и выдрал униполярные шаговые двигатели (Dynasyn 4SHG-023F 39S, аналог ДШИ200-1-1). Параллельно с доставанием принтеров заказал и микросхемы ULN2803A(с буквой А – DIP корпус). Все собрал, запустил. Что получил, а получил дико греющиеся микросхемы ключей, и с трудом вращающийся двигатель. Так как по схеме из Голландии для увеличения тока ключи соединены попарно, то максимальный отдаваемый ток не превышал 1А, в то время как двигателю надо было 2А (кто ж знал что я найду такие прожорливые, как мне тогда показалось, двигатели J). Кроме того, данные ключи построены по биполярной технологии, для тех кто не в курсе, падение напряжения может быть до 2В (если питание от 5, то фактически половина падает на сопротивлении перехода).

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

Решил собрать свою собственную схему из дискретных элементов, благо в одном из принтеров оказалась нетронутой электроника, и я взял оттуда транзисторы КТ829 (Ток до 8А, напряжение до 100В)… Была собрана такая схема…

Рис.1 – Схема драйвера для 4х фазного униполярного двигателя.

Сейчас объясню принцип. При подаче логической “1” на один из выводов (на остальных “0”), например на D0, транзистор открывается и ток течет через одну из катушек двигателя, при этом двигатель отрабатывает один шаг. Далее единица подается на следующий вывод D1, а на D0 единица сбрасывается в ноль. Двигатель отрабатывает сладующий шаг. Если подавать ток сразу в две соседние катушки то реализуется режим полушагов (для моих двигателей с углом поворота 1,8’ получается 400 шагов на оборот).

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

Поняв принцип, несложно написать программу управляющую двигателем через LPT порт. Зачем в этой схеме диоды, а за тем, что нагрузка у нас индуктивная, при возникновении ЭДС самоиндукции она разряжается через диод, при этом исключается пробой транзистора, а следовательно и вывод его из строя. Еще одна деталь схемы – регистр RG (я использовал 555ИР33), используется как шинный формирователь, поскольку ток отдаваемый, например LPT портом мал – можно его элементарно спалить, а следовательно, есть возможность спалить весь компьютер.

Схема примитивна, и собрать такое можно минут за 15-20, если есть все детали. Однако у такого принципа управления есть недостаток – так как формирование задержек при задании скорости вращения задается программой относительно внутренних часов компьютера то работать в многозадачной системе (Win) это все не будет! Будут просто теряться шаги (может быть в Windows и есть таймер, но я не в курсе). Второй недостаток – это нестабилизированный ток обмоток, максимальную мощность из двигателя не выжать. Однако по простоте и надежности этот способ меня устраивает, тем более что для того, что бы не рисковать своим Атлоном 2ГГц, я собрал из барахла 486 тарантас, и кроме ДОСа там, в принципе мало, что можно поставить нормальное.

Описанная выше схема работала и в принципе неплоха, но я решил, что можно несколько переделать схему. Применить MOSFETJ). транзисторы (полевые), выигрыш в том, что можно коммутировать огромные токи (до 75 – 100А), при солидных для шаговых двигателей напряжениях (до 30В), и при этом детали схемы практически не греются, ну если не считать предельных значений (хотел бы я видеть тот который съест ток 100А

Как всегда в России возник вопрос, где взять детали. У меня возникла идея – извлечь транзисторы из горелых материнских плат, благо, например Атлоны кушают порядочно и транзисторы там стоят огого. Дал объявление в ФИДО, и получил предложение забрать 3 мат. платы за 100 рублей. Прикинув что в магазине за эти деньги можно от силы купить 3 транзистора, забрал, расковырял и о чудо, хотя они все и были дохлыми, ни один транзистор в цепи питания процессора не пострадал. Так я получил пару десятков полевых транзисторов за сто рублей. Схема, которая получилась в результате, представлена ниже.

Рис. 2 – Тоже на полевых транзисторах

Отличий в этой схеме немного, в частности была применена микросхема нормального буфера 75LS245 (выпаяна над газовой плитой из 286 материнской платы J). Диоды можно поставить любые, главное, что бы их максимальное напряжение не было меньше максимального напряжения питания, а предельный ток не меньше тока питания одной фазы. Я поставил диоды КД213A, это 10А и 200В. Возможно это излишне для моих 2х амперных двигателей, однако покупать детали не было смысла, да и запас по току думается лишним не будет. Резисторы служат для ограничения тока перезарядки емкости затворов.

Ниже приводится печатная плата контроллера построенного по такой схеме.

Рис. 3 – Печатная плата.

Печатная плата разведена для поверхностного монтажа на одностороннем текстолите (лень мне что то дырочки сверлить сталоJ). Микросхемы в DIP корпусах паяются с подогнутыми ножками, резисторы SMD с тех же материнок. Файл с разводкой в Sprint-Layout 4.0 прилагается. Можно было бы запаять на плату и разъемы, но лень как говорится — двигатель прогресса, да и при отладке железа удобнее было запаять провода подлиннее.

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

Рис. 4 – Схема концевиков.

Вот так это выглядело у меня в процессе наладки системы:

В результате на представленный контроллер я потратил не более 150 рублей: 100 рублей за материнские платы (при желании можно вообще бесплатно достать) + кусок текстолита, припой и банка хлорного железа в сумме тянут на ~50 рублей, причем хлорного железа останется потом еще много. Думаю считать провода и разъемы смысла не имеет. (Кстати разъем питания отпилен от старого винчестера.)

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

Если бы на Орловских заводах проточить отдельные детали не стоило бы так дорого, то мне бы конечно проще было бы вычертить все детали в CAD’е, со всеми квалитетами и шероховатостями и отдать на съедение рабочим. Однако знакомых токарей нет… Да и руками как то знаете ли интереснее…

P.S. Хочу высказать свое мнение по поводу негативного отношения автора сайта к советским и Российским двигателям. Советские двигатели ДШИ, вполне себе даже ничего, даже маломощный ДШИ200-1-1. Так что если вам удалось откопать за “пиво” такое добро не спешите выкидывать их, они еще поработают… проверено… Но если же покупать, и разность в стоимости не велика, лучше все таки брать иностранные, поскольку точность у них конечно будет выше.

P.P.S. Е: Если что то я написал не правильно пишите, исправим, но … РАБОТАЕТ…

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

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

Контроллер шагового двигателя разработан на 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 можно загрузить .

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


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

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

Его схема обмоток выглядит примерно так:


Очень похоже на схему обычного асинхронного двигателя.
Для запуска понадобится:
  • Конденсатор емкостью 470-3300 мкФ.
  • Источник переменного тока 12 В.
Замыкаем обмотки последовательно.


Середину проводов скручиваем и запаиваем.


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



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


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


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

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