#1 2020-03-17 16:34:30

bdngel
Участник
Зарегистрирован: 2020-03-17
Сообщений: 3

AccelStepper: простейший код не работает.

И здрасьте всем, не бейте новичка.

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

Вот это работает, как надо:

#include <AccelStepper.h>
const int pinE = A2;
const int pinS = A6;
const int pinD = A7;
AccelStepper Stepper1(1, pinS, pinD);
int dir = 1;
void setup() {
  Stepper1.setMaxSpeed(2000);
  Stepper1.setAcceleration(15000);
}
void loop() {
  if (Stepper1.distanceToGo() == 0) {
    Stepper1.move(20000 * dir);
    dir = dir * (-1);
    delay(1000);
  }
  Stepper1.run();
}

А вот это в упор не запускается (простое вращение):

#include <AccelStepper.h>
const int pinE = A2;
const int pinS = A6;
const int pinD = A7;
AccelStepper Stepper1(1, pinS, pinD);
void setup()
{
  Stepper1.setMaxSpeed(1500);
  Stepper1.setAcceleration(1000);
  Stepper1.setSpeed(1500);
}

void loop()
{
    Stepper1.runSpeed();
    //Stepper1.run();  тоже не крутит
}

Чего только не тыкал. Stepper1.speed() возвращает 1500, а мотор даже не гудит. Есть подозрение, что упускаю какую-то мелочь, а понять не могу. Подскажите, что это может быть?

#2 2020-03-17 17:04:18

Watchdog
Гость

Re: AccelStepper: простейший код не работает.

bdngel пишет:

И здрасьте всем, не бейте новичка.

Пытаюсь разобраться в библиотеке AccelStepper, гоняю разные режимы и в простейшем примере уткнулся в стену.
Движок подключен через А4988. Полярность правильная.
...
Чего только не тыкал. Stepper1.speed() возвращает 1500, а мотор даже не гудит. Есть подозрение, что упускаю какую-то мелочь, а понять не могу. Подскажите, что это может быть?

Вместо гоняния режимов и научного тыка лучше глубже изучите документацию. https://github.com/adafruit/AccelStepper/tree/master/doc Это эффективнее.

#3 2020-03-17 20:35:45

bdngel
Участник
Зарегистрирован: 2020-03-17
Сообщений: 3

Re: AccelStepper: простейший код не работает.

Watchdog пишет:

Вместо гоняния режимов и научного тыка лучше глубже изучите документацию. https://github.com/adafruit/AccelStepper/tree/master/doc Это эффективнее.

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

#4 2020-03-17 21:11:56

Watchdog
Гость

Re: AccelStepper: простейший код не работает.

bdngel пишет:

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

Попробуйте:

loop()
{
   if (you_stepper.run()) you_stepper.move(YOU_STEP_LENGTH)
}

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

#5 2020-03-18 01:44:40

bdngel
Участник
Зарегистрирован: 2020-03-17
Сообщений: 3

Re: AccelStepper: простейший код не работает.

О, еще раз спасибо. Зацепка есть, буду копать.

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела