Как правило, логические сигналы для управления шаговым двигателем формирует микроконтроллер. Ресурсов современных микроконтроллеров вполне хватает для этого даже в самом ”тяжелом” режиме – микрошаговом.
Для подключения шаговых двигателей через слаботочные логические сигналы микроконтроллеров необходимы усилители сигналов – драйверы.
В функцию драйверов входит:
- обеспечение необходимого тока и напряжения на фазных обмотках двигателя;
- коммутация обмоток;
- включение;
- выключение;
- смена полярности;
- защита коммутирующих элементов от напряжения самоиндукции обмоток.
Речь в этой статье идет о простых драйверах, достаточных для большинства приложений. Существуют драйверы с гораздо большими возможностями:
- обеспечение быстрого нарастания тока при включении и быстрого спада при выключении;
- уменьшение тока для фиксации положения остановленного двигателя;
- защитные функции;
- формирование тока и напряжения обмоток для микрошагового режима;
- и многие другие.
Схемы таких драйверов достаточно сложные, а в этих функциях в большинстве приложениях нет необходимости.
По схеме подключения шаговые двигатели делятся на униполярные и биполярные. Драйверы для этих двух вариантов двигателей принципиально отличаются.
- Драйвер униполярного шагового двигателя.
- Схема драйвера униполярного шагового двигателя.
- Драйвер биполярного шагового двигателя.
- Схема драйвера биполярного шагового двигателя.
- Драйвер биполярного шагового двигателя L298N.
- Характеристики микросхемы L298N на русском языке.
- Схема включения драйвера L298N.
Драйвер униполярного шагового двигателя.
В униполярном режиме могут работать двигатели, имеющие следующие конфигурации обмоток.
Напомню принцип управления униполярным шаговым двигателем. Четыре обмотки с общим проводом, подключенным к одному полюсу источника питания. Если другие выводы обмоток последовательно коммутировать к другому полюсу источника, то ротор двигателя будет вращаться.
Для коммутации обмоток таким способом достаточно всего четырех ключей, замыкающих обмотки на землю. Схемы коммутации обмоток двух предыдущих вариантов двигателей выглядят так.
Если последовательно замыкать ключи 1, 2, 3, 4, то ротор двигателя будет вращаться.
Схема драйвера униполярного шагового двигателя.
Практически ключи можно выполнить на биполярных транзисторах, но предпочтительнее использовать низкопороговые MOSFET транзисторы. Я применяю транзисторы IRF7341. Это MOSFET транзисторы с параметрами:
- максимально допустимый ток 4 А;
- предельное напряжение 55 В;
- сопротивление в открытом состоянии 0,05 Ом;
- порог включения 1 В;
- выполнены в миниатюрном корпусе SO-8;
- в корпусе два транзистора.
Крайне удобный вариант для использования в драйвере униполярного шагового двигателя.
- Нет необходимости в радиаторах охлаждения ключей;
- очень низкое падение напряжения на открытом транзисторе;
- малые размеры;
- всего два 8ми выводных корпуса для драйвера двухфазного шагового двигателя.
На биполярных транзисторах ключи с такими параметрами создать не возможно. Есть много других вариантов MOSFET транзисторов для ключей, например IRF7313 ( 6 А, 30 В, 0,029 Ом).
Схема ключа на MOSFET транзисторе для одной фазы выглядит так.
Ключ управляется непосредственно от микроконтроллера логическими уровнями KMOП или TTL ( 0 / +5 В). При управляющем сигнале высокого уровня (+5 В) ключ открыт, и через обмотку фазы идет ток. Диод шунтирует обмотку двигателя в обратном направлении. Он необходим для защиты транзистора от бросков напряжения самоиндукции при выключении фазы. Для управления двигателями на значительных скоростях вращения, лучше использовать высокочастотные диоды, например, FR207.
Вот фрагмент схемы подключения униполярного шагового двигателя к микроконтроллеру.
Защиты от коротких замыканий в этой схеме нет. Реализация защиты значительно усложняет драйвер. А замыканий обмоток шаговых двигателей практически не бывает. Я не встречался с таким явлением. Да и на фоне неприятности по поводу сгоревшего дорогого двигателя, замена транзистора не выглядит проблемой.
Кстати, механическое заклинивание вала шагового двигателя не вызывает недопустимых токов в ключах драйвера и защиты не требует.
А это изображение платы контроллера униполярного шагового двигателя с PIC контроллером фирмы Microchip.
Простая плата с восьми разрядным микроконтроллером PIC18F2520 управляет:
- двумя шаговыми двигателями с током фазы до 3 А;
- двумя ШИМ ключами для электромагнитов;
- считывает состояние 4х датчиков;
- обменивается данными по сети с центральным контроллером.
Этот контроллер используется в составе системы управления шаговыми двигателями практически во всем фасовочном оборудовании фирмы ”РОСТ”.
Несмотря на простоту контроллера, реализованы следующие режимы управления:
- полно-шаговый, одна фаза на полный шаг;
- полно-шаговый, две фазы на полный шаг;
- полу-шаговый;
- фиксацию положения двигателя при остановке.
К достоинствам управления шаговым двигателем в униполярном режиме следует отнести:
- простой, дешевый, надежный драйвер.
К недостаткам:
- в униполярном режиме крутящий момент примерно на 40 % меньше по сравнению с биполярным режимом.
Пример практической схемы простого контроллера униполярного шагового двигателя.
Статья о подключении униполярного шагового двигателя к плате Ардуино.
Драйвер биполярного шагового двигателя.
В биполярном режиме могут работать двигатели, имеющие любые конфигурации обмоток.
У биполярного двигателя по одной обмотке для каждой фазы. Обычно две обмотки AB и CD. В первых двух вариантах четыре обмотки соединяются так, что получается две. Обмотки по очереди подключаются к источнику питания в одной полярности, затем в другой.
Драйвер биполярного двигателя должен обеспечивать сложную коммутацию. Каждая обмотка:
- подключается в прямой полярности к источнику напряжения;
- отключается от источника напряжения;
- подключается с противоположной полярностью.
Схема коммутации одной обмотки биполярного двигателя выглядит так.
Для обеспечения двух полярных коммутаций от одного источника питания требуется 4 ключа. При замыкании 1 и 2 ключей обмотка подключается к источнику питания в прямой полярности. Замыкание 3 и 4 ключей подает на обмотку обратную полярность напряжения.
Сложность драйвера биполярного шагового двигателя вызвана не только большим числом ключей ( 4 ключа на обмотку, 8 ключей на двигатель), но и:
- сложное управление верхними ключами ( 1 и 4) от логических сигналов “привязанных” к земле;
- проблемы со сквозными токами при одновременном открывании ключей одного плеча ( 1,3 или 2,4).
Сквозные токи могут возникать из-за не одинакового быстродействия нижнего и верхнего ключа. К примеру, нижний ключ уже открылся, а верхний – не успел закрыться.
Схема драйвера биполярного шагового двигателя.
Реализовать схему драйвера биполярного шагового двигателя на дискретных элементах довольно сложно. Могу показать мою схему, которая подключает биполярный двигатель к униполярному драйверу. Эта схема используется для управления биполярными двигателями от контроллера, приведенного в качестве примера в предыдущей главе.
Схема достаточно простая. Проблема сквозных токов решается за счет резисторов 0.22 Ом в коммутируемых цепях. В момент коммутаций MOSFET транзисторов, верхний и нижний ключ оказываются одновременно открытыми на короткое время. Эти резисторы и ограничивают сквозной ток. К сожалению, они ограничивают и рабочий ток двигателя. Поэтому, несмотря на мощные транзисторы, драйвер по такой схеме можно использовать для токов коммутации не более 2 А. Схема не требует диодов для защиты от эдс самоиндукции обмоток, потому что эти диоды интегрированы в MOSFET транзисторы.
Гораздо удобнее и практичнее использовать интегральные драйверы биполярного шагового двигателя. Самым распространенным из них является микросхема L298N.
Драйвер биполярного шагового двигателя L298N.
Описания этой микросхемы на русском языке практически нет. Поэтому привожу параметры L298N достаточно подробно, по официальным материалам производителя этой микросхемы – компании STMicroelectronics (datasheet l298n.pdf).
L298N это полный мостовой драйвер для управления двунаправленными нагрузками с токами до 2 А и напряжением до 46 В.
- Драйвер разработан для управления компонентами с индуктивными нагрузками, такими как электромагниты, реле, шаговые двигатели.
- Сигналы управления имеют TTL совместимые уровни.
- Два входа разрешения дают возможность отключать нагрузку независимо от входных сигналов микросхемы.
- Предусмотрена возможность подключения внешних датчиков тока для защиты и контроля тока каждого моста.
- Питание логической схемы и нагрузки L298N разделены. Это позволяет подавать на нагрузку напряжение другой величины, чем питание микросхемы.
- Микросхема имеет защиту от перегрева на уровне + 70 °C.
Структурная схема L298N выглядит так.
Микросхема выполнена в 15ти выводном корпусе с возможностью крепления радиатора охлаждения.
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.
Обозначение | Параметр | Значение |
Vs | Напряжение питания | 50 В |
Vss | Напряжение питания логики | 7 В |
Vi, Ven | Напряжение логических входов | -0,3...7 В |
Io | Выходной ток (для каждого канала)
|
3 А 2,5 А 2 А |
Vsens | Напряжение датчиков тока | -1...2,3 В |
Ptot | Мощность рассеивания (температура корпуса 75°C) | 25 Вт |
Top | Рабочая температура кристалла | -25...130 °C |
Tstg | Температура хранения | -40...150 °C |
Параметры расчетов тепловых режимов.
Обозначение | Параметр | Значение |
Tth j-case | Тепловое сопротивление кристалл-корпус | 3 ºC/Вт |
Tth j-amb | Тепловое сопротивление кристалл-окружающая среда | 35 ºC/Вт |
Электрические характеристики драйвера L298N.
Обозначение | Параметр | Значение |
Vs | Напряжение питания (вывод 4) | Vih+2.5 ...46 В |
Vss | Питание логики | 4,5... 5 ...7 В |
Is | Потребляемый ток покоя (вывод 4)
|
13 ... 22 мА |
Iss | Потребляемый ток покоя (вывод 9)
|
24 ... 36 мА |
Vil | Входное напряжение низкого уровня (выводы 5, 7, 10, 12, 6, 11) |
-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) | Напряжение насыщения верхнего ключа
|
0,95...1,35...1,7 В |
Vce sat (l) | Напряжение насыщения нижнего ключа
|
0,85...1,2...1,6 В |
Vce sat | Общее падение напряжения на открытых ключах
|
1,8 ... 3,2 В 1,8 ... 4,9 В |
Vsens | Напряжение датчиков тока (выводы 1, 15) |
-1 ... 2 В |
Fc | Частота коммутаций | 25 ... 40 кГц |
Схема подключения шагового двигателя к микроконтроллеру с помощью драйвера L298N.
Диаграмма работы этой схемы в полношаговом режиме выглядит так.
Если не используются разрешающие входы и датчики тока, схема выглядит так.
А вот фрагмент схемы контроллера биполярного шагового двигателя.
По функциям это аналог контроллера описанного в главе про униполярные двигатели, только для биполярного. Он также собран на PIC контроллере фирмы Microchip и управляет двумя биполярными шаговыми двигателями с током фаз до 2 А. Функциональные возможности и режимы управления двигателем те же.
К достоинствам управления шаговым двигателем в биполярном режиме следует отнести:
- крутящий момент примерно на 40 % больше по сравнению с униполярным режимом.
- можно подключать шаговые двигатели с любой конфигурацией обмоток.
К недостаткам:
- сложный драйвер.
Еще одна схема контроллера шагового двигателя.
Прекрасная статья! Спасибо.
А как ввести реверс при использовании драйвера на L298N&
Изменить последовательность импульсов переключения фаз или поменять фазы местами. Библиотека Ардуино (урок 29) поддерживает эту функцию.
Спасибо за статью. Вот только не прописано как подобрать сопротивления для датчиков тока? И как подсоединить? Поставить вместо перемычки сопротивление и какой мощности?
Здравствуйте!
Не достаточно добавить в схему датчики тока. Надо как-то реализовать защиту или стабилизацию тока.
Спасибо за статью.
Подскажите, я правильно понял, что последовательность импульсов с микроконтроллера одинакова для униполярного и биполярного драйвера?
Хотя бы для полношагового режима.
Здравствуйте!
Не совсем. Просто драйвер меняет логику управления. Вместо последовательных, сдвинутых относительно друг друга импульсов, он вырабатывает двуполярные сигналы.
Спасибо.
Что у драйверов разная выходная логика , это понятно.
Меня интересует входящая логика: с микроконторллера на драйвер.
Смысл в чём? Есть схема с прошивкой на Атмеге8 для униполярного драйвера и двигателя. Я хочу подменить драйвер под биполярный двигатель, без изменения прошивки м/к.
Просто под рукой нет пока биполярного драйвера проверить.
Здравствуйте!
Нарисуйте диаграммы переключения фаз для униполярного и биполярного двигателей. Если использованы правильные полярности сигналов, то можно управлять драйвером биполярного двигателя. В статье есть рабочий пример для драйвера L298.