Hallo
Wenn die Drehrichtungen der Motoren bei voller Fahrt geändert werden, ist ihre Stromaufnahme sehr groß. Vielleicht bricht dabei die Bordspannung ein oder Störimpulse irritieren den Prozessor. Besser wäre die Verwendung einer Bremsrampe:
(nicht getestet)Code:#include "asuro.h" void Motor(unsigned char richtung, unsigned char geschwindigkeit, unsigned int dauer) { if(geschwindigkeit) StatusLED(YELLOW); else StatusLED(RED); MotorDir(richtung,richtung); MotorSpeed(geschwindigkeit,geschwindigkeit); while(dauer--) Sleep(72); // 36 bei neueren Libraries für 1ms ;) } int main(void) { Init(); while(1) { Motor(FWD,200,1000); // Vorwärts mit Speed 200 während einer Sekunde Motor(BREAK,0,100); // Bremsen mit Speed 0 während 0,1 Sekunden Motor(RWD,200,1000); // Rückwärts mit Speed 200 während einer Sekunde Motor(BREAK,0,100); // Bremsen mit Speed 0 während 0,1 Sekunden } return(0); }
Die Bremszeit sollte so groß sein, dass man beim Vorwärts-/Rückwärtspendeln einen kurzen Stillstand erahnen kann.
Ich hoffe, das ist der richtige Ansatz.
Gruß
mic







Zitieren
Lesezeichen