ich weiss nicht ob das herausnehmen der angabe der fahrtdauer aus der "millis-schleife" das problem löst:
Code:
void zwei_sec_links_rotieren(void)
{
  currentMillis = millis();
  dauer_fahrt = 2000;

  if (currentMillis - previousMillis > dauer_fahrt)
  {

    Serial.println("zwei sec links rotieren");
    motor_hl->setSpeed(s_speed);
    motor_hr->setSpeed(s_speed + 1);
    motor_vr->setSpeed(s_speed + 1);
    motor_vl->setSpeed(s_speed);

    motor_hl->run(BACKWARD);
    motor_hr->run(FORWARD);
    motor_vr->run(FORWARD);
    motor_vl->run(BACKWARD);

  }
}
der code wird in der loop so aufgerufen:
Code:
  zwei_sec_links_rotieren();
  delay(500);
  alle_motoren_halt();
und die räder drehen eine halbe sekunde und nicht zwei. Ich verstehe es nicht, in anderen beispielen funktioniert es so mit den millis...