Как медленно изменить направление шагового двигателя с помощью AccelStepper?
stepper-motor
speed
Я знаю, что направление можно изменить с помощью
.setSpeed(speed);
... //проверить ввод
.setSpeed(-speed);
Мне нужно медленно замедляться и ускоряться назад, поэтому я должен использовать
.setAcceleration(200);
...
.setMaxSpeed(speed);
... //проверить ввод
.setMaxSpeed(-speed);
но в документации сказано, что аргумент .setMaxSpeed должен быть > 0.
Итак, как правильно изменить направление с помощью замедления? Возможно, мне придется использовать .moveTo с очень большими значениями
@user1329019, 👍3
Обсуждение1 ответ
Лучший ответ:
▲ 2
Я протестировал его на реальном двигателе, и он работает так, как я хочу, с функцией .moveTo . Скорость медленно менялась с +maxSpeed до -maxSpeed в зависимости от ускорения
#define maxSpeed 1000
#define Acceleration 500
............
void setup(){
stepper.setMaxSpeed(maxSpeed);
stepper.setAcceleration(Acceleration);
}
void loop() {
............
if(bDirection!=bDirection_last)
{
stepper.moveTo(bDirection?6000000:-6000000);
...........
}
stepper.run();
}
,
@user1329019
Смотрите также:
- 28 Шаговый двигатель BYJ работает быстрее при использовании задержки() и немного медленнее при использовании миллис(). Почему?
- Нужна помощь с независимым регулированием скорости на нескольких ступенях
- Accelstepper запустить степпер назад
- Как преобразовать ШИМ 0-5В в ШИМ 0-12В
- Регулятор скорости для потолочного вентилятора 220 В переменного тока 100 Вт
- Как заставить шаговый двигатель вращаться по часовой стрелке и против часовой стрелки
- Максимальная скорость SPI для ведомого Uno/clone?
- Управление направлением шагового двигателя с помощью кнопок.
Вы смотрели на пример кода, который включен в библиотеку?, @jsotola
Библиотека определяет скорость как «шагов в секунду». Ему все равно, в каком направлении находятся шаги. Точно так же, как вы не можете избежать штрафов за превышение скорости, всегда двигаясь задним ходом ;-)., @Gerben