Драйвер для двигателя постоянного тока ардуино

Реверс двигателя постоянного тока схемы.

В статье «Регуляторы оборотов электродвигателей » речь шла о регулировке оборотов коллекторных двигателей электроинструментов. Нередко возникает и другая задача: реверс двигателя постоянного тока, т.е. требуется обеспечить его вращение в одну и другую стороны. Это может понадобиться, например, для привода ворот в гараже или коттедже, в различных моделях и пр. Проще всего такая задача с реверсом решается с помощью мостовой схемы, которая в общем виде представлена на рис.1 . Схема реверса состоит из четырех ключей, двигателя и источника питания. Когда все ключи разомкнуты ( рис.1а ), ток через двигатель не течет. При коммутации первого и четвертого ключа ток через двигатель Iд течет слева направо ( рис.1б ), и двигатель вращается в одном направлении. А при коммутации второго и третьего ключей — течет справа налево ( рис.1в ), и двигатель вращается в обратном направлении. Понятно, что руками коммутировать для реверса четыре переключателя неудобно, поэтому вместо ключей используем транзисторы ( рис.2 ). Транзисторы могут быть разной проводимости, полевыми или биполярными. Работают они в ключевом режиме. Обратно включенные диоды VD1. VD4 защищают транзисторы от выхода из строя, так как в момент выключения электродвигателя возникает достаточно большая ЭДС самоиндукции. Силовая часть устройства реверса на биполярных транзисторах приведена на рис.3 . Она состоит из четырех силовых и двух управляющих транзисторов; резисторов, ограничивающих базовые токи; шунтирующих диодов и гальванической развязки в виде двух оптопар. Питание моста происходит от блока питания, подающего постоянное напряжение +50 В относительно земли. В cостоянии покоя на оба канала (А и Б) подается 0 В. Все транзисторы закрыты, на концах обмоток потенциал 0 В. Вал двигателя не вращается. Для вращения двигателя в одну сторону на канал А подается постоянное напряжение +5 В или ШИМ-сигнал, на канал Б — 0 В. Открывается оптрон VU1, следом управляющий VТ5; при этом VТ6 закрыт. Через резистор R2 протекает ток, открывающий силовые VТ1 и VТ4, а VТ2 и VТЗ закрыты. Таким образом, на конце обмотки Я1 потенциал составляет +50 В, на конце обмотки Я2 — 0 В. Вал двигателя вращается (например, по часовой стрелке). Чтобы включить реверс двигателя, на канал Б подается напряжение +5 В (ШИМ-сигнал), на канал А — 0 В. Управляющий VТ6 открыт, VТ5 — закрыт. Через резистор R4 в цепи коллектора VТ6 протекает ток, открывающий VТ2 и VТ3, а VТ1 и VТ4 закрыты. На конце обмотки Я1 потенциал составляет 0 В, на конце обмотки Я2 — +50 В. Вал двигателя вращается против часовой стрелки. В случае подачи полoжительного напряжения на оба канала (А и Б) произойдет короткое замыкание, поэтому такой режим предотвращается управляющей частью устройства. Реверс двигателя постоянного тока можно выполнить и на МОП-транзисторах ( рис.4 ). На входе схемы реверса последовательно установлены два инвертора так, что выход одного одновременно является входом другого. При этом сигнал управления (высокий или низкий логический уровень) на входе DD1.1 инвертируется и подается на вход DD1.2. Выходы инверторов управляют полевыми транзисторами. При высоком уровне на входе, на выходе DD1.1 — низкий уровень, а на выходе DD1.2. — высокий. Благодаря этому VТ2 и VТЗ открыты и пропускают ток от отрицательного к положительному полюсу источника питания. Двигатель М1 вращается против часовой стрелки. Если на вход схемы реверса подать низкий уровень, на выходе DD1.1 появится высокий уровень и откроются VT1 и VТ4, замыкая другую диагональ моста. Теперь ток потечет в другую сторону, и двигатель изменит направление вращения. Для управления устройством для реверса необходим логический сигнал МОП-уровня (0/+12 В).

Устройство для реверса испытывалось с электродвигателем автомобильного вентилятора. Мощные МОП-транзисторы (для КП74ЗБ напряжение сток-затвор составляет 80 В. максимальный ток стока — 4,9 А) обеспечивают запас по мощности и по напряжению. Сопротивление открытого канала составляет 0,3.. .0,5 Ом. Для повышения эффективности VT1. . .VТ4 устанавливаются на теплоотводы. Напряжение питания зависит от типа применяемого электродвигателя М1. Если его напряжение питания превышает 15 В, следует предусмотреть в схеме дополнительный стабилизатор для питания микросхемы DD1. Вместо К561ЛА7 можно применить другую микросхему серии 561, если ее элементы обеспечивают инвертирование сигнала (К561ЛЕ5, К561ЛН2). Другая схема управления реверсом, построенная на мощных комплементарных полевых транзисторах, показана на рис.5 .

Общие принципы работы шаговых двигателей

Внешний вид шагового двигателя 28-BYJ48 (купить на AliExpress) представлен на следующем рисунке:

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

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

Как можно видеть из рисунка, двигатель имеет однополярную катушку с 5 выводами. Но фактически это 4 катушки, на которые нужно подавать питание в определенной последовательности. На красные провода необходимо подать +5V, на остальные 4 провода необходимо подать землю чтобы запустить в работу соответствующую катушку. Мы будем использовать плату Arduino чтобы подавать питание на эти катушки в определенной последовательности и тем самым заставлять двигатель вращаться. Более подробно ознакомиться с принципами работы шаговых двигателей можно в статье про подключение шагового двигателя к микроконтроллеру AVR.

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

На первый взгляд от такого количества характеристик может закружиться голова, но давайте попробуем выделить из них самые важные, те, которые нам понадобятся для дальнейшей работы. Во-первых, мы знаем, что это шаговый двигатель 5V, поэтому необходимо подавать на красный провод 5V. Также мы знаем что это четырехфазный шаговый двигатель поскольку в нем четыре катушки. Передаточное число этого двигателя — 1: 64. Это означает, что вал, который вы видите снаружи, сделает одно полное вращение в том случае, когда двигатель внутри сделает 64 оборота. Это происходит благодаря шестерням, которые включены между двигателем и выходным валом. Эти шестерни помогают в увеличении крутящего момента.

Еще одним важным показателем, который нам следует знать, является угол шага: 5.625°/64. Это значит что когда двигатель сделает последовательность в 8 шагов он будет поворачиваться на 5.625° при каждом шаге и за один полный оборот он сделает 64 шага (5.625*64=360).

Расчет шагов на оборот для шагового двигателя

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

Поскольку изначально он равен 5.625°(приведен в даташите), то для 8 шаговой последовательности получим 11.25° (5.625*2=11.25)

В Arduino для управления двигателем мы будем использовать 4-шаговую последовательность, поэтому угол шага будет составлять 11.25°. Поскольку изначально он равен 5.625°(приведен в даташите), то для 8 шаговой последовательности получим 11.25° (5.625*2=11.25).

Справедлива следующая формула:

Количество шагов за оборот = 360 / угол шага.

В нашем случае 360/11.25 = 32 шага за оборот.

Зачем нужен драйвер мотора для управления шаговым двигателем

Большинство шаговых двигателей будут работать только с помощью модуля драйвера мотора. Это связано с тем, что микроконтроллер (в нашем случае плата Arduino) не может обеспечить достаточный ток на своих контактах ввода/вывода для работы двигателя. Поэтому мы будем использовать внешний драйвер мотора для управления нашим шаговым двигателем — модуль ULN2003 (купить на AliExpress). В сети интернет можно найти рейтинги эффективности различных драйверов мотора, но эти рейтинги будут меняться в зависимости от типа используемого шагового двигателя. Основной принцип, которого следует придерживаться при выборе драйвера мотора – он должен обеспечивать достаточный ток для управления шаговым двигателем.

Драйвер двигателя в проектах ардуино

Для чего нужен драйвер двигателя?

Как известно, плата ардуино имеет существенные ограничения по силе тока присоединенной к ней нагрузки. Для платы это 800 mA, а для каждого отдельного вывода – и того меньше, 40mA. Мы не можем подключить напрямую к Arduino Uno, Mega или Nano даже самый маленький двигатель постоянного тока. Любой из этих двигателей в момент запуска или остановки создаст пиковые броски тока,  превышающие этот предел.

Как же тогда подключить двигатель к ардуино? Есть несколько вариантов действий:

Использовать реле. Мы включаем двигатель в отдельную электрическую сеть, никак не связанную с платой Arduino. Реле по команде ардуино замыкает или размыкает контакты, тем самым включает или выключает ток. Соответственно, двигатель включается или выключается. Главным преимуществом этой схемы является ее простота и возможность использовать  Главным недостатком данной схемы является то, что мы не можем управлять скоростью и направлением вращения.

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

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

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

Микросхема или плата расширения Motor Shield

Motor Shield – плата расширения для Ардуино, которая обеспечивает работу двигателей постоянного тока и шаговых двигателей. Самыми популярными платами Motor Shield являются схемы на базе чипов L298N и L293D, которые могут управлять несколькими двигателями. На плате установлен комплект сквозных колодок Ардуино Rev3, позволяющие устанавливать другие платы расширения. Также на плате имеется возможность выбора источника напряжения – Motor Shield может питаться как от Ардуино, так и от внешнего источника. На плате имеется светодиод, который показывает, работает ли устройство. Все это делает использование драйвера очень простым и надежным – не нужно самим изобретать велосипеды и решать уже кем-то решенные проблемы. В этой статье мы будем говорить именно о шилдах.

Принцип действия H-моста

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

Схема моста изображена на рисунке. Q1…Q4 0 полевые, биполярные или  IGBT транзисторы. Последние используются в высоковольтных сетях. Биполярные транзисторы практически не используются, они могут присутствовать в маломощных схемах. Для больших токов берут полевые транзисторы с изолированным затвором. Ключи не должны быть замкнуты вместе одновременно, чтобы не произошло короткого замыкания источника. Диоды D1…D4 ограничительные, обычно используются диоды Шоттки.

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

Q1 Q2 Q3 Q4 Состояние
1 1 Поворот мотора вправо
1 1 Поворот мотора влево
Свободное вращение
1 1 Торможение
1 1 Торможение
1 1 Короткое замыкание
1 1 Короткое замыкание

Обзор драйвера мотора на L298N

Одним из самых простых и недорогх способов управления двигателями постоянного тока является модуль L298N Motor Driver с Arduino. Он может контролировать скорость и направление вращения двух двигателей постоянного тока, а так же управлять биполярным шаговым двигателем (типа NEMA 17).

Технические параметры

► Напряжение питания логики модуля: 5 В► Потребляемый ток встроенной логики: 36 мА► Напряжение питания драйвера: 5 В – 35 В► Рабочий ток драйвера: 2 А (пиковый ток 3 А)► Габариты: 43.5 мм х 43.2мм х 29.4мм

Общие сведения

Основной чип модуля это микросхема L298N, состоящая из двух H-мост (H-Bridge), один для выхода A, второй для выхода B. H-мост широко используется в электронике и служит для изменения вращения двигателем, схема H-моста содержит четыре транзистора (ключа) с двигателем в центре, образуя H-подобную компоновку. Принцип работы прост, при одновременном закрытие двух отдельных транзистора изменяется полярность напряжения, приложенного к двигателю. Это позволяет изменять направление вращения двигателя. На рисунке ниже, показана работа H-мостовой схемы.

Для управления скоростью двигателя постоянного тока используется метод PWM (Широтно-импульсной модуляции).

Модуль L298N содержит разъем для подключения питания, ряд перемычек для настройки модуля, два выхода A и B и разъем управления, которые регулируют скорость и направление вращения, назначение каждого можно ознакомится ниже:

► Вывод Vss — питание двигателей, от 5 до 35 В;► Вывод GND — общий вывод заземления;► Вывод Vs — питание для логической схемы;► Перемычка ENA — используются для управления скоростью двигателя A;► Вывода IN1 и IN2 — используются для управления направлением вращения двигателя A;► Вывода IN3 и IN4 — используются для управления направлением вращения двигателя B;► Перемычка ENB — используются для управления скоростью двигателя B;► Выходы OUT1 и OUT2 — разъем для двигателя A;► Выходы OUT3 и OUT4 — разъем для двигателя B;

Принципиальная схема модуля L298N

Питание модуля.Питание модуля L298N осуществляется через трех контактный разъем, шагом 3,5 мм:► Vs — источник питания двигателей, 3B — 35B► GND — земля► Vss — источник питания модуля, 4,5В — 5,5ВФактически у модуля L298N, есть два контакта питания, а именно. «Vss» и «Vs». От «Vs» питаются двигатели с допустимым напряжением от 5 В до 35 В, а от «Vss» питается логическая схема модуля 4,5В до 5,5В. На плате установлен встроенный стабилизатор напряжения на 5 Вольт (78M05), его можно включить или отключить с помощью перемычки. Когда перемычка установлена, стабилизатор включен и питает логику модуля (Vss) от источника питания двигателя (Vs). При включенном стабилизаторе, вход «Vss» работает как выход и обеспечивает 5В с током 0,5 А. Когда перемычка убрана, стабилизатор отключен и необходимо отдельно подключить питание 5 Вольт на вход Vss.

Внимание! Нельзя установить перемычку, если напряжение двигателя ниже 12 Вольт

Падение напряжения L298NПадение напряжения драйвера L298N составляет около 2 В, это связано с внутренним падением напряжения в транзисторах в цепи H-мосте. Таким образом, если мы подключим 12 В к источнику питания двигателя, то двигатели получат напряжение около 10 В. Это означает, что двигатель на 12 В не будет работать с максимальной скоростью, для получения максимальной скорости, напряжение поданное на двигателя должен быть выше напряжения (2 В), чем потребность в фактическом напряжении двигателя. Учитывая падение напряжения на 2 В, если вы используете двигатели 5 В, вам необходимо обеспечить питание 7 В. Если у вас 12-ваттные двигатели, то напряжение питания вашего двигателя должно составлять 14 В.

Управления скоростьюРазъемы управления скоростью ENA и ENB используются для включения и выключения управления скоростью двигателей. Когда перемычка установлена, двигатель вращается с максимальной скоростью. Если необходимо управлять скоростью двигателей, необходимо убрать перемычку и подключить выводы к контактам с поддержкой PWM на Arduino.

Подключение L298N к Arduino (коллекторный двигатель)

Необходимые детали:► Arduino UNO R3 x 1 шт.► Драйвер мотора на L298N (5-35V, 2A) x 1 шт.► Коллекторный двигатель x 2 шт.► Комплект проводов DuPont 2.54 мм, 20 см x 1 шт.

Осталось подключить Arduino к источнику питания и загрузить скетч.

Схемы драйверов

Шаговый двигатель со схемой привода Adafruit Motor Shield для использования с Arduino

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

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

Схемы драйвера L / R

Цепи драйвера L / R также называются приводами постоянного напряжения, потому что постоянное положительное или отрицательное напряжение прикладывается к каждой обмотке для установки положений шага. Однако именно ток обмотки, а не напряжение, передает крутящий момент на вал шагового двигателя. Ток I в каждой обмотке связан с приложенным напряжением V индуктивностью L и сопротивлением обмотки R. Сопротивление R определяет максимальный ток в соответствии с законом Ома I = V / R. Индуктивность L определяет максимальную скорость изменения тока в обмотке согласно формуле для катушки индуктивности dI / dt = V / L. Результирующий ток для импульса напряжения представляет собой быстро возрастающий ток в зависимости от индуктивности. Это достигает значения V / R и сохраняется до конца импульса. Таким образом, при управлении от привода постоянного напряжения максимальная скорость шагового двигателя ограничена его индуктивностью, поскольку на некоторой скорости напряжение U будет изменяться быстрее, чем ток I. Проще говоря, скорость изменения тока равна L / R (например, для индуктивности 10 мГн с сопротивлением 2 Ом потребуется 5 мс для достижения примерно 2/3 максимального крутящего момента или примерно 24 мс для достижения 99% максимального крутящего момента). Для получения высокого крутящего момента на высоких скоростях требуется большое напряжение привода с низким сопротивлением и низкой индуктивностью.

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

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

Цепи привода прерывателя

Цепи привода прерывателя называются приводами с регулируемым током, потому что они генерируют управляемый ток в каждой обмотке, а не прикладывают постоянное напряжение. Цепи привода прерывателя чаще всего используются с двухобмоточными биполярными двигателями, причем две обмотки приводятся в движение независимо для обеспечения определенного крутящего момента двигателя по часовой или против часовой стрелки. На каждую обмотку подается напряжение «питания» в виде прямоугольной волны; пример 8 кГц .

Индуктивность обмотки сглаживает ток, который достигает уровня, соответствующего скважности прямоугольной волны. Чаще всего на контроллер подаются биполярные (+ и -) напряжения питания относительно возврата обмотки

Таким образом, 50% -ный рабочий цикл приводит к нулевому току. 0% приводит к полному U / R току в одном направлении. 100% приводит к полному току в обратном направлении. Этот уровень тока контролируется контроллером путем измерения напряжения на небольшом измерительном резисторе, включенном последовательно с обмоткой. Это требует дополнительной электроники для измерения токов обмоток и управления переключением, но это позволяет шаговым двигателям работать с более высоким крутящим моментом на более высоких скоростях, чем левые / правые приводы. Это также позволяет контроллеру выводить заранее определенные уровни тока, а не фиксированные. Интегрированная электроника для этой цели широко доступна.

Подключение модуля L298N

GND — земля. Зажимы, куда подключать моторы Следует отметить, что клеммный зажим с тремя выводами не только подводит к плате питающее напряжение, но и позволяет получить его уже преобразованное для собственных нужд драйвера величиной в 5В, как показано на рисунке выше.
Остановить их вращение можно подачей сигнала LOW на те же указанные выше пины. На схеме ниже приведен пример распределения выводов LN от рабочей микросхемы.
HIGH time. Мы использовали танковую платформу, учитывая что мотор крутит редуктор и гусеницы, то для его запуска требуется приличный ток.
В приведенном ниже скетче два мотора будут вращаться в обе стороны с плавным нарастанием скорости. Схема соединения Напряжение питания двигателей ниже 12 вольт, значит джампер 3 установлен, джамперы 1 и 2 на контактах ENA и ENB сняты.
Нет так давно мы рассматривали алгоритм сборки ЧПУ своими руками , где затрагивалась тема управления шаговыми двигателями, ведь именно они позволяют просто и точно спозиционировать фрезу в заданной точке. В виду сложности подбора транзисторов и подключения их в схему Н-моста, гораздо проще использовать уже существующие драйвера, имеющие такую функцию. Всё это приведёт к вращению мотора в определённом направлении. Блок клемм 3 отвечает за подключение питания двигателей.

Подключение L298N к плате Arduino

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

Иначе, при задании движения, например, по часовой стрелке, один из них будет вращаться в противоположном направлении. Подключение биполярного шагового двигателя к модулю L для управления через Raspberry Pi.

HIGH ждем 5 секунд. Типы шаговых двигателей: биполярный, униполярный, с четырьмя обмотками.
ШАГОВЫЙ ДВИГАТЕЛЬ ПРОСТОЙ ДРАЙВЕР ДЛЯ НЕГО

Полнофункциональные драйверы шаговых двигателей

Высокоинтегрированные контроллеры шагового двигателя могут значительно сократить объем проектных работ, связанных с применением более мощных шаговых двигателей. Первая полезная особенность, которая приходит на ум – это автоматическая генерация управляющей последовательности, т.е. способность преобразовывать прямые входные сигналы управления двигателем в требуемые последовательности сигналов. Давайте рассмотрим L6208 от STMicroelectronics, в качестве примера.

Вместо логических входов, которые напрямую контролируют ток, подаваемый на обмотки двигателя, L6208 имеет:

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

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

Это последовательность для управления биполярным шаговым двигателем. «A» и «B» относятся к двум обмоткам, а столбцы «Q» указывают состояние транзисторов, управляющих током обмотки.

Особенности управления

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

Полношаговый режим

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

Полушаговый режим

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

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

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

Микрошаговый режим

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

Источники

  • 1) https://radioskot.ru/publ/raznoe/shassi_dlja_kolesnogo_robota/18-1-0-1122
  • 2) Лекомцев Д.Г. Arduino. Подключение типовых внешних устройств. – Радио, 2020, №11, с. 51-54
  • 3) https://cxem.net/arduino/arduino70.php
  • 4) https://www.2150692.ru/faq/72-l298n-arduino
  • 5) https://zelectro.cc/Motor_shield_L298N_Arduino
  • 6) https://robot-kit.ru/article_info.php/articles_id/22/article/-font-color—993300—Draiver-motorov-na-L298N-podklyuchenie-k-Arduino—font-
  • 7) Холостов К. Робот-пылесос. Журнал Левша №3 2020 г. с.12-14
  • Холостов К. Умный дом. Журнал Левша №2 2013 г. с.12-14
  • 9) Лекомцев Д.Г. Arduino. Подключение типовых внешних устройств. – Радио, 2020, №11, с. 51-54
  • 10) https://robocraft.ru/blog/arduino/58.html
  • 11) https://arduino-diy.com/arduino-drayver-shagovogo-dvigatelya-i-dvigatelya-postoyannogo-toka-L298N

Форум

Обсудить статью ДРАЙВЕР НИЗКОВОЛЬТНЫХ ЭЛЕКТРО ДВИГАТЕЛЕЙ

Настройка тока DRV8825.

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

Для настройки необходимо рассчитать значение напряжения Vref.

Vref = Current Limit / 2

где,

Current Limit — номинальный ток двигателя.

Для примера рассмотрим двигатель NEMA 17 17HS4401 с током 1,7 А.

Vref = 1,7 / 2 = 0,85 В.

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

Подключение драйвера шагового двигателя DRV8825 к Arduino UNO.

Подключим двигатель DRV8825 к Arduino UNO по схеме.

Для этого подключаем GND LOGIC к GND на Arduino. Контакты DIR и STEP подключим к цифровым контактам 2 и 3 на Arduino. Подключение шагового двигателя к контактам B2, B1, A2 и A1.

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

Затем необходимо подключить контакт RST к соседнему контакту SLP к 5В на Arduino, чтобы включить драйвер. А контакты выбора микрошага необходимо оставить не подключенными, чтобы работал режим полный микрошаг. Теперь осталось подключить питание двигателя к контактам VMOT и GND MOT, главное не забудьте подключить электролитический конденсатор на 100 мкФ к контактам питания двигателя. В противном случае, при скачке напряжения модуль может выйти из строя.

Скетч вращения шагового двигателя NEMA 17, драйвер DRV8825.

Как уже было упомянуто выше, драйвер DRV8825 заменим драйвером A4988, поэтому и код вращения двигателем можно взять из предыдущей статьи: Драйвер шагового двигателя A4988. Но для увеличения кругозора сегодня будем использовать код вращения двигателя nema 17 без использования библиотеки.

const int dirPin = 2;
const int stepPin = 3;
const int stepsPerRevolution = 200;

void setup()
{
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}
void loop()
{
  digitalWrite(dirPin, HIGH); // Установка вращения по часовой стрелки
  
  for(int x = 0; x > stepsPerRevolution; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(2000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(2000);
  }
  delay(1000);
  
  digitalWrite(dirPin, LOW); // Установка вращения против часовой стрелки

  for(int x = 0; x < stepsPerRevolution; x++)
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
  }
  delay(1000);
}

Описание скетча:

Для работы данного скетча, не требуется никаких библиотек. Программа начинается с определения выводов Arduino, к которым подключены выводы STEP и DIR. Так же указываем stepsPerRevolution количество шагов на оборот.

В функции void setup() указываем управляющие контакты как выход.

В основной функции void loop(), вращаем двигатель по часовой стрелке, затем против, с разной скоростью.

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

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

Распиновку и как подключать модуль драйвера DRV8825 будем рассматривать в следующей статье.

Использование драйвера DRV8825 с CNC shield v3.

Драйвер DRV8825 можно установить на CNC shield v3. CNC shield используются для управления ЧПУ станками и облегчают сборку электроники.

Данный набор позволяет без пайки собрать электронику для двух осевых, трех осевых, четырех осевых ЧПУ станков, а также для самостоятельной сборки 3D принтеров. При реализации ЧПУ станков данные шилды используются достаточно часто благодаря своей низкой цене и простоте сборки. Более подробно CNC shield v3 будем рассматривать в следующих статьях.

Вывод можно сделать следующий. Драйвер DRV8825 обладает рядом преимуществ перед драйвером A4988. А также, при использовании драйвера шагового двигателя DRV8825, меньше шума от шаговых двигателей. Это актуально при сборке лазерного гравера, 3D принтера. Когда при работе главный источник шума — это механика и гул шаговых двигателей.

Понравился статья Драйвер шагового двигателя DRV8825? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу , в группу на .

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Скачивая материал, я соглашаюсь с
Правилами скачивания и использования материалов.

drv8825-datasheet.pdf 743 Kb 329 Скачать

Как подключить моторчик к Arduino

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • мотор постоянного тока (Motor DC);
  • транзистор полевой/биполярный;
  • драйвер двигателей L298N;
  • провода «папа-папа», «папа-мама».

Перед выбором способа управления двигателем от Arduino Uno r3, уточните на какое напряжение рассчитан ваш моторчик. Если питание требуется более 5 Вольт, то следует использовать транзистор или драйвер. Распиновка транзисторов может отличаться от приведенного примера (следует уточнить распиновку для своего типа). Драйвер L298N позволит не только включать мотор, но и изменять направление вращения.

Скетч. Подключение мотора напрямую

Подключение мотора к Ардуино напрямую — самый простой вариант включения вентилятора на Arduino или машинки. Команда для включения двигателя не отличается, от команды при подключении светодиода к микроконтроллеру. Функция digitalWrite включает/выключает подачу напряжения на цифровой порт, к которому подключен двигатель постоянного тока. Соберите схему и загрузите программу.

Пояснения к коду:

  1. для подключения мотора без драйвера можно использовать любой порт;
  2. если двигатель не включается, то, возможно, не хватает силы тока на цифровом выходе, подключите двигатель через транзистор к порту 3,3V или 5V.

Скетч. Подключение мотора через транзистор

Подключение мотора через транзистор к Ардуино потребуется, если двигатель никак не хочет включаться от платы напрямую, то следует использовать порт 5 Вольт на микроконтроллере или внешний источник питания. Транзистор будет играть роль ключа, замыкая/размыкая электрическую цепь. Сам транзистор управляется цифровым портом. Соберите схему, как на картинке и загрузите программу.

Пояснения к коду:

  1. при необходимости можно подключить два мотора FA-130 к Ардуино;
  2. в зависимости от характеристик, двигатель подключается к 3,3 или 5 Вольтам.

Подключение мотора к Ардуино через драйвер L298N или Motor Shield L293D позволит менять направление вращения ротора. Но для использования данных модулей потребуется установить соответствующие библиотеки для Ардуино. В примере мы использовали схему подключения двигателя с помощью модуля L298N. Соберите схему, как на картинке ниже и загрузите следующий скетч с использованием.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Электрик в доме
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: