Forum: Mikrocontroller und Digitale Elektronik AccelStepper library Befehl rücksetzen


von Bast B. (bastb)


Lesenswert?

Hallo,

hoffe jemand kann mir weiterhelfen, da ich sonst an der Accellibrary 
verzweifle.

Hardware: 2Stepper, 2 Pololu A4988 Treiber, Arduino Mega

Soll Programmablauf:
-Lichtschranke (FL) gibt ein Signal
-Stepper(F0) soll eine definierte Strecke fahren
-Anschließend soll Stepper(FO) und Stepper(W) solange fahren bis das 
Signal(S) kommt



#include <AccelStepper.h>

AccelStepper FO(1, 3, 4);
AccelStepper W(1, 6, 7);

int FPos = 1000;

int FL = A0 ;   // FL = Lichtschranke
int S  = A3 ;   // S  = Scanner

int FLVal = 0;
int SVal  = 0;

void setup()
{
  FO.setSpeed(-50);
  //FO.setMaxSpeed(50);
 // FO.setAcceleration(10000000);
  W.setSpeed(-120);
  //W.setMaxSpeed(120);
 // W.setAcceleration(10000000);


  pinMode(FL, INPUT);
  pinMode(S, INPUT);


}
void loop()
{
FLVal = analogRead(FL);
if (FLVal > 200)
{
FO.moveTo(FPos) ;
FO.run();
}

FLVal = analogRead(FL);
if (FLVal >200)
{
FO.runSpeed();
W.runSpeed();
 }
}


Ist Programmablauf
- Beide Stepper starten zur gleichen Zeit
- Stepper (FO) bleibt nach erreichen der Schritte einfach stehen, 
Stepper(W) läuft wie gewünscht weiter

Hab schon ein paar Varianten versucht, leider nie mit dem gewünschten 
Sollablauf.

Kann man den move Befehl irgendwie zurücksetzen?

Danke schon mal fürs lesen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.