Hansi41
15.01.2008, 20:04
Hallo,
ich habe folgendes Problem mit meinem ASURO:
Meine Motoren drehen sich nicht richtig bei der Vorwärtsbewegung im folgenden Programm
#include "asuro.h"
#define STOP 50
/*asuro kann einem abgrund mittels der liniensensoren ausweichen und hindernissen mittels der kollisionstaster*/
int main(void)
{
while(1)
{
unsigned int lineData[2]; //array für die daten der liniensensoren
unsigned char running = TRUE;
unsigned char i; //laufvariable für die for-schleifen
unsigned char taste=0; //nimmt den wert der kollisionstaster auf
FrontLED(ON);
Sleep(255); //kurze pause, damit linedata die richtigen werte erfasst
LineData(lineData);
PollSwitch();
Sleep(50);
PollSwitch();
Sleep(50);
PollSwitch();
Sleep(50);
taste = PollSwitch();
if ((lineData[0] > STOP) && (lineData[1] > STOP) && (taste == 0)) //vorwärts falls kein hinderniss und kein abgrund
{
MotorDir(FWD,FWD);
MotorSpeed(255,255);
}
else //wenden falls abgrund
{
MotorSpeed(0,0); //stop
BackLED(ON,ON);
FrontLED(OFF);
StatusLED(RED);
Sleep(255);
for(i=0; i<100; i++) //kurz zurueck
{
MotorDir(RWD,RWD);
MotorSpeed(190,190);
Sleep(255);}
MotorSpeed(0,0);
for(i=0; i<170; i++) //wenden
{
MotorDir(FWD,RWD);
MotorSpeed(120,120);
Sleep(100);
}
MotorSpeed(0,0);
BackLED(OFF,OFF);
FrontLED(ON);
StatusLED(GREEN);
}
Sleep(100);
}
return 0;
}
Ich habe den Strom an den Motoren gemessen, hier ergab sich ein Wert von 1,45 V. Könnt ihr mir bei meinem Problem helfen?
mfg Hans
PS: Ein Video kommt auch noch......
ich habe folgendes Problem mit meinem ASURO:
Meine Motoren drehen sich nicht richtig bei der Vorwärtsbewegung im folgenden Programm
#include "asuro.h"
#define STOP 50
/*asuro kann einem abgrund mittels der liniensensoren ausweichen und hindernissen mittels der kollisionstaster*/
int main(void)
{
while(1)
{
unsigned int lineData[2]; //array für die daten der liniensensoren
unsigned char running = TRUE;
unsigned char i; //laufvariable für die for-schleifen
unsigned char taste=0; //nimmt den wert der kollisionstaster auf
FrontLED(ON);
Sleep(255); //kurze pause, damit linedata die richtigen werte erfasst
LineData(lineData);
PollSwitch();
Sleep(50);
PollSwitch();
Sleep(50);
PollSwitch();
Sleep(50);
taste = PollSwitch();
if ((lineData[0] > STOP) && (lineData[1] > STOP) && (taste == 0)) //vorwärts falls kein hinderniss und kein abgrund
{
MotorDir(FWD,FWD);
MotorSpeed(255,255);
}
else //wenden falls abgrund
{
MotorSpeed(0,0); //stop
BackLED(ON,ON);
FrontLED(OFF);
StatusLED(RED);
Sleep(255);
for(i=0; i<100; i++) //kurz zurueck
{
MotorDir(RWD,RWD);
MotorSpeed(190,190);
Sleep(255);}
MotorSpeed(0,0);
for(i=0; i<170; i++) //wenden
{
MotorDir(FWD,RWD);
MotorSpeed(120,120);
Sleep(100);
}
MotorSpeed(0,0);
BackLED(OFF,OFF);
FrontLED(ON);
StatusLED(GREEN);
}
Sleep(100);
}
return 0;
}
Ich habe den Strom an den Motoren gemessen, hier ergab sich ein Wert von 1,45 V. Könnt ihr mir bei meinem Problem helfen?
mfg Hans
PS: Ein Video kommt auch noch......