Андрей Смирнов
Время чтения: ~8 мин.
Просмотров: 70

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

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

     Для настройки тока нам понадобится: — контроллеры с установленными драйверами; — драйвера А4988 или DRV8825; — мультиметр; — отвертка.

     Для начала необходимо собрать и подключить всю систему в полношаговом режиме. После сборки «бутерброда» из контроллера Ардуино, ЧПУ шилда и драйверов шаговых двигателей необходимо подключить шаговые двигатели. В описании к выбранным моторам надо узнать значение максимального тока Imax (для примера у шагового двигателя 17HS8401 это значение 1,8А)      Затем надо рассчитать значение опорного напряжения Vref на переменном резисторе для каждого типа драйверов, у нас их два: А4988 или DRV8825.     Формула опорного напряжения Vref для драйверов отличается.

     Расчет для драйвера типа А4988. Для A4988 формула расчета зависит от номинала резисторов, которые распаяны на плате драйвера. Если присмотреться, то можно увидеть надписи R050 или R100.Driver-A4988.jpg

Vref = Imax * 8 * (RS)

Для двигателя из нашего примера 17HS8401

Vref = 1,8 * 8 * 0,100 = 1,44 В.

Из-за того, что рабочий ток двигателя обычно рекомендуется ограничивать в 70% от максимального тока, для уменьшения перегрева двигателя, полученное значение необходимо умножить на 0,7.

Vref= 1,44*0,7 = 1,01 В.

     Расчет для драйвера типа DRV8825.

Формула опорного напряжение для данного типа драйвера:

Vref = Imax/2

При рекомендованной работе на 70% от максимального тока двигателя, подставив значения для нашего примера, получим следующие значения:

Vref = 0.7*1,8 / 2 = 0.63V

     Настройка тока драйвера на контроллере.

Для настройки необходимо подключить сборку плат к компьютеру, 

Driver-A4988-current-assy.jpg

Включить на мультиметре измерение постоянного напряжения напротив положения «20».

 Multimetr-current.jpg

Для измерения напряжения необходимо минусовой щуп приложить к минусу на CNC Sheild, а положительный щуп замкнуть с подстроечным резистором, который по совместительству является «+» в данной схеме.

CNC-sheild-current-tuning.jpg

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

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

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

drv8825.jpg
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 и все будет работать как надо.

mikroshag-drv8825.jpg
Наличие перемычек на RAMPS 1.4. Соответственно где есть перемычка там есть 5v

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

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

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

minimal-wiring-diagram-for-connecting-a-microcontroller-to-a-drv8825.jpg
Минимальная схема подключения драйвера DRV8825
alternative-minimal-wiring-diagram-for-connecting-a-microcontroller-to-a-drv8825.jpg
( почему то НЕ РАБОТАЕТ  ) Альтернативная схема подключения DRV8825

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

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

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

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

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

drv8825-na-ramps-1.4-1.jpg
Как драйвера должны стоят на плате

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

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

images.jpg
Настройка Vref drv8825

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

Current Limit = Vref * 2

Vref = Current Limit / 2

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

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

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

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

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

#include  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 за примерно 60р

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

Я сам очень долго не уделял этому вопросу должного внимания. Во первых не хотел разбираться. Во вторых считал, что настройка в рабочих условиях (во время тестовой печати на завышенных режимах) самая правильная. Это конечно верно, но настал момент, когда в моей коллекции появился третий вид драйверов TMC2100 и чтобы их адекватно сравнить с драйверами A4988 нужно их одинаково и правильно настроить по току используемого шагового двигателя.

Что нам даёт правильная настройка тока для шаговых двигателей?

  1. Снижение шума от работы принтера при завышенном токе
  2. Избавление от сдвига слоёв (пропуска шагов) при низком токе
  3. Снижение нагрева шагового двигателя или его драйвера

Какие обычно используют шаговые двигатели?

17HS4401.jpg

17HS4401 ток 1,7A – обычные

17HS8401 ток 1,8А – более мощные

17HS4402 ток 1,3A – по некоторым сведениям менее шумные, чем 17HS4401

Драйверы шаговых двигателей

A4988 на ток до 2А – очень широко распространён и недорогой

A4988_2.jpg

DRV8825 на ток до 2,2А – интересен большей мощностью и микрошагом 1/32

DRV8825_2.jpg

TMC2100 на ток RMS 1,2А  (с пиками до 2,5А) – интересен самостоятельным дроблением микрошага 1/16 до 1/255, что в итоге снижает шум работы шагового двигателя не загружая при этом дополнительными расчётами Ардуину.

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

TMC2100.jpg

Настройка тока на драйверах ШД

2016-01-11_220519.jpg

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

Vref – пин замера напряжения для установки тока по формуле.

Current Limit – ток шагового двигателя.

A4988

Формула Vref для A4988 изменяется от номинала токочувствительных резисторов. Это два чёрных прямоугольника на плате драйвера. Обычно подписаны R050 или R100.

Vref = Current Limit * 8 * (RS)

Например для 17HS4401: Vref = 1,7 / 2,5 = 0,68В

DRV8825

Current Limit = Vref * 2

Vref = Current Limit / 2

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

TMC2100

Irms = (Vref * 1,77A) / 2,5V

Vref = (Irms * 2,5V) / 1,77A

Current Limit = 1.41 * Irms

Например для 17HS4401: Vref = (Current Limit * 0,707 * 2,5В) / 1,77А = (1,7 * 0,707 * 2,5) / 1,77 = 1,697В

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

2016-01-11_211849.jpg

В некоторых случаях для снижения нагрева драйвера приходится снижать Vref, а значит для защиты от пропуска шагов нужно уменьшать ускорения в прошивке. Соответственно при снижении ускорений общая скорость печать 3D принтера снижается. Разумный минимум для ускорений 500 мм/с^2. Отсюда вывод: уровень шума можно снизить почти на любом 3D принтере, снижая ускорения и Vref, но при этом Vref придётся подбирать опытным путём.

Сравнение громкости работы двигателя на разных Vref

  • Шаговый двигатель Wantai 42BYGHW609 ток 1,7А
  • Драйвер A4988
  • 3D принтер Mendel90

Тестовый G-код примерно такой (правил в процессе и после)

Используем аудиоредактор Audacity. Примитивный микрофон подключен к встроенной аудиокарте ПК. Микрофон прижат к корпусу ШД и сверху обмотан поролоном. Надеюсь этого хватит для регистрации уровня шума.

Vref устанавливаю на 0,58В, запускаю программу из Pronterfaceи записываю звук с микрофона. Затем повторяю запись на Vref  = 0,78В. Картинки уровней громкости складываю в Фотошопе для наглядности сравнения. Вот что получилось:

Красным Vref = 0,58В

Синим Vref = 0,78В

A4988_058078.png

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

Пожалуйста не путайте ток с напряжением Vref, когда пишете об этом

Подробнее про эти драйверы можно почитать на сайтах производителей:

https://www.pololu.com/category/120/stepper-motor-drivers

https://github.com/watterott/SilentStepStick/blob/master/docu/FAQ.md

Для более глубокого понимания формул смотрите отдельную тему на форуме по этому вопросу.

Ссылка на обсуждение на форуме методов борьбы с шумом 3D принтера.

Метки: A4988, DRV8825, TMC2100, драйверы&nbsp&nbsp 2016-01-12&nbsp&nbsp &nbsp&nbsp Раздел: Настройка, Электроника&nbsp&nbsp Автор: AKDZG Просмотров: 237 999&nbsp&nbsp 45 комментариев

Kubocore. BOM и калькуляция &nbsp&nbsp&nbsp&nbsp&nbspТест на шумность шаговых двигателей и драйверов для 3D принтераИспользуемые источники:

  • http://cnc-design.ru/nastroika-toka-draiver-shagovogo-dvigatelya.html
  • https://you-hands.ru/2018/10/07/kak-podklyuchit-drv8825-k-arduino/
  • https://3deshnik.ru/blogs/akdzg/pravilnaya-nastrojka-toka-dlya-shagovyx-dvigatelej

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации