ich weiss nicht ob das herausnehmen der angabe der fahrtdauer aus der "millis-schleife" das problem löst:
der code wird in der loop so aufgerufen: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);
}
}
und die räder drehen eine halbe sekunde und nicht zwei. Ich verstehe es nicht, in anderen beispielen funktioniert es so mit den millis...Code:zwei_sec_links_rotieren();
delay(500);
alle_motoren_halt();