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:
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);
}
(nicht getestet)
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
Lesezeichen