cyberfrank
04.02.2013, 07:36
Hallo,
ich habe ein Problem mit dem Selbsttest vom Antrieb:
#include "asuro.h"
unsigned char Wheelspeed[2];
#define aus MotorDir(BREAK,BREAK)
void testfahrt(void)
{
unsigned char s1=100,s2=100;
MotorSpeed(150,150);
MotorDir(FWD,FWD);
while (1)
{
if (Wheelspeed[0]<150)s1++;
if (Wheelspeed[0]>160)s1--;
if (Wheelspeed[1]<150)s2++;
if (Wheelspeed[1]>160)s2--;
Msleep(2);
MotorSpeed(s1,s2);
SerPrint("\n\r speed Left,Right ");
PrintInt(Wheelspeed[0]);
PrintInt(Wheelspeed[1]);
}
}
void treasure(void)
{
Go(350,150);
Go(-50,150);
Msleep(1000);
Turn(90,150);
Go(100,150);
Turn(-90,150);
Go(170,150);
Turn(-90,150);
Go(100,150);
Turn(-90,150);
Go(470,150);
Go(-50,150);
Msleep(1000);
Turn(90,150);
Go(100,150);
Turn(-90,150);
Go(170,150);
Turn(-90,150);
Go(100,150);
Turn(-90,150);
}
int main(void)
{
int n;
Init();
EncoderInit();
StatusLED(OFF);
SerPrint("\n\r motor calibration V0.1 \n\r");
while (1)
{
n=PollSwitch ();
if (n==8)
{
SerPrint("\n\r testfahrt \n\r");
Msleep(3000);
testfahrt();
}
if (n==16)
{
SerPrint("\n\r treasure \n\r");
Msleep(3000);
treasure();
}
StatusLED(RED);
Msleep(500);
StatusLED(GREEN);
Msleep(500);
}
return 0;
}
Dieser Code wurde vorgegeben.
Die Räder sollen sich so drehen:
Linker Motor vorwärts
Linker Motor rückwärts
Rechter Motor vorwärts
Rechter Motor rückwärts
Beide Motoren drehen sich gleichzeitig (Keine Richtungsangabe)
Und so ist es leider bei mir:
Linker Motor vorwärts
Linker Motor rückwärts
Kurze Pause
Rechter Motor rückwärts
Linker Motor vorwärts
Beide Motoren rückwärts
Hat jemand eine Idee ? Am Motor kann es nicht liegen, denn wenn man die Motoren austauscht ist das selbe Problem am rechten Motor.
Hab ich da was ausversehen zusammengebracht bei der Motorbrücke ?
Also ich hab die beiden Motorbrücken nochmal nachgelötet, aber das hat nichts gebracht. :(
Vielleicht hat ja jemand von euch noch eine Idee. :)
Anbei 3 Bilder.
1. Platine von unten
2.Motorbrücken von unten
3. Rechte Motorbrücke von oben
ich habe ein Problem mit dem Selbsttest vom Antrieb:
#include "asuro.h"
unsigned char Wheelspeed[2];
#define aus MotorDir(BREAK,BREAK)
void testfahrt(void)
{
unsigned char s1=100,s2=100;
MotorSpeed(150,150);
MotorDir(FWD,FWD);
while (1)
{
if (Wheelspeed[0]<150)s1++;
if (Wheelspeed[0]>160)s1--;
if (Wheelspeed[1]<150)s2++;
if (Wheelspeed[1]>160)s2--;
Msleep(2);
MotorSpeed(s1,s2);
SerPrint("\n\r speed Left,Right ");
PrintInt(Wheelspeed[0]);
PrintInt(Wheelspeed[1]);
}
}
void treasure(void)
{
Go(350,150);
Go(-50,150);
Msleep(1000);
Turn(90,150);
Go(100,150);
Turn(-90,150);
Go(170,150);
Turn(-90,150);
Go(100,150);
Turn(-90,150);
Go(470,150);
Go(-50,150);
Msleep(1000);
Turn(90,150);
Go(100,150);
Turn(-90,150);
Go(170,150);
Turn(-90,150);
Go(100,150);
Turn(-90,150);
}
int main(void)
{
int n;
Init();
EncoderInit();
StatusLED(OFF);
SerPrint("\n\r motor calibration V0.1 \n\r");
while (1)
{
n=PollSwitch ();
if (n==8)
{
SerPrint("\n\r testfahrt \n\r");
Msleep(3000);
testfahrt();
}
if (n==16)
{
SerPrint("\n\r treasure \n\r");
Msleep(3000);
treasure();
}
StatusLED(RED);
Msleep(500);
StatusLED(GREEN);
Msleep(500);
}
return 0;
}
Dieser Code wurde vorgegeben.
Die Räder sollen sich so drehen:
Linker Motor vorwärts
Linker Motor rückwärts
Rechter Motor vorwärts
Rechter Motor rückwärts
Beide Motoren drehen sich gleichzeitig (Keine Richtungsangabe)
Und so ist es leider bei mir:
Linker Motor vorwärts
Linker Motor rückwärts
Kurze Pause
Rechter Motor rückwärts
Linker Motor vorwärts
Beide Motoren rückwärts
Hat jemand eine Idee ? Am Motor kann es nicht liegen, denn wenn man die Motoren austauscht ist das selbe Problem am rechten Motor.
Hab ich da was ausversehen zusammengebracht bei der Motorbrücke ?
Also ich hab die beiden Motorbrücken nochmal nachgelötet, aber das hat nichts gebracht. :(
Vielleicht hat ja jemand von euch noch eine Idee. :)
Anbei 3 Bilder.
1. Platine von unten
2.Motorbrücken von unten
3. Rechte Motorbrücke von oben