Глупый вопрос по ШД и AccelStepper

Илья_К
Offline
Зарегистрирован: 10.08.2019

Всем привет!

Собственно вопрос : при подаче питания на схему ШД делает несколько шагов в обратную сторону (примерно 1/4 оборота), а затем работает по программе. Это повторяется всегда при включении питания.

ШД управляю через А4988. Код программы из примера библиотеки.

#include <AccelStepper.h>
 
AccelStepper stepper; // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5
 
void setup()
{
stepper.setMaxSpeed(1000);
stepper.setSpeed(50);
}
 
void loop()
{
stepper.runSpeed();
}
 
На других примерах из библиотеки также повторяется такая проблема. Также пробовал движение через delay. Тоже самое явление наблюдается.
 
В чем проблема, подскажите пожалуйста?
svm
Offline
Зарегистрирован: 06.11.2016

Зачем драйверу 4988 4 провода? Ему нужны  2, максимум 3 (Step,Dir,Enable).

Илья_К
Offline
Зарегистрирован: 10.08.2019
#include <AccelStepper.h>
AccelStepper Stepper1(1,4,5);
 
Пишу в программе так.
 
Пример скопировал прям из библиотеки, не посмотрел. 
svm
Offline
Зарегистрирован: 06.11.2016

По этим кускам, трудно что-то посоветовать. Вставьте полный код, по правилам форума.

Илья_К
Offline
Зарегистрирован: 10.08.2019
#include <AccelStepper.h>
AccelStepper Stepper1(1,4,5); 
void setup() 
{
  Stepper1.setMaxSpeed(200); 
  Stepper1.setSpeed(50);
  Stepper1.setAcceleration(100);
}
 
void loop() 
{
  Stepper1.runSpeed();
}
Morroc
Offline
Зарегистрирован: 24.10.2016

Я бы попробовал в setup добавить на всякий случай

Stepper1.setCurrentPosition(0);
Stepper1.targetPosition(0);
 
Не помню чтобы такие проблемы были с этой библиотекой - ничего не крутилось до команды.
 
И не используйте 1й пин - он занят!