Как подключить DRV8825 к arduino?

Описание драйвера, характеристики

DRV8825
DRV8825

DRV8825 - Это драйвер шагового двигателя, с током до 2.2А и возможностью делить шаги микрошагом вплоть до 1/32. Драйвер пользуется популярностью из-за того, что рассчитан на хороший ток, хорошо делит шаги и его можно легко установить в в плату RAMPS 1.4.

Питание: от 8.2в - 45в

Микрошаг: 1/2, 1/4, 1/8, 1/16, 1/32

Ток: без радиатора до 1.5А на обмотку и 2.2А с радиатором

Защита: От перегрева, от перегрузки по току

Размеры: 20 х 15 х 10 мм

Как настроить микрошаг на DRV8825

Микрошаг, на этом драйвере, выбирается путем подачи нужных напряжений на пины M0, M1, M2. Ниже я приведу таблицу напряжений для разного деления шага. На пинах должен получаться либо высокий либо низкий уровень напряжения, в частности, можно брать напряжение пинов Arduino 5v и все будет работать как надо.

микрошаг DRV8825. Расположение перемычек
Наличие перемычек на RAMPS 1.4. Соответственно где есть перемычка там есть 5v

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

Подключение драйвера шагового двигателя к arduino

У каждого радиолюбителя возникает тот момент, когда ему необходимо подключить к своему микроконтроллеру шаговый двигатель. Конечно, скажете вы, в "Интернетах" есть куча схем, готовых библиотек и все уже разжевано давным давно. Однако, когда я решил подключить к своей arduino nano драйвер DRV8825 и полез в интернет за схемкой, то обнаружил, что схем несколько. Если быть точным я нашел их 2.

Минимальная схема подключения драйвера DRV8825
Минимальная схема подключения драйвера DRV8825
( НЕ РАБОТАЕТ почему то )Альтернативная схема подключения DRV8825
( почему то НЕ РАБОТАЕТ  ) Альтернативная схема подключения DRV8825

Посмотрев несколько статей, устройств, схем, я пришел к выводу, что вторя схема правильная (нет) и растравил плату. Собрав ее, долго думал почему на двигатель не поступает питание. Я менял драйвера как перчатки, но после 4 штук подумал, что дело не может быть в драйверах. Решил подать питание так как показано на первой схеме. И о чудо! Оно живое!

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

Возможные проблемы при подключении DRV8825 к Arduino или другому микроконтроллеру.

  1. Используется не правильная схема подключения.
  2. Не правильно настроен ток для двигателя, иногда он выкручен на минимум по умолчанию и поэтому двигатель может не работать. Далее мы это разберем.
  3. Не правильная программа (скетч).
  4. Пины которые вы используете не подходят для программы и не могут выдавать сигнал. Например на Arduino nano пины A6,A7 вообще не могут выдавать сигнал, поэтому проверяйте пины вашего контроллера на совместимость.

Подключение DRV8825 к плате RAMPS 1.4

DRV8825 на RAMPS 1.4
Как драйвера должны стоят на плате

На фото показано каким образом необходимо ставить драйвера на плате. Перемычки микрошага находятся под самими драйверами и подписаны M0, M1, M2 (иногда ms0, ms1, ms2).

Как настроить ток на шаговом двигателе.

У каждого двигателя свой ток работы. Для того, что-бы он правильно работал, необходимо правильно ограничить ток на плате драйвера. Для этого на платах есть потенциометр.

Настройка Vref drv8825
Настройка Vref drv8825

Для начала нужно рассчитать VRef, делается это очень просто.

Current Limit = Vref * 2

Vref = Current Limit / 2

Например для шагового двигателя 17HS4401: Vref = 1,7 / 2 = 0,85В

Что-бы двигатель не перегревался часто Vref снижают.

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

Отлично! Ток настроен, а драйвер правильно подключен!

Скетч для проверки драйвера шагового двигателя

#include <Stepper.h>
const int stepsPerRevolution = 200;
Stepper myStepper(stepsPerRevolution, 5, 6);            

void setup() {
  myStepper.setSpeed(60);
  Serial.begin(9600);
}

void loop() {
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);
  
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500); 
}

Кстати купить данный драйвер можно на Aliexpress:

ссылка на товар DRV8825 за примерно 100р

Так же вы можете прочитать про подключение и настройку популярного драйвера a4988 по ссылке.

4.66/5 (16)

Оцените