- Управление шаговым двигателем NEMA 17 с помощью Arduino и драйвера DRV8825
- Необходимые компоненты
- Шаговый двигатель NEMA17
- Число шагов за оборот для двигателя NEMA17
- Технические характеристики двигателя Nema 17
- DRV8825 – модуль драйвера шагового двигателя Nema 17
- Различия между драйверами двигателя DRV8825 и A4988
- Схема проекта
- Ограничение тока
- Объяснение программы для Arduino
- Драйверы шаговых двигателей A4988 и DVR8825
Управление шаговым двигателем NEMA 17 с помощью Arduino и драйвера DRV8825
Шаговые двигатели – это разновидность двигателей постоянного тока, в которых перемещение ротора происходит небольшими дискретными шагами. В настоящее время шаговые двигатели находят очень широкое применение – начиная от камер наблюдения и заканчивая сложными роботами и механизмами.
Рассматриваемый в данной статье шаговый двигатель NEMA 17 имеет шаг величиной 1.8°, что означает что он совершает 200 шагов за один оборот 360°. Изменяя подаваемое на шаговый двигатель напряжение мы легко можем управлять скоростью его вращения. Шаговый двигатель может функционировать в различных режимах: полного шага, половины шага, 1/4 шага. Чтобы лучше понять материал данной статьи целесообразно посмотреть статью об управлении шаговым двигателем 28-BYJ48 с помощью Arduino и потенциометра. Однако шаговый двигатель 28-BYJ48 имеет значительно меньший крутящий момент, чем более мощные двигатели такие как, например, NEMA 14, NEMA17.
В данной статье мы рассмотрим управление шаговым двигателем NEMA 17 с помощью платы Arduino и драйвера двигателя DRV8825. Для управления вращением шагового двигателя мы будем использовать потенциометр. Также на нашем сайте вы можете посмотреть статью об управлении шаговым двигателем NEMA 17 с помощью Arduino и драйвера A4988.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Шаговый двигатель NEMA 17 (купить на AliExpress).
- DRV8825 Stepper Driver Module (модуль драйвера шагового двигателя) (купить на AliExpress).
- Конденсатор 47 мкФ (купить на AliExpress).
- Потенциометр (купить на AliExpress).
Шаговый двигатель NEMA17
Принцип действия шагового двигателя Nema17 аналогичен работе других шаговых двигателей. Более подробно о принципах работы шаговых двигателей можно прочитать в статье про подключение шагового двигателя к микроконтроллеру AVR.
Шаговый двигатель NEMA 17 имеет плиту размером 1.7 x 1.7 дюйма и он имеет больший крутящий момент по сравнению с другими аналогичными шаговыми двигателями меньшего размера, например, NEMA 14. Данный двигатель имеет 6 подводящих проводов и работает от напряжения 12 В. Он может работать и от напряжения меньшей величины, однако при этом соответствующим образом будет уменьшаться и его крутящий момент.
При каждом шаге ось двигателя NEMA17 поворачивается на угол, равный 1.8 градуса. Схема расположения подводящих проводов двигателя NEMA17 представлена на следующем рисунке.
Как вы можете видеть из представленного рисунка, шаговый двигатель NEMA17 имеет униполярное расположение 6 проводов. Эти провода подсоединены к двум раздельным обмоткам. Черный, желтый и зеленый провода подключены к первой обмотке, а красный, белый, и синий провода – к другой обмотке. В обычном режиме центральные провода обмоток (черный и белый) оставляют неподключенными.
Число шагов за оборот для двигателя NEMA17
Число шагов за полный оборот (Steps per Revolution) для каждого определенного шагового двигателя рассчитывается с помощью угла, на который поворачивается шаговый двигатель за один шаг (step angle). Для двигателя NEMA17 этот шаг равен 1.8 градуса, соответственно, получаем:
Steps per Revolution = 360/ step angle
360/1.8 = 200 Steps Per Revolution
Технические характеристики двигателя Nema 17
- рабочее напряжение: 12V DC (12 В постоянного тока);
- угол за один шаг (Step Angle): 1.8 градуса;
- 200 шагов за один полный оборот;
- число фаз: 4;
- длина двигателя: 1.54 дюйма;
- диапазон рабочих температур: от -10 до 40 °C;
- удерживающий крутящий момент: 22.2 oz-in.
Также на нашем сайте вы можете посмотреть все проекты, в которых были использованы шаговые двигатели.
DRV8825 – модуль драйвера шагового двигателя Nema 17
Модуль драйвера шагового двигателя управляет работой шагового двигателя, подавая на него различные фазы питания в необходимые моменты времени.
DRV8825 представляет собой модуль драйвера двигателя, похожий на модуль A4988. Он используется для управления биполярными (двухполюсными) шаговыми двигателями. Модуль DRV8825 имеет встроенный транслятор (преобразователь), что позволяет ему управлять и скоростью, и направлением вращения шаговых двигателей таких как NEMA 17 с использованием только двух контактов — STEP и DIR. Контакт STEP используется для управления шагами, а контакт DIR – для управления направлением вращения.
Драйвер двигателя DRV8825 может управлять работой шагового двигателя в 6 различных режимах: полного шага, половины шага, четверти шага, 1/8 шага, 1/16 шага и 1/32 шага. Вы можете изменить разрешающую способность шага используя контакты для управления микро шагами (M0, M1 и M2). Устанавливая соответствующие логические уровни на этих контактах мы можем устанавливать одно из шести разрешений шага. Таблица значений данных контактов для установки различных разрешений шага выглядит следующим образом:
Технические характеристики модуль драйвера шагового двигателя DRV8825:
- максимальное рабочее напряжение: 45 V;
- минимальное рабочее напряжение: 8.2 V;
- максимальный ток на одну фазу: 2.5 A;
- размеры печатной платы модуля: 15 mm x 20 mm.
- шесть разрешений шага: полный шаг, ½ шага, ¼ шага, 1/8 шага, 1/16 шага и 1/32 шага;
- регулируемый с помощью потенциометра выходной ток;
- режим автоматического обнаружения уменьшения тока;
- схема автоматического отключения при перегреве;
- блокировка при пониженном напряжении;
- автоматическое отключение при превышении уровня тока.
Различия между драйверами двигателя DRV8825 и A4988
Оба этих драйвера двигателя предназначены для управления шаговым двигателем Nema 17, имеют похожую распиновку и области применения, но они отличаются в количестве микрошагов, рабочем напряжении и т.д. Ниже приведены следующие ключевые отличия этих модулей драйвера двигателя:
- модуль DRV8825 поддерживает 6 режимов шага, а модуль A4988 – только 5. Большее число этих режимов означает более равномерное и тихое функционирование шагового двигателя;
- минимальная длительность шага для DRV8825 составляет 1.9 мкс, а для A4988 – 1 мкс;
- без дополнительного охлаждения DRV8825 обеспечивает немного больший ток чем A4988;
- местоположение потенциометра, регулирующего лимит тока, в обоих модулях различно;
- DRV8825 может быть использован при более высоком напряжении питания;
- на контакте спящего режима (SLEEP pin) в DRV8825 по умолчанию не установлен режим с подтягивающим резистором как это сделано в A4988;
- вместо контакта напряжения питания DRV8825 имеет выходной контакт.
Схема проекта
Схема управления шаговым двигателем NEMA 17 с помощью Arduino и драйвера DRV8825 представлена на следующем рисунке.
Как видно из представленной схемы, шаговый двигатель запитывается от напряжения 12V, а модуль DRV8825 запитывается от платы Arduino. Контакты RST и SLEEP модуля подключены к контакту 5V платы Arduino чтобы модуль драйвера был готов к работе/доступен (enabled). Потенциометр подключен к контакту A0 платы Arduino – он используется для управления направлением вращения двигателя. Если вы будете поворачивать потенциометр по часовой стрелке, то и шаговый двигатель будет вращаться по часовой стрелке, а если вы будете поворачивать потенциометр против часовой стрелки, то и шаговый двигатель будет вращаться против часовой стрелки. Конденсатор 47 мкФ используется для защиты платы от выбросов напряжения. Контакты M0, M1 и M2 модуля драйвера двигателя оставлены в свободном состоянии, что означает что драйвер двигателя будет функционировать в режиме полного шага.
Внешний вид собранной конструкции проекта показан на следующем рисунке.
Таблица соединений платы Arduino, шагового двигателя Nema 17 и модуля драйвера двигателя DRV8825 выглядит следующим образом.
Контакт DRV8825 | Соединение |
VMOT | +ve Of Battery |
GND | -ve of Battery |
RST | 5V of Arduino |
SLP | 5V of Arduino |
GND | GND of Arduino |
STP | Pin 3 of Arduino |
DIR | Pin 2 of Arduino |
B2, B1, A1, A2 | шаговый двигатель |
Соблюдайте полярность подключаемого источника питания.
Ограничение тока
Перед использованием двигателя установите с помощью мультиметра предел ограничения тока для модуля DRV8825 равный 350mA. Для этого необходимо измерить ток между двумя точками GND и потенциометром и отрегулировать его до нужного значения.
Объяснение программы для Arduino
Полный код программы и видео с демонстрацией работы схемы приведены в конце статьи, здесь же мы кратко рассмотрим основные фрагменты кода.
Первым делом скачайте библиотеку для управления шаговым двигателем по следующей ссылке и добавьте ее в Arduino IDE. После этого подключите заголовочный файл этой библиотеки в программе и укажите число шагов для шагового двигателя NEMA 17 – оно равно 200.
Драйверы шаговых двигателей A4988 и DVR8825
В статье мы разберем режимы управления вращением шаговых двигателей. Подробно рассмотрим подключение драйвера A4988.
Шаговые моторы имеют три режима управления вращением: полношаговый, полушаговый и микрошаговый.
Во время полношагового режима шаговые моторы для поворота мотора на 360 градусов делают 200 шагов, во время полушагового — 400, а во время микрошагового возможно делить шаг на 4, 8 и даже 16 частей. Техника управления микрошаговым режимом сложна, поэтому многие производители станков ЧПУ (CNC) и качественных 3D принтеров стали изготавливать специальные контроллеры для управления шаговыми двигателями, часто называемых драйверами шаговых моторов. Ещё их называют StepStick.
Функционирование специальных контроллеров управления (драйверов шаговых двигателей) происходит следующим образом: вначале напряжение питания поступает на шаговый двигатель, затем на логическую часть драйвера шаговика, после этого задается направление вращения и команда (ШАГ) по управляющим контактам на двигателе. Во время команды (ШАГ) шаговый мотор получает необходимое напряжение, которого достаточно для передвижения ротора на один микрошаг (полушаг или шаг) – это зависит от предварительных установок, заданных заранее специальными перемычками на RAMPS 1.4.
Зачастую у продаваемых контроллеров шаговых двигателей (например: RAMPS 1.4) предустановлен режим микрошага 1/16. Чтобы регулировать подаваемое на шаговый мотор напряжение питания, на котроллере RAMPS 1.4 установлен специальный переменный резистор. Он является важным элементом, поскольку шаговики могут быть под 8V, 4V, 12V и д.р.
Для платы RAMPS 1.4 выпускают два вида драйверов A4988 и DVR8825. Они отличаются током, выдаваемым на шаговый двигатель и минимальным микрошагом.
И не только. Выпускаются несколько других драйверов шаговых двигателей, которые могут быть использованы в качестве альтернативы. Например, у драйвера шагового двигателя Pololu A4988 Black Edition производительность на 20% выше. Есть также большая версия драйвера на A4988, которая имеет защиту от обратной мощности на главном входе питания, а также встроенной 5 В и 3.3 В стабилизаторы напряжения, которые устраняют необходимость в покупке отдельного питания для логики и двигателей. Платы на DRV8825 предлагают на около 50% более высокую производительность в более широком диапазоне напряжений и с несколькими дополнительными функциями, в то время как платы на DRV8834 работают с двигателями с напряжением питания от 2.5 В. Любую из этих плат можно использовать в качестве драйвера во многих приложениях.
Рассмотрим драйвер A4988.
Характеристики драйвера A4988
- Максимальный ток 2 A
- Минимальный микрошаг 1/16 шага
Величина тока регулируется подстроечным резистором на драйвере. Вращение по часовой стрелке — повышение тока. Вращение против часовой стрелки — понижение величины тока.
Установка микрошага производится перемычками установленными на RAMPS 1.4
Схема драйвера A4988
Подключение драйвера A4988
Для работы с драйвером A4988 необходимо питание логического уровня (3 — 5.5 В), подаваемое на выводы VDD и GND, а также питание двигателя (8 — 35 В) на выводы VMOT и GND. Чтобы обеспечить необходимый потребляемый ток (при пиковых до 4 А), необходимо поставить конденсаторы для гальванической развязки как можно ближе к плате.
Внимание: В плате используются керамические конденсаторы с низким эквивалентным последовательным сопротивлением, что делает её уязвимой для индуктивно-ёмкостных скачков напряжения, особенно если питающие провода длиннее нескольких сантиметров. В некоторых случаях, эти скачки могут превысить максимально допустимое значение (35 В для A4988) и повредить плату. Одним из способов защиты платы от подобных скачков является установка большого (не меньше 47 мкФ) электролитического конденсатора между выводом питания (VMOT) и землёй близко к плате.
При правильном подключении, через Pololu A4988 можно управлять четырёх-, шести- и восьми- проводными шаговыми двигателями.
Внимание: Соединение или разъединение шагового двигателя при включённом драйвере может привести к поломке двигателя.
Установка микрошага
У шаговых двигателей обычно установлена конкретная величина (например 1,8° или 200 шагов на оборот), при которой достигается полный оборот в 360°. Микрошаговый драйвер, такой как A4988 позволяет увеличить разрешение за счёт возможности управления промежуточными шагами. Это достигается путём возбуждения обмоток средней величины тока. Например, управление мотором в режиме четверти шага даст двигателю с величиной 200-шагов-за-оборот уже 800 микрошагов при использовании разных уровней тока.
Разрешение (размер шага) задаётся комбинациями переключателей на входах (MS1, MS2, и MS3). С их помощью можно выбрать пять различных шагов, в соответствии с таблицей ниже. На входы MS1 и MS3 переключателя установлены 100 кОм подтягивающие на землю резисторы, а на MS2 — 50 кОм, и если оставить их не подключёнными, двигатель будет работать в полношаговом режиме. Для правильной работы в режиме микрошага необходим слабый ток (см. ниже), который обеспечивается ограничителями по току. В противном случае, промежуточные уровни будут некорректно восприниматься, и двигатель будет пропускать микрошаги.
Обычно для домашних 3D принтеров и станков ЧПУ используются драйверы A4988 с микрошагом 1/16. Для этого все перемычки на плате RAMPS 1.4 должны быть установлены на свои гнезда.
Входы управления
Каждый импульс на входе STEP соответствует одному микрошагу двигателя, направление вращения которого зависит от сигнала на выводе DIR. Обратите внимание, что выводы STEP и DIR не подтянуты к какому-либо конкретному внутреннему напряжению, поэтому вы не должны оставлять эти выводы плавающими при создании приложений. Если вы просто хотите вращать двигатель в одном направлении, вы можете соединить DIR непосредственно с VCC или GND. Чип имеет три различных входа для управления состоянием питания: RST, SLP и EN. Обратите внимание, что вывод RST плавает; если вы его не используете, вы можете подключить его к соседнему контакту SLP на печатной плате, чтобы подать на него высокий уровень и включить плату.
Ограничение тока
Для достижения высокой скорости шага, питания двигателя, как правило, гораздо выше, чем это было бы допустимо без активного ограничения тока. Например, типичный шаговый двигатель может иметь максимальный ток 1 А с 5 Ом; сопротивлением обмотки, отсюда максимально допустимое питание двигателя равно 5 В (U=I*R). Использование же такого двигателя с питанием 12 В позволит повысить скорость шага. Однако чтобы предотвратить повреждение двигателя, необходимо ограничить ток до уровня ниже 1 А.
Драйвер A4988 поддерживает активное ограничение тока, которое можно установить подстроечным потенциометром на плате.
Один из способов установить предельный ток — подключить драйвер в полношаговый режим и измерять ток, протекающий через одну обмотку двигателя без синхронизации по входу STEP. Измеренный ток будет равен 0,7 части предельного тока (так как обе обмотки всегда ограничиваются примерно на 70% от текущей настройки предельного тока в полношаговом режиме). Учтите, что при изменении логического напряжения Vdd, на другое значение, изменит предельный ток, поскольку напряжение на выводе «ref» является функцией Vdd.
Еще один способ установить предельный ток – измерить напряжение на выводе «ref» и вычислить полученное ограничение тока (резисторы SENSE равны 0,05 Ом). Напряжение вывода доступно через металлизированное сквозное отверстие (в кружке на шёлкографии печатной платы). Ограничение тока относится к опорному напряжению следующим образом:
Current Limit = VREF × 2,5
Например: опорное напряжение равно 0,3 В, предельный ток 0,75 А. Как упоминалось выше, в режиме полного шага, ток через катушки ограничен 70% от текущего предела, поэтому, чтобы получить полный шаг тока катушки в 1 А, текущий предел должен быть 1 A / 0,7 = 1,4 А, что соответствует VREF 1,4 A / 2,5 = 0,56 В. Смотрите спецификацию A4988 для получения дополнительных сведений.
Примечание: Ток обмотки может сильно отличаться от тока источника питания, поэтому не следует измерять ток на источнике питания, чтобы установить ограничение тока. Подходящим местом для измерения тока является одна из обмоток вашего шагового двигателя.
Величину тока на драйвере шагового мотора настроить и опытным путём. Необходимо устроить прогон 3D принтера на высокой скорости по всем координатам. Оптимальным считается, когда шаговые двигатели уже не гудят и ещё не пропускают шаги.
Внимание: При регулировке тока подстроечным резистором на драйвере A4988. Вращение по часовой стрелке — повышение тока. Вращение против часовой стрелки — понижение величины тока.
Максимально допустимый ток подаваемый на обмотку, у микросхемы A4988 равен 2 A. Фактический ток, который можно подать на плату, зависит от качества охлаждения микросхемы. Плата разработана с учётом отвода тепла от микросхемы, но при токе выше 1 A на обмотку необходим теплоотвод или другое дополнительное охлаждение.
Внимание: плата драйвера может нагреться так, что можно получить ожог, задолго до того как перегреется сама микросхема. Будьте осторожны при обращении с платой и со всеми подключёнными к ней устройствами.
Обратите внимание, что ток, измеренный на источнике питания, как правило, не соответствует величине тока на обмотке. Так как напряжение, подаваемое на драйвер, может быть значительно выше напряжения на обмотке, то, соответственно, измеряемый ток на источнике питания может быть немного ниже, чем ток на обмотке (драйвер и обмотка в основном работают в качестве переключаемого источника с пошаговым понижением питания). Кроме того, если напряжение питания намного выше необходимого двигателю уровня для достижения требуемого тока, то скважность будет очень низкой, что также приводит к существенным различиям между средним и RMS током (среднеквадратичное значение переменного тока).