У меня Nema 17, номинал 0,8 ампер , угол шага 1,8 градуса .
Двигатель выглядит так, и из него выходит шесть проводов :
Четыре провода, которые я использовал, обозначены ниже (мой продавец дал указание использовать все, кроме черного и белого):
Моя текущая проводка:
Оба провода 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();
}
Хорошо, оказывается, проблема была и с проводкой, и маркировка двигателей действительно была неправильной. Большое спасибо Энди за то, что он потратил свое драгоценное время на помощь мне.
Как я решил проблему
Обновление: после обсуждения с одним из комментаторов ниже стало известно, что нет никакой разницы в порядке проводов, подключенных к драйверу, поэтому порядок проводов, помеченных в моем вопросе и в ответе ниже, не имеет большого значения. как установка значения на самом переменном резисторе.
Эти драйверы имеют встроенный крошечный переменный резистор, который ограничивает ток двигателя. Мне просто нужно было настроить его, чтобы все заработало. Теперь мотор работает на сверхмалых оборотах, хотя и с небольшими вибрациями (в полношаговом режиме).
После включения микрошагового режима, предоставляемого чипом, я смог значительно погасить вибрации и добиться плавной работы.
Для всех, у кого может быть этот мотор, вот несколько ссылок:
Оранжевый и коричневый провода составляют одну катушку этого двигателя, а черный — центральный отвод.
Точно так же желтый и красный составляют вторую катушку, а белый провод является центральным отводом.
Способ подключения к Polulu DRV8825 следующий:
Я надеюсь, что это поможет любому, у кого может быть такая же проблема.
Ваше здоровье.
Просто исходя из того, как провода входят в шаговый двигатель на изображении, предоставленном OP, есть реальная вероятность того, что A- и B + названы неправильно. Вот как я интерпретирую проводку к двум катушкам с центральным отводом в шаговом двигателе:
Если это так, я не удивлен, что двигатель ведет себя неправильно. Я основываю это на том факте, что оранжевый, белый и желтый кажутся сгруппированными, как если бы они были на одной из катушек, а коричневый, черный и красный — на другой катушке. Если это так, то ошибочно перепутаны метки A- и B+.
Ваш код может установить режим микрошага только в том случае, если вы подключите управляющие выходы вашего Arduino (контакты 7, 6 и 5) к соответствующим входам на плате DRV882x (входы M0, M1 и M2). Иначе зачем чипу знать, что вы хотите?
Энди ака
дизайн
Энди ака
дизайн
Энди ака
дизайн
Энди ака
дизайн
Энди ака
дизайн
пользователь66114
пользователь120707
пользователь 2943160
Крис Стрэттон
дизайн