Arduino Polska Forum

Pełna wersja: AccelStepper i MultiStepper - zawsze gubi jeden krok!
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam.
Otóż mam taki problem:

Korzystając z bibliotek - zawsze się objawi!
AccelStepper-master od AF
AccelStepper-1.56.0
AccelStepper-1.59.0

Zestaw:
Arduino Mega, 3XTB6600, silniki 200kroków

szkic projektu z przykładu:
void setup() {
  stepper1.setMaxSpeed(50);
  stepper2.setMaxSpeed(50);
  steppers.addStepper(stepper1);
  steppers.addStepper(stepper2);
}

void loop() {
  long positions[2];
 
  positions[0] = 1;
  positions[1] = 1;
  steppers.moveTo(positions);
  steppers.runSpeedToPosition();
  delay(1000);
 

  positions[0] = 0;
  positions[1] = 0;
  steppers.moveTo(positions);
  steppers.runSpeedToPosition();
  delay(1000);
 
}



Objaw:
Silniki kręcą się tylko w jedną stronę a powinny wykonać :

krok w prawo
delay(1000)
krok w lewo do pozycji 0
delay(1000)

Objaw ten można zauważyć ustawiając np
positions[0] = 200;

  positions[1] = 200;


- powinny wykonać cały obrót, oraz wrócić do punku zero - po wykonaniu kilku cykli punkt zero nie będzie w tym samym miejscu.

Spotkał się ktoś z tym - jest jakieś lekarstwo, albo co robię źle

Pozdrawiam
Przyczyną może być zła kolejność przewodów / pinów podanych do konstruktora AccelStepper. Proponuję najpierw zmienić sterowanie na HALF4WIRE, jeśli silnik zamiast wykonywać obrót będzie tylko drgał to znaczy że chodzi o kolejność. Najlepiej dobrać ją przy HALF4WIRE, a na koniec wrócić do FULL4WIRE.
Problem rozwiązany
wina driverów TB6600
po podłączeniu innych MultiStepper działa poprawnie.