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();







Zitieren

Lesezeichen