Микросхемы для шаговых двигателей. Управление шаговым двигателем

Схема драйвера униполярного шагового двигателя , описанная в данной статье, реализует следующие задачи:
управление 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)

Недавно приобрел 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 читайте .

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

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

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

А на этой картинке показана таблица истинности и диаграмма работы шаговика в полношаговом режиме. Существуют еще и другие режимы работы шаговых двигателей (полушаговый, микрошаговый и др.)

Получается если повторять эту последовательность сигналов ABCD можно вращать ротор электромотора в одну сторону.
А как вращать ротор в другую сторону? Да очень просто, нужно изменить последовательность сигналов с ABCD на DCBA.
А как поворачивать ротор на конкретный заданный угол, например 30 градусов? У каждой модели шагового электромотора есть такой параметр как число шагов. У шаговиков которые я вытащил из матричных принтеров этот параметр 200 и 52, т.е. чтобы совершить полный оборот 360 градусов одним двигателям нужно пройти 200 шагов а другим 52. Получается чтобы повернуть ротор на угол 30 градусов, нужно пройти:
-в первом случае 30:(360:200)=16,666... (шагов) можно округлить до 17 шагов;
-во втором случае 30:(360:52)=4,33... (шага), можно округлить до 4 шагов.
Как видите есть достаточно большая погрешность, можно сделать вывод что чем больше шагов у мотора тем меньше погрешность. Погрешность можно уменьшать если использовать полушаговый или микрошаговый режим работы или механическим способом - использовать понижающий редуктор в этом случае страдает скорость движения.
Как управлять скоростью вращения ротора? Достаточно изменить длительность импульсов подаваемых на входы ABCD, чем длиннее импульсы по оси времени, тем меньше скорость вращения ротора.
Полагаю этой информации будет достаточно чтобы иметь теоретическое представление о работе шаговых электромоторов, все остальные знания можно будет получить экспериментируя.
И так перейдем к схемотехнике. Как работать с шаговым двигателем мы разобрались, осталось подключить его к Arduino и написать управляющую программу. К сожалению напрямую подключить обмотки мотора к выходам нашего микроконтроллера невозможно по одной простой причине - нехватка мощности. Любой электромотор пропускает через свои обмотки достаточно большой ток, а к микроконтроллеру можно подключить нагрузку не более 40 mA (параметры ArduinoMega 2560) . Что же делать если есть необходимость управлять нагрузкой например 10A да еще и напряжением 220В? Эту проблему можно решить если между микроконтроллером и шаговым двигателем интегрировать силовую электрическую схему, тогда можно будет управлять хоть трехфазным электромотором который открывает многотонный люк в ракетную шахту:-). В нашем случае люк в ракетную шахту открывать не нужно, нам нужно всего лишь заставить работать шаговый мотор и в этом нам поможет драйвер шагового двигателя. Можно конечно купить готовые решения, на рынке их очень много, но я буду делать свой собственный драйвер. Для этого мне понадобятся силовые ключевые полевые транзисторы Mosfet, как я уже говорил эти транзисторы идеально подходят для сопряжения Arduino с любыми нагрузками.
На рисунке ниже представлена электрическая принципиальная схема контроллера шагового двигателя.

В качестве силовых ключей я применил транзисторы IRF634B максимальное напряжение исток-сток 250В, ток стока 8,1А, этого более чем достаточно для моего случая. Со схемой более менее разобрались будем рисовать печатную плату. Рисовал в встроенном в Windows редакторе Paint, скажу это не самая лучшая затея, в следующий раз буду использовать какой-нибудь специализированный и простой редактор печатных плат. Ниже представлен рисунок готовой печатной платы.

Далее это изображение в зеркальном отражении распечатываем на бумаге при помощи лазерного принтера. Яркость печати лучше всего сделать максимальной, а бумагу нужно использовать не обычную офисную а глянцевую, подойдут обычные глянцевые журналы. Берем лист и печатаем поверх имеющегося изображения. Далее получившуюся картинку прикладываем к заранее подготовленному куску фольгированного стеклотекстолита и хорошенько проглаживаем утюгом в течении 20 минут. Утюг нужно нагреть до максимальной температуры.
Как подготовить текстолит? Во первых его нужно отрезать по размеру изображения печатной платы (при помощи ножниц по металлу или ножовкой по металлу), во вторых зашкурить края мелкой наждачной бумагой, чтобы не осталось заусенцев. Также необходимо пройтись наждачкой по поверхности фольги, снять окислы, фольга приобретет ровный красноватый оттенок. Далее поверхность обработанную наждачной бумагой нужно протереть ваткой смоченной в растворитель (используйте 646 растворитель он меньше воняет).
После прогрева утюгом, тонер с бумаги запекается на поверхность фольгированного стеклотекстолита в виде изображения контактных дорожек. После этой операции плату с бумагой необходимо остудить до комнатной температуры и положить в ванночку с водой примерно на 30 минут. За это время бумага раскиснет и ее нужно аккуратно скатать подушечками пальцев с поверхности текстолита. На поверхности останутся ровные черные следы в виде контактных дорожек. Если у вас не получилось перенести изображение с бумаги и у вас есть огрехи, тогда следует смыть тонер с поверхности текстолита растворителем и повторить все заново. У меня все получилось с первого раза.
После получения качественного изображения дорожек, необходимо вытравить лишнюю медь, для этого нам понадобится травильный раствор который мы приготовим сами. Раньше для травления печатных плат я использовал медный купорос и обычную поваренную соль в соотношении на 0,5 литра горячей воды по 2 столовые ложки с горкой медного купороса и поваренной соли. Все это тщательно размешивалось в воде и раствор готов. Но в этот раз попробовал иной рецепт, очень дешевый и доступный.
Рекомендуемый способ приготовления травильного раствора:
В 100 мл аптечной 3% перекиси водорода растворяется 30 г лимонной кислоты и 2 чайные ложки поваренной соли. Этого раствора должно хватить для травления площади 100 см2. Соль при подготовке раствора можно не жалеть. Так как она играет роль катализатора и в процессе травления практически не расходуется.
После приготовления раствора, печатную плату необходимо опустить в емкость с раствором и наблюдать за процессом травления, тут главное не передержать. Раствор съест непокрытую тонером поверхность меди, как только это произойдет плату необходимо достать и промыть холодной водой, далее ее нужно просушить и снять с поверхности дорожек тонер при помощи ватки и растворителя. Если в вашей плате предусмотрены отверстия для крепления радиодеталей или крепежа, самое время просверлить их. Я опустил эту операцию по причине того что это всего лишь макетный драйвер шагового двигателя, предназначенный для освоения новых для меня технологий.
Приступаем к лужению дорожек. Это необходимо сделать чтобы облегчить себе работу при пайке. Раньше я лудил при помощи припоя и канифоли, но скажу это "грязный" способ. От канифоли много дыма и шлака на плате который нужно будет смывать растворителем. Я применил другой способ, лужение глицерином. Глицерин продается в аптеках и стоит копейки. Поверхность платы необходимо протереть ваткой смоченной в глицерине и наносить припой паяльником точными мазками. Поверхность дорожек покрывается тонким слоем припоя и остается чистой, лишний глицерин можно удалить ваткой или промыть плату в воде с мылом. К сожалению у меня нет фотографии полученного результата, после лужения, но получившееся качество впечатляет.
Далее необходимо припаять все радиодетали на плату, для пайки SMD компонентов я использовал пинцет. В качестве флюса использовал глицерин. Получилось очень даже аккуратно.
Результат налицо. Конечно после изготовления плата выглядела лучше, на фото она уже после многочисленных экспериментов (для этого она и создавалась).



Итак наш драйвер шагового двигателя готов! Теперь переходим к самому интересному к практическим экспериментам. Припаиваем все провода подключаем источник питания и пишем управляющую программу для Arduino.
Среда разработки Arduino богата на различные библиотеки, для работы с шаговым двигателем предусмотрена специальная библиотека Stepper.h, ее мы и будем использовать. Как пользоваться средой разработки Arduino и описывать синтаксис языка программирования я не стану, эту информацию вы можете посмотреть на сайте http://www.arduino.cc/ , там же описание всех библиотек с примерами в том числе и описание Stepper.h.


Листинг программы:
/*
* Тестовая программа для шаговика
*/
#include
#define STEPS 200

Stepper stepper(STEPS, 31, 33, 35, 37);

void setup()
{
stepper.setSpeed(50);
}

void loop()
{
stepper.step(200);
delay(1000);
}

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

Большинство на начальном этапе останавливается на выборе покупного (чаще всего — китайского) контроллера для шаговых двигателей, потому как это экономит время. Но уже после того, как станок готов и запущен, начинает закрадываться ощущение, что что-то не то… Чего-то не хватает или что-то сделано не правильно, или не доделано… Появляется некоторое недовольство, вопросы, связанные с точностью станка с ЧПУ. Люди начинают долго и мучительно читать форумы в поисках волшебного рецепта исцеления своего родного станочка от постоянного непопадания «в десятку» (имеются в виду десятые доли миллиметра, которые должен стабильно отрабатывать даже самый пластилиновый станок с ЧПУ, сделанный своими руками).

Моя бабушка всегда говорит: «Где узко, там и рвется». И так действительно происходит! Это же справедливо и для основы основ станка с ЧПУ — механизма линейного перемещения и электроники управления, а именно — контроллера шагового двигателя. О какой точности можно говорить, если человек поставил дешевый китайский контроллер, включил на нем микрошаг 1/8 или даже 1/16 и пытается выдавить из станка микронные перемещения?

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

Первое, что я хочу получить от своего контроллера шагового двигателя — это калиброванный микрошаг, который бы настраивался под конкретный экземпляр шагового двигателя. О нелинейности характеристик шаговых двигателей я уже писал в своей статье про и . Если вам лень перейти по ссылке, то вкратце скажу, что в режиме микрошага вы посылаете двигателю команду повернуться на 1/8 шага (к примеру), а он поворачивается вообще не известно на сколько или вообще не поворачивается! Все это как раз из-за нелинейности характеристики шагового двигателя. Вот почему нельзя использовать микрошаговый режим в обычных китайских контроллерах для повышения точности (разрешающей способности) перемещений своего станка с ЧПУ!

Кто-то, возможно, задастся вопросом — откуда берется эта нелинейность? А все дело в том, что на самом деле шаговый двигатель вообще не предназначен для работы в режиме микрошага ! Шаговый двигатель предназначен только для того, чтобы шагать — ать, два! Это мы — ЧПУшники от своей голытьбы решили привнести в мир цифрового двигателя (двигателя с конечными состояниями) немного аналоговости и придумали «микрошаг», в котором шаговый двигатель «зависает» в некотором промежуточном состоянии между двумя шагами. А производители контроллеров радостно подхватили эту фишку и преподносят микрошаг, как некий стандарт де-факто! И впаривают свои контроллеры невдумчивым потребителям.

Если вы — «счастливый» обладатель контроллера с микрошагом, то сказанное мной выше вы сможете сами очень легко проверить по методу лазерной калибровки, описанному мной выше в статье про калибровку шагового двигателя. Достаточно снять со станка шаговик, приделать к нему лазерную указку, включить в контроллере режим микрошага (хотя он, конечно же, у вас включен!) и подавать ему на вход импульсы STEP. Можно прямо из Mach3 или LinuxCNC, выбрав самую минимальную подачу в ручном режиме или задавая микро-перемещения через G-коды. После каждого микрошага делайте отметки на листе бумаги, закрепленному на стене скотчем, в том месте, куда светит луч лазера. Уже после нескольких микрошагов, вы заметите, что между насечками получилось ну просто неприлично разное расстояние!

Закончим на этом ругать производителей. Они на самом деле ничего плохого не делают. Люди хотели микрошаг — люди его получили! Сосредоточимся лучше на том, чего на самом деле хотели получить конечные пользователи от своего контроллера шагового двигателя? А хотели они получить не деление управляющего шаговыми двигателями сигнала на 8, на 16 и т.д., а деление угла поворота шагового двигателя на указанные делители! Но какое же для этого нужно подавать управляющее напряжение? Отвечу однозначно — хрен его знает! Поясню… Дело в том, что разные производители делают разные двигатели, применяют разные технологии с разным качеством и разной погрешностью. И получается так, что все шаговые двигатели разные! Даже в пределах одного типа и одной партии. Легла где-то в обмотке шагового двигателя проволочка слегка не на ту сторону — характеристика поменялась! У одного двигателя X витков, у другого двигателя X+Y витков в обмотке — опять характеристики разные. Ну и так далее — до фанатизма

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

Схема контроллера шаговых двигателей

Схема моего контроллера будет очень проста. Силовыми элементами, непосредственно управляющими обмотками двигателя, будут являться ключевые MOSFET-транзисторы, подключенные в виде Н-моста. Ключами будет управлять микроконтроллер. Никаких дорогостоящих микросхем-драйверов в моей схеме не будет. Вместо них будет парочка ферритовых колечек из сгоревших энергосберегающих ламп, которые отлично подходят для управления затворами MOSFET-транзисторов. В общем, я стараюсь сделать контроллер шагового двигателя доступным для повторения в домашних условиях. Также одним из его достоинств будет являться высокая ремонтопригодность (например, если сгорит какой-либо MOSFET-транзистор в силовой части, то стоимость замены составит ~20-30 рублей).

Слева представлена схема управления затвором силового MOSFET-ключа моего контроллера шаговых двигателей. Как видно, управление затвором осуществляется через повышающий импульсный трансформатор на ферритовом кольце. Повышающий трансформатор нужен, чтобы силовой ключ полностью открывался от 5-тивольтового сигнала управления, поступающего с выхода микроконтроллера. Для полного гарантированного открытия силовым MOSFET-ам обычно требуется от 10 вольт (более детально характеристику MOSFET-а можно посмотреть на графиках в его datasheet). Особенность такого включения заключается в том, что емкость затвора MOSFET используется в режиме памяти, т.е. при прохождении открывающего импульса через диод D1, транзистор будет открыт сколь угодно долго до тех пор, пока его не закроет открывшийся транзистор Q2, разрядив емкость затвора на «землю». Благодаря такой схеме при управлении ШИМ-сигналом (PWM) удается получить до 100% глубины модуляции (в англоязычных источниках — duty circle или «цикл загрузки»). В стандартной же схеме включения трансформатора затвора (GDT — gate drive transformer), когда положительный импульс открывает MOSFET, а следующий за ним отрицательный импульс восстановления разряжает емкость затвора, удается получить лишь менее 50% периода ШИМ-сигнала.

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

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

Written By: . Tagged: , .

Post navigation

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

    Если вы хотите купить драйвер шагового двигателя , нажмите на информер справа


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

    Шаговый двигатель – двигатель со сложной схемой управления, которому требуется специальное электронное устройство – драйвер шагового двигателя. Драйвер шагового двигателя получает на входе логические сигналы STEP/DIR, которые, как правило, представлены высоким и низким уровнем опорного напряжения 5 В, и в соответствии с полученными сигналами изменяет ток в обмотках двигателя, заставляя вал поворачиваться в соответствующем направлении на заданный угол. >Сигналы STEP/DIR генерируются ЧПУ-контроллером или персональным компьютером, на котором работает программа управления типа Mach3 или LinuxCNC.

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

    Типы (виды) драйверов ШД


    Драйверы делятся по способу закачки тока в обмотки на несколько видов:

    1) Драйверы постоянного напряжения

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

    2) Двухуровневые драйверы

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

    3) Драйверы с ШИМ.

    На текущий момент ШИМ-драйверы шаговых двигателей наиболее популярны, практически все драйверы на рынке – этого типа. Эти драйверы подают на обмотку шагового мотора ШИМ-сигнал очень высокого напряжения, которое отсекается по достижению током необходимого уровня. Величина силы тока, по которой происходит отсечка, задается либо потенциометром, либо DIP-переключателем, иногда эта величина программируется с помощью специального ПО. Эти драйверы достаточно интеллектуальны, и снабжены множеством дополнительных функций, поддерживают разные деления шага, что позволяет увеличить дискретность позиционирования и плавность хода. Однако, ШИМ-драйверы также весьма сильно отличаются друг от друга. Помимо таких характеристик, как питающее напряжение и максимальный ток обмотки, у них отличается частота ШИМ. Лучше, если частота драйвера будет более 20 кГц, и вообще, чем она больше – тем лучше. Частота ниже 20 кГц ухудшает ходовые характеристики двигателей и попадает в слышимый диапазон, шаговые моторы начинают издавать неприятный писк. Драйверы шаговых двигателей вслед за самими двигателями делятся на униполярные и биполярные. Начинающим станкостроителям настоятельно рекомендуем не экспериментировать с приводами, а выбрать те, по которым можно получить максимальный объем технической поддержки, информации и для которых продукты на рынке представлены наиболее широко. Такими являются драйверы биполярных гибридных шаговых двигателей.

    Как выбрать драйвер шагового двигателя (ШД)

    Первый параметр , на который стоит обратить внимание, когда вы решили выбрать драйвер шагового двигателя – это сила тока, которую может обеспечить драйвер. Как правило, она регулируется в достаточно широких пределах, но стоит драйвер нужно выбирать такой, который может выдавать ток, равный току фазы выбранного шагового двигателя. Желательно, конечно, чтобы максимальная сила тока драйвера была еще на 15-40% больше. С одной стороны, это даст запас на случай, если вы захотите получить больший момент от мотора, или в будущем поставите более мощный двигатель, с другой – не будет излишней: производители иногда «подгоняют» номиналы радиоэлектронных компонентов к тому или иному виду/размеру двигателей, поэтому слишком мощный драйвер на 8 А, управляющий двигателем NEMA 17 (42 мм), может, к примеру, вызывать излишние вибрации.

    Второй момент – это напряжение питания. Весьма важный и неоднозначный параметр. Его влияние достаточно многогранно – напряжение питания влияет на динамику(момент на высоких оборотах), вибрации, нагрев двигателя и драйвера. Обычно максимальное напряжение питания драйвера примерно равно максимальному току I, умноженному на 8-10. Если максимальное указанное напряжение питания драйвера резко отличается от данных величин – стоит дополнительно поинтересоваться, в чем причина такой разницы. Чем больше индуктивность двигателя - тем большее напряжение требуется для драйвера. Существует эмпирическая формула U = 32 * sqrt(L), где L - индуктивность обмотки шагового двигателя. Величина U, получаемая по этой формуле, весьма приблизительная, но она позволяет ориентироваться при выборе драйвера: U должно примерно равняться максимальному значению напряжения питания драйвера. Если вы получили U равным 70, то по данному критерию проходят драйверы EM706, AM882, YKC2608M-H.

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

    Четвертый аспект – наличие механизмов подавления резонанса. Резонанс шагового двигателя – явление, которое проявляется всегда, разница только в резонансной частоте, которая прежде всего зависит от момента инерции нагрузки, напряжения питания драйвера и установленной силы тока фазы мотора. При возникновении резонанса шаговый двигатель начинает вибрировать и терять крутящий момент, вплоть до полной остановки вала. Для подавления резонанса используется микрошаг и – встроенные алгоритмы компенсации резонанса. Колеблющийся в резонансе ротор шагового двигателя порождает микроколебания ЭДС индукции в обмотках, и по их характеру и амплитуде драйвер определяет, есть ли резонанс и насколько он силен. В зависимости от полученных данных драйвер несколько смещает шаги двигателя во времени относительно друг друга – такая искусственная неравномерность нивелирует резонанс. Механизм подавления резонанса встроен во все >драйверы Leadshine серий DM, AM и EM. Драйверы с подавлением резонанса – высококачественные драйверы, и если бюджет позволяет – лучше брать именно такие. Впрочем, и без этого механизма драйвер остается вполне рабочим устройством – основная масса проданных драйверов – без компенсации резонанса, и тем не менее десятки тысяч станков без проблем работают по всему миру и успешно выполняют свои задачи.

    Пятый аспект – протокольная часть. Надо убедиться, что драйвер работает по нужному вам протоколу, а уровни входных сигналов совместимы с требуемыми Вам логическими уровнями. Эта проверка идет пятым пунктом, потому что за редким исключением подавляющее число драйверов работает по протоколу STEP/DIR/ENABLE и совместимо с уровнем сигналов 0..5 В, вам надо только лишь на всякий случай убедиться.

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

    Седьмой аспект – наличие микрошаговых режимов. Сейчас практически в каждом драйвере есть множество микрошаговых режимов. Однако, из каждого правила есть исключения, и в драйверах Geckodrive режим только один – деления шага 1/10. Мотивируется это тем, что большее деление не приносит большей точности, а значит, в нем нет необходимости. Однако, практика показывает, что микрошаг полезен вовсе не повышением дискретности позиционирования или точности, а тем, что чем больше деление шага, тем плавней движение вала мотора и меньше резонанс. Соответственно, при прочих равных условиях стоит использовать деление чем больше, тем лучше. Максимально допустимое деление шага будет определяться не только встроенными в драйвер таблицами Брадиса, но и максимальной частотой входных сигналов – так, для драйвера со входной частотой 100 кГц нет смысла использовать деление 1/256, так как скорость вращения будет ограничена 100 000 / (200 * 256) * 60 = 117 об/мин, что для шагового двигателя очень мало. Кроме того, персональный компьютер тоже с трудом сможет генерировать сигналы с частотой более 100 кГц. Если вы не планируете использовать аппаратный ЧПУ контроллер, то 100 кГц скорее всего будет Вашим потолком, что соответствует делению 1/32.

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

    Девятый, и самый важный аспект – качество драйвера. Оно практически не связано с характеристиками и т.п. На рынке существует множество предложений, и иногда характеристики драйверов двух производителей совпадают практически до запятой, а установив их по очереди на станок, становится ясно, что один из производителей явно занимается не своим делом, и в производстве недорогих утюгов ему больше повезет. Определить уровень драйвера заранее по каким-то косвенным данным новичку достаточно трудно. Можно попробовать ориентироваться на количество интеллектуальных функций, таких как «stall detect» или подавление резонанса, а также воспользоваться проверенным способом - ориентироваться на бренды.