Замедлите скорость шагового двигателя с помощью драйвера шагового двигателя DRV 8825.

У меня Nema 17, номинал 0,8 ампер , угол шага 1,8 градуса .

Двигатель выглядит так, и из него выходит шесть проводов :

Нема 17

Четыре провода, которые я использовал, обозначены ниже (мой продавец дал указание использовать все, кроме черного и белого):

Провода

Моя текущая проводка:

Оба провода A+ и B+ подключены к A1 и B1 соответственно. Аналогично, A- и B- подключены к A2 и B2 соответственно.

Электропроводка

Я пытаюсь использовать этот двигатель с Arduino Uno и драйвером Polulu DRV 8825 . Питание, подаваемое на двигатель, составляет 12 В, 500 мА через шаговый драйвер.

Драйвер шагового двигателя питаю двумя проводами (один на шаг, другой на направление). Вся моя проводка проверена на правильность.

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

Проблема

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

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

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

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

Испробованные решения:

1) Микрошаг (не повезло)

2) Gearing (пробовал и работает, но не могу использовать для моего варианта использования)

3) Различные библиотеки шаговых двигателей (Accel, PWM и т.д.)

4) Управление переменным резистором (не повезло)

В этот момент я совершенно потерян и невежественен. Может быть, это что-то простое, что я могу упустить? Или это может быть что-то радикальное, например, необходимость замены какого-то основного компонента (например, самого двигателя или драйвера)? Любая помощь будет высоко оценена, и если потребуются какие-либо разъяснения, я буду очень рад их предоставить.

Спасибо!

Мой текущий код для справки:

#include <AccelStepper.h>

AccelStepper stepper (1, 9, 8);
int MODE0 = 7;
int MODE1 = 6;
int MODE2 = 5;

void setup()
{  
   stepper.setMaxSpeed(15000);
   stepper.setSpeed(12000);
   pinMode(MODE0, OUTPUT); 
   pinMode(MODE1, OUTPUT); 
   pinMode(MODE2, OUTPUT);


   //Motor is now running in Microstepping mode (1/16)

   digitalWrite(MODE0, LOW);
   digitalWrite(MODE1, LOW);
   digitalWrite(MODE2, HIGH);

}

void loop()
{  

   stepper.runSpeed();
}
Как вы решили, как подключить 6 проводов шагового двигателя к 4 выходам DRV8825?
Согласно документам, в которых говорится, что я могу это сделать, здесь: pololu.com/product/2133.
Хм, ты не упрощаешь. Я спросил, как вы решили, как соединить провода - я не хотел ссылку на техпаспорт, который дает ТОЛЬКО ПОЛОВИНУ истории. Докажите мне, что вы подключили его правильно.
Извините, это не было моим намерением. Я использую униполярный шаговый двигатель как биполярный шаговый двигатель. Я подключаю четыре провода к четырем выводам драйвера. Остальные два остаются бездействующими (как упоминалось в разделе часто задаваемых вопросов документов, на которые я ссылался выше). Ваше здоровье!
Детали 6 проводов из которых вы использовали 4?
Привет, Энди, я добавил фотографию, а также отредактировал свой вопрос. Спасибо!
Так что насчет деталей, чтобы мы могли проверить себя. Если я посмотрю на ваше изображение, я увижу 4 провода с именами, но как они подключаются к DRV8825? Я говорю это, потому что вижу потенциальную проблему с тем, что вы считаете A- и B+ - я думаю, что вы неправильно их понимаете.
Вау, я никогда не думал об этом. Я обновил вопрос с моей текущей схемой подключения. Ваше здоровье!
Почему бы вам не предоставить ссылку на двигатель, чтобы я мог проверить, правильно ли вы интерпретировали проводку?
Привет, Энди, я купил его в Сингапуре в местном магазине электроники, эти изображения и (расплывчатые) описания были тем, что дилер прислал мне по электронной почте. Однако, поскольку вы предложили это, я собираюсь измерить Ом между катушками, чтобы убедиться, что они правильные. Это должно быть хорошим началом, не так ли? Если бы то, что вы предложили, было ответом, и если бы это было так, я бы с радостью принял его и закрыл этот вопрос (если вы были правы) :)
Не знаете, как вы могли изменить микрошаг с помощью кода, если вы не подключали драйвер на M0M1M2 к процессору? По крайней мере, на вашей схеме его нет. Можешь подтвердить? Марек
Ваш код для микрошага правильный. Но вы не подключили командные выходы (пины 5,6,7 Ардуино) к соответствующим входам на шилде: М0, М1 и М2!!!
@BlaiseMuller: Добро пожаловать в EE.SE. Хотя эти сигналы были опущены на схеме, я ожидаю, что автор вопроса правильно их подключил и больше беспокоился о соединениях между контроллером и двигателем, а не о соединениях между Arduino и контроллером.
Я голосую за то, чтобы закрыть этот вопрос как безответно неясный, поскольку в нем упущены важные детали подключения платы драйвера. Кроме того, автор принял ответ, который на самом деле неверен - в настоящее время состояние вопроса предлагает новые ответы для исправления этих ошибок, но эти ответы не будут приветствоваться, поскольку автор сообщения, по-видимому, каким-то образом удовлетворил себя. Этот вопрос здесь никому не нужен, "это ловушка!"

Ответы (3)

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

Как я решил проблему

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

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

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

Для всех, у кого может быть этот мотор, вот несколько ссылок:

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

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

Способ подключения к Polulu DRV8825 следующий:

введите описание изображения здесь

Я надеюсь, что это поможет любому, у кого может быть такая же проблема.

Ваше здоровье.

Это проблематично в качестве ответа, поскольку вы говорите, что проблема была с проводкой, но то, что вы делаете сейчас, ничем не отличается от того, что подразумевает ваш вопрос, что вы делали раньше. Похоже, что ваша настоящая проблема заключалась в том, что то, что вы представили в вопросе, не соответствовало тому, что вы на самом деле делали.
Если вы обратите более пристальное внимание на диаграмму в вопросе и диаграмму, представленную в ответе, она иллюстрирует, что порядок проводки был другим (и, следовательно, неправильным), что было предложено в исходном принятом ответе и, следовательно, исправлено в моем ответь так же.
Нет никакого «порядка» разводки шагового двигателя. Есть только катушки, которые вы идентифицируете сейчас так же, как и с самого начала. Если вы измените полярность подключения к катушке, все, что произойдет, это то, что двигатель теперь будет вращаться в противоположном направлении для той же электрической последовательности.
@ChrisStratton Если полярность одной пары катушек не соответствует второй паре, то шаговый двигатель не будет вращаться (по крайней мере, в моем случае), а просто будет просто вибрировать, пытаясь чередоваться между вращением влево и правильно. Надеюсь, это ответит, почему порядок существует. В любом случае, порядок является атрибутом ответа, который ОТЛИЧАЕТСЯ от заданного вопроса, что делает недействительными ваши точки/предположения о самом вопросе (что нет никакой разницы в связях системы с вопросом и ответом).
Кажется, вы обвиняете то, что на самом деле не имеет значения. Если у вас есть работающая установка шагового двигателя, и вы отключите провода одной катушки и поменяете их местами, производительность двигателя не уменьшится. С шестипроводным двигателем вы не можете перевернуть «половину» одной катушки относительно другой половины — это становится возможным только с 8-проводным двигателем. Единственное, что вы можете сделать с шестипроводным двигателем, это использовать все три провода, с центральным отводом на одной клемме и обоими концами на другой, так что поле сведет на нет само себя.
@ChrisStratton Хорошо, спасибо за разъяснение. Тогда вызванная вибрация могла быть вызвана неправильным значением, установленным с помощью переменного резистора.

Просто исходя из того, как провода входят в шаговый двигатель на изображении, предоставленном OP, есть реальная вероятность того, что A- и B + названы неправильно. Вот как я интерпретирую проводку к двум катушкам с центральным отводом в шаговом двигателе:

введите описание изображения здесь

Если это так, я не удивлен, что двигатель ведет себя неправильно. Я основываю это на том факте, что оранжевый, белый и желтый кажутся сгруппированными, как если бы они были на одной из катушек, а коричневый, черный и красный — на другой катушке. Если это так, то ошибочно перепутаны метки A- и B+.

Это звучит вероятно. ОП нужно проверить мультиметром.
Идет тестирование, скоро будет обновление, ребята! Большое спасибо :D
Нет, все равно не повезло. Тест мультиметра показывает следующие результаты: [оранжево-коричневый = 8 Ом] [желто-красный = 8 Ом] [оранжево-черный, коричнево-черный = 4,6 Ом] и [желто-белый, красно-белый = 4,6 Ом]. Следовательно, белый и черный – это центральные краны. [Оранжевый, коричневый] и [красный, желтый] — обязательные провода. Но тем не менее, даже после повторной проводки поведение кажется таким же, как я описал в вопросе: если я попытаюсь снизить скорость ниже определенной, двигатель просто вибрирует. Скорость также не сильно меняется при изменении скорости в коде :(
Звучит разочаровывающе - может быть, проданный вам шаговый двигатель просто не подходит для того, что вы хотите, или, может быть, это проблема программного обеспечения? Вы подтвердили, что между желтым и черным нет связи?
Привет, Энди, я только что подтвердил - НЕТ связи между желтым и черным, оранжевым и белым. Я надеюсь, что это просто проблема с программным обеспечением, потому что в противном случае двигатель имеет отличный крутящий момент (0,55 Нм). На что еще мне следует обратить внимание теперь, когда подтверждено, что проводка починена? Любые указатели?? Спасибо!
Хотя этот ответ, возможно, был принят, очевидно, потому, что он каким-то образом направил плакат на правильный путь, стоит отметить, что на самом деле он неверен. Предлагаемая здесь теория проводки не соответствует действительности.

Ваш код может установить режим микрошага только в том случае, если вы подключите управляющие выходы вашего Arduino (контакты 7, 6 и 5) к соответствующим входам на плате DRV882x (входы M0, M1 и M2). Иначе зачем чипу знать, что вы хотите?

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