Управление шаговым двигателем NEMA 17 с помощью Arduino и драйвера DRV8825

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

Внешний вид проекта управления шаговым двигателем 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.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Шаговый двигатель NEMA 17 (купить на AliExpress).
  3. DRV8825 Stepper Driver Module (модуль драйвера шагового двигателя) (купить на AliExpress).
  4. Конденсатор 47 мкФ (купить на AliExpress).
  5. Потенциометр (купить на AliExpress).

Шаговый двигатель NEMA17

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

Внешний вид шагового двигателя Nema17

Шаговый двигатель NEMA 17 имеет плиту размером 1.7 x 1.7 дюйма и он имеет больший крутящий момент по сравнению с другими аналогичными шаговыми двигателями меньшего размера, например, NEMA 14. Данный двигатель имеет 6 подводящих проводов и работает от напряжения 12 В. Он может работать и от напряжения меньшей величины, однако при этом соответствующим образом будет уменьшаться и его крутящий момент.

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

Схема расположения подводящих проводов двигателя 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

Драйвер двигателя 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 представлена на следующем рисунке.

Схема управления шаговым двигателем 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 и потенциометром и отрегулировать его до нужного значения.

Схема для установки предела ограничения тока для модуля DRV8825

Объяснение программы для Arduino

Полный код программы и видео с демонстрацией работы схемы приведены в конце статьи, здесь же мы кратко рассмотрим основные фрагменты кода.

Первым делом скачайте библиотеку для управления шаговым двигателем по следующей ссылке и добавьте ее в Arduino IDE. После этого подключите заголовочный файл этой библиотеки в программе и укажите число шагов для шагового двигателя NEMA 17 – оно равно 200.

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

Далее установим скорость для шагового двигателя с помощью функции stepper.setSpeed. Максимальная скорость двигателя NEMA 17 составляет 4688 RPM (число оборотов в минуту), но если его крутить со скоростью более 1000 RPM, то у него значительно падает крутящий момент.

После этого, в основной функции loop мы будем считывать значения с потенциометра, подключенного к контакту A0. В этой функции мы будем использовать две переменные – potVal и Pval. Если текущее значение (potVal) больше его предыдущего значения (Pval), то мы будем вращать шаговый двигатель на 10 шагов по часовой стрелке, а если меньше - то мы будем вращать шаговый двигатель на 10 шагов против часовой стрелки.

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

Исходный код программы (скетча)

Видео, демонстрирующее работу схемы

(Проголосуй первым!)
Загрузка...
2 759 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *