ein gutes neues jahr 2016 allen,

hallo botty,

Deinen erklärungen konnte ich folgen, danke...

irgendwie funktioniert bei mir die erkennung ob die Stepper mit der vorgesehen einen drehung fertig sind aber nicht und ich finde keinen unterschied zu Deinen codebeispielen in meinem loop:

Code:
void loop()
{
    hindernis_vorh();
    /****************************************/
    for (idx = stepper_VL; idx < stepper_MAX; idx++)
    {
      if (rueckwaerts == false && hindernis == true)
      {
        Serial.println("start - Stepper rückwärts- if-abfrage_1");
        alle_stepper_rueckwaerts();

      }
      else if (vorwaerts == false && hindernis == false)
      {
        Serial.println("start - Stepper vorwärts- else-abfrage_1");
        alle_stepper_vorwaerts();

      }
    }
    /*************************************/

    for (idx = stepper_VL; idx < stepper_MAX; idx++)
    {
if (rueckwaerts == false && rotate_li == false)
      {
        Serial.println("loop - rotiere_links - if-abfrage_2");
        rotieren_links();
      }
    }


    for (idx = stepper_VL; idx < stepper_MAX; idx++)
    {
      if (rotate_li == true && vorwaerts == false)
      {
        Serial.println("loop - alle_stepper_vorwärts - if-abfrage_3");
        alle_stepper_vorwaerts();
      }
    }

    for (idx = stepper_VL; idx < stepper_MAX; idx++)
    {
      if (vorwaerts == true && rotate_re == false)
      {
        Serial.println("loop - rotiere_rechts - if-abfrage_4");
        rotieren_rechts();
      }
    }

    for (idx = stepper_VL; idx < stepper_MAX; idx++)
    {
      if (rotate_re == true && vorwaerts == true)
      {
        Serial.println("loop - alle_stepper_vorwärts - if-abfrage_5");
        alle_stepper_vorwaerts();
      }
    }
  /*****************************************/


  while ( ! (stepper[stepper_VL].isDone() && stepper[stepper_HL].isDone()
             && stepper[stepper_VR].isDone() && stepper[stepper_HR].isDone() ) )
  {
    for (idx = stepper_VL; idx < stepper_MAX; idx++)
    {
      stepper[idx].run();
     // delay(1);
    }
  }
}
hier noch die ausgabe im terminal, wie man sehen kann werden zwar die if abfragen mit "rotiere links" und "rotiere rechts" erreicht, die befehle selbst aber nicht ausgeführt, daraus würde ich schliessen, dass die Stepper eben noch nicht fertig sind?

Code:
setup_ende
Ping: 83 cm
start - Stepper vorwärts- else-abfrage_1
Ping: 71 cm
loop - rotiere_links - if-abfrage_2
loop - rotiere_rechts - if-abfrage_4
loop - alle_stepper_vorwärts - if-abfrage_5
Ping: 82 cm
loop - alle_stepper_vorwärts - if-abfrage_5
Ping: 82 cm
ergänze ich einer dieser if abfragen mit der afrage ob z.b. der "stepper_VL" fertig ist, wird der printbefehl auch übersprungen, die abfrage 2 also gar nicht ausgeführt...

Code:
for (idx = stepper_VL; idx < stepper_MAX; idx++)
    {    
     if (stepper[stepper_VL].isDone())
      if (rueckwaerts == false && rotate_li == false)
      {
        Serial.println("loop - rotiere_links - if-abfrage_2");
        rotieren_links();
      }
    }