Aber eigentlich sollte der Robo doch geradeaus fahren, denn kein Hindernis ist in Sicht. Zudem ist das komische ja, dass er sich nun wieder nur vor und rückwärts bewegt(vorher war das noch anders). Warum er das tut, versteh ich immer noch nicht. Er dreht sich ja nicht mal, nein, er bewegt sich kosequent vor und zurück. Alles bisschen seltsam.
Nein kann ich leider nicht...
EDIT: Wenn ich das Infrarot rausnehme, dann dreht er sich wieder.
Dieses Programm hab ich derzeit auf dem Robo:
Code:
#include "qfixMiniBoard.h"
#include "qfixLCD.h"
const int SENSOR3 = 3;
int SENSOR1 = 1;
int SENSOR2 = 2;
int SENSOR = 0;
MiniBoard robot;
LCD lcd;
#define links 0
#define rechts 1
#define hindernis 85
#define freieSicht 150 // Wenn der Robo etwas nach links fährt, aber dann gegen das Hindernis, ist dieser Wert zu klein
#define True 1
#define False 0
int main()
{
unsigned char Drehrichtung = links;
int abstand = robot.analog(1);
int infrarot = robot.analog(3);
while(1)
{
unsigned char Hindernis = true; // unsigned char = 8bit integer von 0 bis 255, braucht weniger Platz im RAM
if (Hindernis == false)
{
abstand = robot.analog (1);
robot.motors(250,250);
if(abstand < 85)
{
Hindernis = true;
}
}
else
{
if(Drehrichtung == links)
{
robot.motors (200, -200);
Drehrichtung = rechts;
}
else
{
robot.motors(-100,-100);
msleep(100);
robot.motors (-200, 200);
Drehrichtung = links;
}
infrarot = robot.analog (3);
if ( infrarot < 85)
{
Hindernis = false;
}
}
msleep(500);
}
}
Lesezeichen