Проверка шагового двигателя.
Неделю мучился с принтером, лезут какие-то непонятные глюки при печати, и не мог понять, в чем причина. Вылечилось заменой одного из шаговиков на точно такой же, из той же партии.
Проверил — вал крутится свободно, без подклиниваний, шаги без нагрузки не пропускает, сопротивление обмоток в норме, неконтакта нигде нету. Какакя-то мистика. Как проверить/починить шаговик? Жалко выбрасывать из-за просто подозрения.
Популярные вопросы
Flying Bear Ghost 5 не подключается к клипперу (Mainsailos) через Raspberry Pi 4 b
Klipper reports: STARTUP
Printer is not ready
The klippy host software is attempting to connect. Please.
Плохое качество печати.
Уже на стадии печати рафта плохая адгезия пластика к столу, какие-то «сопли», в общем, все дефекты видны на фото ниже. Пластик PET-G, температура стол.
Как проверить исправность драйвера шд?
Плата задымела. Быстро выдернул драйвера, запустил и понял что чуда не произошло и плата на помойку. Но вот драйвера я выдернул и не пометил переполюсованый, теперь у меня 4 драйвера которых я не могу ни куда вставить.
Есть ли вариант их проверить?
Популярные вопросы
Неравномерность по X и Y в CoreXY — как такое может быть?
Клиент пожаловался на «усадку» напечатанной детали.
Я удивился, ведь печаталось на PETG, а несоответствие диаметра отверстия 7.
Не подскажете надо ли ставить отрезок тефлоновой трубки в термобарьер E3D V6 ?
Не подскажете надо ли ставить небольшой отрезок тефлоновой трубки сверху для термобарьер E3D V6 с директором ?
Как настроить драйверы шаговых двигателей: рассчитываем Vref
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
При замене драйверов необходимо выставлять правильное опорное напряжение, оно же Vref. Драйверы шаговых двигателей — это небольшие чипы, отвечающие за управление приводами на 3D-принтерах, лазерных граверах и других станках с ЧПУ. По сути, они контролируют подачу тока на двигатели.

A4988, TMC2208 и TMC2209 — распространенные драйверы, устанавливаемые на сменные модули или распаянные непосредственно на платах управления. Сменные модули разнятся от производителя к производителю, но, как правило, имеют схожую форму и совместимую распиновку. Отдельно отметим, что ряд управляющих плат поддерживает программное управление током, для них эта статья неприменима.
В этой статье мы разберемся шаг за шагом с расчетом важной настройки в шаговых двигателях — опорного напряжения или Vref. Инструкции затронут широко распространенные драйверы A4988, а также более продвинутые TMC2208 и TMC2209.
Что такое Vref
Vref означает «опорное напряжение» и измеряется в вольтах. На практике Vref определяет максимальный ток двигателя, точная настройка этого параметра важна для обеспечения правильного функционирования и длительной эксплуатации как драйверов, так и моторов.
У каждого шагового двигателя есть оптимальный диапазон тока. Слишком низкое значение может привести к пропуску шагов и возникновению дефектов в виде сдвига слоёв или пропусков подачи (для экструдера). С другой стороны, слишком высокое может привести к перегреву драйверов, это тоже приводит к пропуску шагов; также превышение допустимого тока может вывести из строя двигатель.
Что понадобится
Чтобы рассчитать правильное значение Vref для конкретного драйвера, первым делом необходимо выяснить значение номинального тока двигателей. Эта информация обычно предоставляется производителем, хотя для некоторых двигателей ее может быть сложно найти.
Сообщество RepRap поддерживает детализированную базу данных по наиболее распространенным двигателям NEMA 17. Здесь можно найти необходимую информацию по маркировке на корпусе мотора. В качестве примера мы будем использовать NEMA 17 42SHDC3025-24B, согласно базе данных рассчитанный на ток силой 0,9 A.

Для настройки значения Vref непосредственно на плате потребуются насколько инструментов:
• материнская плата 3D-принтера или ЧПУ-станка с источником питания;
• пластиковая или керамическая отвертка, обычно на 1,5 мм.
Драйверы A4988
A4988 — один из наиболее распространенных типов драйверов в настольном оборудовании, включая 3D-принтеры. Эти чипы разработаны компанией Allegro MicroSystems и пользуются популярностью ввиду дешевизны.
Как рассчитать Vref
Опорное напряжение рассчитывается по простой формуле:
Vref = I x 8 x Rsense
I — это номинальный ток мотора, а Rsense означает сопротивление токоизмерительного резистора. Rsense — постоянное значение, которое можно определить по маркировке на плате.

Сопротивление токоизмерительных резисторов варьируется от производителя к производителю, обычно в пределах 0,05-0.2 Ом. Найдите два резистора, как показано на иллюстрации выше. В нашем случае это резисторы R100 с сопротивлением 0,1 Ом.
Хотя мы будем использовать шаговый двигатель с номинальным током 0,9 A, выставлять максимальное значение не следует. Желательно понизить силу тока хотя бы на 10%, что в нашем случае означает примерно 0,8 А.
Vref = 0,81 х 8 х 0,1 = 0,64 В
Как настроить Vref с помощью потенциометра
Значение Vref мы рассчитали, осталось выставить его на драйвере. Платы драйверов A4988 оснащаются потенциометрами специально для этой цели.

Как это делается:
1. Установите драйвер на плату контроллера, не подключая питание. Если вы имеете дело с Ramps 1.4, не забудьте заодно подсоединить Arduino Mega.
2. Подайте питание на плату через VDD и GND, но не USB.
3. Выставите на мультиметре напряжение постоянного тока и правильную шкалу — в районе 2 В.
4. Коснитесь черным щупом GND, как показано на иллюстрации выше.
5. Красным щупом осторожно коснитесь потенциометра драйвера, чтобы измерить Vref.
Будьте аккуратны при работе с красным щупом: касание не в том месте потенциально может закоротить драйвер или контроллер.
Настройка тока драйверов осуществляется при отключенных моторах.
Теперь мы знаем текущее значение Vref и можем подогнать его под рассчитанное ранее с помощью отвертки. Это операцию может потребоваться провести несколько раз, внося изменения и проверяя результаты, пока не будет получено необходимое значение.

Если вы используете отвертку с пластиковым или керамическим кончиком, можно подкручивать потенциометр при подключенном питании без риска повреждения платы. Если же кончик металлический, лучше не рисковать и отключать питание во время настройки, а затем снова подключать питание для замера нового значения.
Направление вращения потенциометра зависит от производителя, поэтому в первой попытке ограничьтесь лишь небольшой корректировкой в ту или иную сторону и проверьте результат, чтобы понять в какую сторону крутить до необходимого значения.
Повторите операцию, пока не получите значение, максимально близкое к расчетному. Имейте в виду, что выставить абсолютно точное значение может быть трудной задачей, но чем ближе, тем лучше.
Дальше остается только проделать то же самое с остальными драйверами.
Драйверы TMC2208 и 2209
Драйверы с обозначениями TMC разработаны компанией Trinamic Motion Control. TMC2208 и TMC2209 — очень тихие варианты, поддерживающие дробление шагов до 1:256. Будучи современными драйверами они могут функционировать как самостоятельно, так и в режиме UART.
В режиме UART ток двигателя можно настроить через прошивку, а в самостоятельном режиме изменения необходимо вносить вручную. Процесс довольно схож с настройкой драйверов A4988.
Как рассчитать Vref
Процедура расчета Vref одинакова для TMC2208 и TMC2209. Формула выглядит вот так:

Irms — среднее квадратичное значение тока, а Rsense — сопротивление токоизмерительного резистора.
Значение Rsense можно выяснить по маркировке, точно так же как с A4988, только на этот раз ищите резисторы на нижней стороне платы. Чтобы рассчитать Irms просто поделите ток шагового двигателя на 1.4 (квадратный корень из двух).

Для иллюстрации процесса давайте рассчитаем Vref драйвера TMC2209 от BigTreeTech в связке с шаговым двигателем на 0,9 А. Имейте в виду, что максимальное значение тока для TMC2208 не должно превышать 1,2 A.
Rsense для этого драйвера — 0,11 Ом, так как используются резисторы R110. В нашей формуле используются миллиомы, так что берем 110 мОм. Ради безопасности силу тока вновь снижаем примерно на 10% от максимальной и получаем 0,8 А.

Дальше считаем по формуле и получаем значение Vref равное 0,8 В.
Как настроить Vref с помощью потенциометра

Ручная настройка Vref для TMC2208 и TMC2209 выполняется таким же образом, как для A4988, с той лишь разницей, что красным щупом необходимо замерять в другом месте. Где щупать — показано на иллюстрации выше, на всякий случай все же сначала проверьте документацию от производителя.

Все остальные шаги и рекомендации по настройке Vref на TMC2208 и TMC2209 точно такие же, как для A4988.
Перевод статьи Vref Calculator: How to Tune Your Stepper Driver. Оригинал размещен на сайте All3DP по этой ссылке.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Arduino.ru
как проверить, что не работает из пары шаговый мотор 28byj-48 и драйвер uln2003?
- Войдите на сайт для отправки комментариев
26 ответов [Последнее сообщение]
Втр, 05/07/2016 — 16:21
Зарегистрирован: 20.06.2016
Был в наборе шаговый двигатель с драйвером 28byj-48 и uln2003, наконец добрались руки поэксперементировать, но сразу возникла проблема — ни на один из тестовых скетчей в различных конфигурациях двигатель не реагирует, светодиодики не загараются.
Пробовал и на разные порты ардуины подключать и 3 разных библиотеки и бнез библиотеки и с отдельным питанием и с питанием от МЕГИ — никакой реакции. Микросхему вытащил-вставил, по двигателю пальцем пощелкал .
Не подскажете, как без покупки второгокомплекта проверить работоспособность?
- Войдите на сайт для отправки комментариев
Втр, 05/07/2016 — 16:31
Зарегистрирован: 20.01.2015
Для начала проверить сопротивление обмоток ШД, но он скорее всего в порядке. Потом показать как подключаете — скорее всего неправильно. Ну и неработающий скетч тоже не помешает показать.
- Войдите на сайт для отправки комментариев
Втр, 05/07/2016 — 16:36
Зарегистрирован: 20.06.2016
Подключаю к цифровым выводам 8,9,10,11 соответственно, выводы IN1, IN2, IN3, IN4
Питание, либо с выводов Ардуины либо с блока питания на макетной плате к контактам — + на драйвере. Джампер рядом с контактами замкнут. Мотор по-другому не вставить, у него разъем соединения с драйвером.
Скетч, например, такой:
// Bounce.pde // -*- mode: C++ -*- // // Make a single stepper bounce from one limit to another // // Copyright (C) 2012 Mike McCauley // $Id: Random.pde,v 1.1 2011/01/05 01:51:01 mikem Exp mikem $ #include // Define a stepper and the pins it will use #define HALFSTEP 8 #define motorPin1 8 //IN1 #define motorPin2 9 //IN2 #define motorPin3 10 //IN3 #define motorPin4 11 //IN4 AccelStepper stepper(HALFSTEP, motorPin1, motorPin2, motorPin3, motorPin4); void setup() < // Change these to suit your stepper if you want stepper.setMaxSpeed(1000); stepper.setAcceleration(100); stepper.setSpeed (200); stepper.moveTo(5000); >void loop() < // If at the end of travel go to the other end if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition()); stepper.run(); >
- Войдите на сайт для отправки комментариев
Втр, 05/07/2016 — 16:39
Зарегистрирован: 20.06.2016
Пробовал вот такой скетч:
const int motorPin1 =8; const int motorPin2 =9; const int motorPin3 =10; const int motorPin4 =11; void setup() < // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); >void loop() < // HALF STEP int motorDelay=5; digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay(motorDelay); digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, HIGH); delay(motorDelay); digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(motorDelay); digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(motorDelay); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(motorDelay); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, HIGH); delay(motorDelay); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay(motorDelay); digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay(motorDelay); >
/* ULNStepper Library Library to use with controller ULN2003 for stepper motors. Created by A. Carpini, 24 April 2015. Contact: [email protected] — Demo Sketch — */ #include // Connect a ULN2003 controller to digital pin 8,9,10 and 11 of Arduino // Connect to ULN2003 controller board a motor step with 200 steps per // revolution (1.8 degree) ULNStepper motor(200, 8, 9, 10, 11); void setup() < // set up Serial library at 9600 bps Serial.begin(9600); Serial.println("Stepper test!"); // set motor speed to 10 rpm motor.setSpeed(10); >void loop()
Никакой реакции. Плюс еще много разныхз с библиотеками и без. Видимо, что-то не в порядке с железом, хотя, не хотелось бы.
- Войдите на сайт для отправки комментариев
Втр, 05/07/2016 — 20:20
Зарегистрирован: 23.02.2015
Звук есть какой-нибудь. Если есть, то Скорее всего надо номера пинов переставить в скетче без библиотеки. Пользуюсь подобным.
- Войдите на сайт для отправки комментариев
Втр, 05/07/2016 — 20:27
Зарегистрирован: 20.06.2016
нет звуков никаких и светодиоды не горят
- Войдите на сайт для отправки комментариев
Втр, 05/07/2016 — 21:04
Зарегистрирован: 23.02.2015
Можно подавать сигналы на пины и тестером смотреть как проходят. Там схема простейшая. На рин подаешь «хай» и соответсвующая ножка улнки должна конец обмотки замкнуть на землю. Если нет звуков от двигателя , нет контакта на землю.
- Войдите на сайт для отправки комментариев
Пнд, 13/03/2017 — 11:50
Зарегистрирован: 13.03.2017
Чтобы новую тему не создавать напишу здесь.
Та же пробелма что и у автора — не робит. Мультиметром меряю напряжение — на пинах проходит 5 V в соответствии со скетчем. На питании выдает постоянно 5V. На контактах штекера (который с ключом) — 0,6 V постоянно. Диоды не горят. Что еще можно проверить?
- Войдите на сайт для отправки комментариев
Пнд, 13/03/2017 — 12:07
Зарегистрирован: 02.09.2016
масса общая?, с unl2003 насколько помлю не + появляется а -, на мотор на центральном проводе должен быть + на остальные от микрухи — ,
- Войдите на сайт для отправки комментариев
Пнд, 13/03/2017 — 13:13
Зарегистрирован: 13.03.2017
Эм..а для чайников? 🙂
Куда ткнуть красным щупом, а куда черным?
- Войдите на сайт для отправки комментариев
Ср, 31/05/2017 — 00:49
Зарегистрирован: 31.05.2017
Та же проблема! Долго искал подобную тему, т.е. людей у которых та же ситуация. Во всех форумах, примерах и описаниях как подключать NEMA И ARDUINO, используется красный L298N ( чёрт подери, словно все сговорились. ). В общем в моей ситуации используется «Robotdyn driver motor L298N». Подключил в точности как описано в текстах на примере ( мучаюсь 3-е сутки ), как и автор этой дискусии опробовал разные методы: подключал с разных источников питания, менял провода местами и т.д. п. т. Единственное чего я добился, это ВНИМАНИЕ! : ВКЛ. «logic on» и задействовал 4-е пина (IN 1 E1 E2 IN3 ), воткнул в эти D8 D9 D10 D11 И ЗАГРУЗИЛ СКЕТЧ «Stepper». в итоге мотор «замурчал» тихо тихо и загорелись лампочки движения на драйвере. Короче «ЖОПА»
- Войдите на сайт для отправки комментариев