jonnyf
21.12.2007, 23:58
Hi, ich habe mir vor tagen den Asuro zusammen gelötet. Doch jetzt habe ich das problem, das mein Asuro nicht richtig rückwärts fährt.
Also nur der linke Motor fährt richtig rückwärts...
Ich weiß nicht warum das nicht funktioniert.
ich benutze den KollisionTest aus der Lib...
Also sollte mein Asuro wenn er irgendwo gegen kommt rückwärts fahren.
#include "asuro.h"
#define FULL_L 250
#define FULL_R 220
/* Motor vorwärts */
void MotorFwd(void)
{
MotorDir(FWD,FWD);
MotorSpeed(FULL_L,FULL_R);
}
/* Motor rückwärts */
void MotorRwd(void)
{
MotorDir(RWD,RWD);
MotorSpeed(FULL_L,FULL_R);
}
/* Motor rückwärts Links */
void MotorRwdL(void)
{
MotorDir(RWD,RWD);
MotorSpeed(FULL_L,0);
}
/* Motor rückwärts Rechts */
void MotorRwdR(void)
{
MotorDir(RWD,RWD);
MotorSpeed(0, FULL_R);
}
/* Motor stop */
void MotorStop(void)
{
MotorSpeed(0,0);
}
int main(void)
{
unsigned char t1, t2;
Init();
while (1)
{
t1 = PollSwitch();
t2 = PollSwitch();
if (t1 == 0 && t2 == 0) /* keine Taste */
{
MotorFwd(); /* vorwärts fahren */
FrontLED(ON);
BackLED(OFF,OFF);
}
else if (t1 && t2 && t1 == t2)
{
MotorStop();
if (t1 & 0x07) /* Tasten links gedrückt? */
{
MotorRwdL(); /* Rückwärtskurve links fahren */
FrontLED(OFF);
BackLED(ON,OFF);
}
if (t1 & 0x38) /* Tasten rechts gedrückt? */
{
MotorRwdR(); /* Rückwärtskurve rechts fahren */
FrontLED(OFF);
BackLED(OFF,ON);
}
Msleep(1000); /* 1 Sekunde fahren */
}
}
return 0;
}
Mit nem spannungsmesser bin ich auch schon dran geganngen und habe festgestellt, das meine Tranistoren folgende werte bekommt wenn er eine taste berührt.
Transistor (B für Basis)(C für Collector)(E für Emitter)
T5 B 0V C 0V E 0V
T6 B 0V C 0V E 0V
T7 B 4,47V C 4,49V E 0V
T8 B 0,72V C 0V E 0V
Diese Werte fand es merkwürdig deswegen habe ich erst versucht
die Lötstellen nachzubessern doch leider ohne erfolg mein rechter Motor fährt immer noch nicht rückwärts.
Die Dioden habe ich geprüft und die Wiederständen auch doch immer noch kein erfolg.
Hoffe das irgendjemand von euch mir helfen kann brauche echt dringend hilfe!
Danke JonnyF
Also nur der linke Motor fährt richtig rückwärts...
Ich weiß nicht warum das nicht funktioniert.
ich benutze den KollisionTest aus der Lib...
Also sollte mein Asuro wenn er irgendwo gegen kommt rückwärts fahren.
#include "asuro.h"
#define FULL_L 250
#define FULL_R 220
/* Motor vorwärts */
void MotorFwd(void)
{
MotorDir(FWD,FWD);
MotorSpeed(FULL_L,FULL_R);
}
/* Motor rückwärts */
void MotorRwd(void)
{
MotorDir(RWD,RWD);
MotorSpeed(FULL_L,FULL_R);
}
/* Motor rückwärts Links */
void MotorRwdL(void)
{
MotorDir(RWD,RWD);
MotorSpeed(FULL_L,0);
}
/* Motor rückwärts Rechts */
void MotorRwdR(void)
{
MotorDir(RWD,RWD);
MotorSpeed(0, FULL_R);
}
/* Motor stop */
void MotorStop(void)
{
MotorSpeed(0,0);
}
int main(void)
{
unsigned char t1, t2;
Init();
while (1)
{
t1 = PollSwitch();
t2 = PollSwitch();
if (t1 == 0 && t2 == 0) /* keine Taste */
{
MotorFwd(); /* vorwärts fahren */
FrontLED(ON);
BackLED(OFF,OFF);
}
else if (t1 && t2 && t1 == t2)
{
MotorStop();
if (t1 & 0x07) /* Tasten links gedrückt? */
{
MotorRwdL(); /* Rückwärtskurve links fahren */
FrontLED(OFF);
BackLED(ON,OFF);
}
if (t1 & 0x38) /* Tasten rechts gedrückt? */
{
MotorRwdR(); /* Rückwärtskurve rechts fahren */
FrontLED(OFF);
BackLED(OFF,ON);
}
Msleep(1000); /* 1 Sekunde fahren */
}
}
return 0;
}
Mit nem spannungsmesser bin ich auch schon dran geganngen und habe festgestellt, das meine Tranistoren folgende werte bekommt wenn er eine taste berührt.
Transistor (B für Basis)(C für Collector)(E für Emitter)
T5 B 0V C 0V E 0V
T6 B 0V C 0V E 0V
T7 B 4,47V C 4,49V E 0V
T8 B 0,72V C 0V E 0V
Diese Werte fand es merkwürdig deswegen habe ich erst versucht
die Lötstellen nachzubessern doch leider ohne erfolg mein rechter Motor fährt immer noch nicht rückwärts.
Die Dioden habe ich geprüft und die Wiederständen auch doch immer noch kein erfolg.
Hoffe das irgendjemand von euch mir helfen kann brauche echt dringend hilfe!
Danke JonnyF