Drv8825 как регулировать скорость двигателя

В предыдущей статье уже рассмотрели самый распространённый драйвер шагового двигателя A4988.

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

Не смотря на то, что драйвер шагового двигателя DRV8825 полностью взаимозаменяем с драйвером A4988, драйвер DRV8825 имеет ряд преимуществ: рабочее напряжение до 45В, ток до 2,5 А и деление микрошага до 1/32.

Drv8825 как регулировать скорость двигателя

Технические характеристики драйвер DRV8825

    • Напряжение питания: от 8.2 до 45 В.
    • Установка шага: 1; 1/2; 1/4; 1/8; 1/16; 1/32.
    • Напряжение логики: 3,3 В.
    • Защита от перегрева: Есть.
    • Максимальный ток на фазу: 1,5 А без радиатора, 2,5 А с радиатором.
    • Габариты модуля: 20 мм х 15 мм х 10 мм.
    • Габариты радиатора: 9 мм х 5 мм х 9 мм.

Drv8825 как регулировать скорость двигателя

Общая информация о драйвере DRV8825

Основная микросхема модуля — это драйвер от TI (Texas Instruments Inc.) DRV8825, который способен управлять одним биполярным шаговым двигателем. Данный драйвер полностью взаимозаменяемый с драйвером A4988.

Микросхема DRV8825 может работать с выходным напряжением до 45 В. и током до 1,5 на катушку без радиатора и до 2,5 А. с радиатором (дополнительным охлаждением).

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

Драйвер позволяет использовать шесть вариантов шага: 1; 1/2; 1/4; 1/8; 1/16; 1/32.

Распиновка драйвера DRV8825

Drv8825 как регулировать скорость двигателя

На драйвере DRV8825 расположено 16 контактов:

  • EN — включение и выключение модуля (0 — включен, 5 В. — выключен).
  • M0, M1 и M2— выбор режима микрошаг (смотрите таблицу ниже).
  • RST — сброс драйвера.
  • SLP — вывод включения спящего режима, если подтянуть его к низкому состоянию драйвер перейдет в спящий режим.
  • STEP — управляющий вывод, при каждом положительном импульсе, двигатель делает шаг (в зависимости от настройки микрошага), чем быстрее импульсы, тем быстрее вращается двигатель.
  • DIR — управляющий вывод, если подать +5 В. двигатель будет вращаться по часовой стрелке, а если подать 0 В. против часовой стрелки.
  • VMOT&GND MOT — питание шагового двигателя от 8,2 до 45 В. (обязательное наличие конденсатора на 100 мкФ.).
  • B2, B1, A1, и A2 — подключение обмоток двигателя.
  • FAULT — Выход включения защиты, если состояние «0», значит, полевые транзисторы H-моста отключены в результате защиты от перегрузки по току, или был перегрев.
  • GND LOGIC — заземление микроконтроллера.

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

Drv8825 как регулировать скорость двигателя

Модуль может питаться от источника постоянного тока до 45 В. и до 2,5 Ампер при 24 В. А при 45 В. номинального тока до 2,2 А. В общем случае напряжение может быть между 8 и 45 Вольт постоянного тока.

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

Выводы для подключения шагового двигателя

Drv8825 как регулировать скорость двигателя

Выходные контакты: 1B, 1A, 2A ,2B.

Выводы управления

Drv8825 как регулировать скорость двигателя

STEP — управляет микрошагом мотора. Каждый высокий импульс, отправляемый на этот вывод, приводит двигатель в действие на количество микрошагов, заданное выводами Microstep Selection (MS1, MS2 и MS3). Чем быстрее импульсы, тем быстрее будет вращаться двигатель.

DIR — управляет направлением вращения двигателя. Если на него подать высокий уровень, то двигатель будет вращаться по часовой стрелке, а если низкий — против часовой стрелки.

Если вы просто хотите, чтобы двигатель вращался только в одном направлении, то вы можете соединить вывод DIR непосредственно с VCC или GND соответственно.

Настройка микрошага драйвера DRV8825

Drv8825 как регулировать скорость двигателя

Драйвер DRV8825 может работать в микрошаговом режиме, то есть может подавать питание на катушки с промежуточным уровнем. Например, если взять двигатель NEMA17 с шагом 1.8 градусов или 200 шагов на оборот, в режиме 1/4, двигатель будет выдавать 800 шагов за оборот.

Дня настройки микрошага на драйвере DRV предусмотрены три выхода, а именно M0, M1 и M2. Установив соответствующие логические уровни для этих выводов, можно выбрать режим микрошага.

Drv8825 как регулировать скорость двигателя

Выводы M0, M1 и M2 в микросхеме DRV8825 подтянуты резистором к земле, поэтому, если не подключать их, двигатель будет работать в режиме полного шага.

Система охлаждения DRV8825

Drv8825 как регулировать скорость двигателя

При интенсивной работе микросхемы драйвер DRV8825 начинает сильно греться и если температура превысит предельное значение, то он может сгореть. По документации DRV8825 может работать с током до 2,5 А. на катушку, но на практике микросхема не греется, если ток не превышает 1,2 А. на катушку. Поэтому если ток выше 1,2 А. необходимо устанавливать радиатор охлаждения, который идет в комплекте.

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

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

Drv8825 как регулировать скорость двигателя

  • 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); // Установка вращения против часовой стрелки

Читайте также:  Lada largus какой двигатель установлен

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

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

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

  1. В функции void setup() указываем управляющие контакты как выход.
  2. В основной функции void loop(), вращаем двигатель по часовой стрелке, затем против, с разной скоростью.
  3. Подробнее о подключении шаговых двигателей к Ardiono смотрите на сайте Ардуино технологии.

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

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

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

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

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

Вывод можно сделать следующий. Драйвер DRV8825 обладает рядом преимуществ перед драйвером A4988.

А также, при использовании драйвера шагового двигателя DRV8825, меньше шума от шаговых двигателей. Это актуально при сборке лазерного гравера, 3D принтера.

Когда при работе главный источник шума — это механика и гул шаговых двигателей.

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

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

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

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.

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

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

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

Drv8825 как регулировать скорость двигателя

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

Данный двигатель имеет 6 подводящих проводов и работает от напряжения 12 В.

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

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

Drv8825 как регулировать скорость двигателя

Как вы можете видеть из представленного рисунка, шаговый двигатель 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 как регулировать скорость двигателя

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

Drv8825 как регулировать скорость двигателя

Как видно из представленной схемы, шаговый двигатель запитывается от напряжения 12V, а модуль DRV8825 запитывается от платы Arduino. Контакты RST и SLEEP модуля подключены к контакту 5V платы Arduino чтобы модуль драйвера был готов к работе/доступен (enabled).

Потенциометр подключен к контакту A0 платы Arduino – он используется для управления направлением вращения двигателя.

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

Конденсатор 47 мкФ используется для защиты платы от выбросов напряжения. Контакты M0, M1 и M2 модуля драйвера двигателя оставлены в свободном состоянии, что означает что драйвер двигателя будет функционировать в режиме полного шага.

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Drv8825 как регулировать скорость двигателя

Таблица соединений платы 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.

#include
#define STEPS 200

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

Stepper stepper(STEPS, 2, 3);
#define motorInterfaceType 1

Stepper stepper(STEPS, 2, 3);#define motorInterfaceType 1

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

void setup() {
stepper.setSpeed(800);

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

Если текущее значение (potVal) больше его предыдущего значения (Pval), то мы будем вращать шаговый двигатель на 10 шагов по часовой стрелке, а если меньше — то мы будем вращать шаговый двигатель на 10 шагов против часовой стрелки.

potVal = map(analogRead(A0),0,1024,0,500);
if (potVal>Pval)
stepper.step(10);
if (potValPval)
stepper.step(10);
if (potVal

Регулятор скорости вращения для биполярного шагового двигателя на базе Arduino Nano

По многочисленным просьбам подписчиков на моем канале, пришлось сделать димер на базе платы Arduino Nano, и драйвера DRV8825

Drv8825 как регулировать скорость двигателя

Для проекта использую:

Плата Arduino Nano, драйвер для шагового двигателя DRV8825, биполярный шаговый двигатель от компании MITSUMI, потенциометр 3,3 килоома (подойдет любой маломощный от 3 до 10 килоома), 2 кнопки, макетная плата, и соединительные провода.

Drv8825 как регулировать скорость двигателя

Скетч для первого варианта (с кнопками)

const int startButton = 8; const int reversButton = 9; const int stepPin = 11; const int enablePin = 12; const int dirPin = 13; int i = 0, j = 0, k = 0, l = 0, stepState = 0; unsigned long previousMillis = 0; long interval = 0; long previousMillis2 = 0; long previousMillis3 = 0; void setup() {  pinMode( startButton, INPUT_PULLUP);  pinMode( reversButton, INPUT_PULLUP);  pinMode( stepPin, OUTPUT); digitalWrite( stepPin, LOW);  pinMode( enablePin, OUTPUT); digitalWrite( enablePin, LOW);  pinMode( dirPin, OUTPUT); digitalWrite( dirPin, LOW); } void loop() {  int sensorReading = analogRead(A3);  interval = map(sensorReading, 0, 1023, 32767, 1000);  unsigned long currentMillis = micros();  if (currentMillis — previousMillis >= interval) {    previousMillis = currentMillis;    if (stepState == LOW) {      stepState = HIGH;    } else {      stepState = LOW;    }    digitalWrite( stepPin, stepState);  } else {    digitalWrite( stepPin, LOW);  }  if (digitalRead( startButton) == LOW) {    if (millis() — previousMillis2 > 100)    { previousMillis2 = millis(); i++; if (i == 1) {        j++;      } if (j > 1) {        j = 0;      }    }  } else {    i = 0;  }  if (j == 0) {    digitalWrite( enablePin, HIGH);  } else {    digitalWrite( enablePin, LOW);  }  if (digitalRead( reversButton) == LOW) {    if (millis() — previousMillis3 > 100)    { previousMillis3 = millis(); l++; if (l == 1) {        k++;      } if (k > 1) {        k = 0;      }    }  } else {    l = 0;  }  if (k == 0) {    digitalWrite( dirPin, HIGH);  } else {    digitalWrite( dirPin, LOW);  } }

Схема для первого варианта

Drv8825 как регулировать скорость двигателя

Скетч для второго варианта

const int stepPin = 11; const int enablePin = 12; const int dirPin = 13; int stepState = 0; unsigned long previousMillis = 0; long interval = 0; void setup() {  pinMode( stepPin, OUTPUT); digitalWrite( stepPin, LOW);  pinMode( enablePin, OUTPUT); digitalWrite( enablePin, LOW);  pinMode( dirPin, OUTPUT); digitalWrite( dirPin, LOW); } void loop() {  int sensorReading = analogRead(A3);  interval = map(sensorReading, 0, 1023, 32767, 1000);  unsigned long currentMillis = micros();  if (currentMillis — previousMillis >= interval) {    previousMillis = currentMillis;    if (stepState == LOW) {      stepState = HIGH;    } else {      stepState = LOW;    }    digitalWrite( stepPin, stepState);  } else {    digitalWrite( stepPin, LOW);  } }

Доработанный скетч второго варианта

int max_Speed = 800; /* max_Speed это задержка для максимальной скорости! Если ваш шаговый двигатель пропускает шаги при максимальной скорости, то увеличьте эту задержку, чтобы снизить частоту! */ int min_Speed = 32767; /* min_Speed это задержка для минимальной скорости! Чем меньше это значение тем быстрее вращение на минимальной скорости */ const int stepPin = 11; const int enablePin = 12; const int dirPin = 13; int stepState = 0; unsigned long previousMillis = 0; long interval = 0; float x, x2, x3; void setup() {  pinMode( stepPin, OUTPUT); digitalWrite( stepPin, LOW);  pinMode( enablePin, OUTPUT); digitalWrite( enablePin, LOW);  pinMode( dirPin, OUTPUT); digitalWrite( dirPin, LOW); } void loop() {  int sensorReading = analogRead(A3);  x = 1023 * sin(PI * sensorReading * 0.00048);  x2 = 1023 * sin(PI * x * 0.00046);  x3 = 1023 * sin(PI * x2 * 0.00045);  interval = map(x3, 0, 1023, min_Speed, max_Speed);  unsigned long currentMillis = micros();  if (currentMillis — previousMillis >= interval) {    previousMillis = currentMillis;    if (stepState == LOW) {      stepState = HIGH;    } else {      stepState = LOW;    }    digitalWrite( stepPin, stepState);  } else {    digitalWrite( stepPin, LOW);  } }

Читайте также:  Двигатель honda gx25 характеристики

Схема второго варианта

Drv8825 как регулировать скорость двигателя

Drv8825 как регулировать скорость двигателя

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

Шаговый двигатель – это тип двигателя постоянного тока, который работает дискретно и используется повсеместно, от камеры наблюдения до сложных роботов и машин. Шаговый двигатель NEMA 17 имеет угол шага 1,8°, что означает, что для поворота на 360 ° потребуется 200 шагов. Изменяя скорость подачи управляющего сигнала, мы можем легко контролировать скорость двигателя.

Шаговый двигатель может работать в различных пошаговых режимах, таких как полный шаг, полшага, ¼ шаг путем применения соответствующих логических уровней к контактам шагового модуля. В нашем предыдущем проекте мы контролировали шаговый двигатель 28-BYJ48 с помощью Arduino.

28-BYJ48 имеет относительно более низкий крутящий момент, чем другие шаговые двигатели, такие как NEMA 14, NEMA17.

Drv8825 как регулировать скорость двигателя

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

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

Этот модуль управления шаговым двигателем Nema 17 имеет встроенный транслятор, который означает, что он может управлять как скоростью, так и направлением биполярного шагового двигателя, такого как NEMA 17, используя только два контакта, то есть STEP и DIR.

Вывод STEP используется для управления шагами, а вывод DIR – для управления направлением вращения.

Drv8825 как регулировать скорость двигателя

Драйвер двигателя Nema 17 DRV8825 имеет максимальную выходную мощность 45 В и ± 2,2А.

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

Вы можете изменить разрешение шага, используя линии микрошага (M0, M1 и M2). Установив соответствующие логические уровни для этих контактов, мы можем установить двигатели на одно из шести шагов разрешения.

Схема подключения шагового двигателя NEMA 17, Arduino, DRV8825 и сопутствующих компонентов приведена на следующем изображении.

Drv8825 как регулировать скорость двигателя

Питание шагового двигателя осуществляется от источника питания 12 В, а модуль DRV8825 получает питание от Arduino. Контакты RST и SLEEP оба подключены к 5V от Arduino, чтобы драйвер оставался включенным. Потенциометр подключен к выводу A0 Arduino; он используется для управления направлением двигателя.

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

Выводы M0, M1 и M2 оставлены отсоединенными, это означает, что драйвер будет работать в режиме полного шага.

Drv8825 как регулировать скорость двигателя

Перед использованием двигателя измените ограничение тока модуля DRV8825 на 350 мА с помощью потенциометра ограничения тока. Вы можете измерить текущий предел с помощью мультиметра. Измерьте ток между двумя точками заземления и потенциометром и отрегулируйте его до требуемого значения.

Drv8825 как регулировать скорость двигателя

Полный код для управления Nema 17 с помощью Arduino приведен далее.

#include
#define STEPS 200
//#define dirPin 2
//#define stepPin 3
// Определение соединения шагового двигателя и тип интерфейса двигателя. Тип интерфейса двигателя должен быть установлен на 1 при использовании драйвера
Stepper stepper(STEPS, 2, 3);
#define motorInterfaceType 1
int Pval = 0;
int potVal = 0;
void setup() {
// Установим максимальную скорость в шагах в секунду
stepper.setSpeed(800);
// pinMode(stepPin, OUTPUT);
// pinMode(dirPin, OUTPUT);
}
void loop() {

potVal = map(analogRead(A0),0,1024,0,500);
if (potVal>Pval)
stepper.step(10);
if (potVal

Контроллер (драйвер) шагового двигателя DRV8825 — шпаргалка

?

trampampamparam (trampampamparam) wrote, 2015-09-05 16:16:00 trampampamparam trampampamparam 2015-09-05 16:16:00 Category: Вот тут — описание изготовления контроллера ШД на PICе, довольно подробно описано, что такое биполярные ШД и униполярные ШД, сколько и каких выходов у ШД, принципы работы.

Описание, схема подключения

DRV8825 — step/dir контроллер биполярного ШД, с выходным током до 2.3А (с радиатором) и до 1.5А — без радиатора. Поддерживает режимы микрошага до 1/32.

Документация на микросхему в формате PDF (на pololu.com) — DRV8825 Stepper Motor Controller IC

Описание платы и её подключение — freedelivery.in.ua, kosmodrom.com.ua, masterkit.ru. На мастерките описание какое-то странное — !FAULT (вроде же выход) зачем-то подключен на +3-5В, SLP и RST замкнуты, но на них ничего не подано.

На polulu.com картинка тоже не похожа на мастеркитовскую.

Drv8825 как регулировать скорость двигателяХотя для драйвера на A4988 на polulu.com картинка похожа на мастеркитовскую, только вместо !FAULT присутствует VDD. Drv8825 как регулировать скорость двигателяСтранно, по идее, эти модули совместимы по контактам. Хотя, на мастерките на «материнской» плате какие-то перемычки видны, видимо они и отвечают за настройку мат. платы под плату драйвера. Похоже, на мастерките спутали схемы и не то выложили.Нужен ли конденсатор на силовой шине, если у меня в БП стоит на 6800uF? Попробую без него. Или не стоит?

Справка по типам драйверов

L298 — это просто ключи по схеме H-моста.A3957 — это тоже Н-мосты аналогичные верхним.A4988 — это Н-мосты, но уже слушающие по двум провода Направление Шагать DIR STEP.

DRV8825 — аналогично A4988, но токи держит побольше, и у китайских вариантов A4988 вроде неправильно подобраны номиналы, из-за чего диапазон токов можно настраивать не полностью.

У китайских плат на DRV8825 такой проблемы вроде нет.

Настройка выходного тока

Выходной ток задается резистором R3 и определяется по формуле: I = 2xU. Напряжение U измеряется на переходном отверстии рядом с микросхемой.Drv8825 как регулировать скорость двигателя

Настройка микрошага

Входы M0, M1, M2 — внутрисхемно подтянуты к земле (pulldown), и по умолчанию сигнал можно не подавать. При этом схема будет работать в полношаговом режиме.

M2
M1
M0
STEP MODE
Full step (2-phase excitation) with 71% current
1 1/2 step (1-2 phase excitation)
1 1/4 step (W1-2 phase excitation)
1 1 8 microsteps/step
1 16 microsteps/step
1 1 32 microsteps/step
1 1 32 microsteps/step
1 1 1 32 microsteps/step

PS Хорошее описание драйверов ШД — http://reprap.org/wiki/A4988_vs_DRV8825_Chinese_Stepper_Driver_Boards/ru

Ссылка на основную публикацию
Adblock
detector