Da reden wir aneiander vor bei: Klar, ich hab 3 LEDs(2 grün, 1 rot), ich meinte so nen LED-Display an dem man Werte ablesen kann, das hab ich nämlich nicht...
Edit: Hab das jetzt getestet: Für meine Bahn ist infrarot < 120 perfekt.
Mein Code sieht nun so aus:
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 geradeaus 0
#define linksDrehung 1
#define rechtsDrehung 2
#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 = geradeaus; // unsigned char = 8bit integer von 0 bis 255, braucht weniger Platz im RAM
unsigned char schonNachLinksAusgewichen = False;
int abstand = robot.analog(1);
int infrarot = robot.analog(3);
while(1)
{
if( drehrichtung == geradeaus)
{
robot.motors(200,200); //geradeaus fahren
if( abstand < 90)
{
if(schonNachLinksAusgewichen == False)
drehrichtung = linksDrehung;
else
drehrichtung = rechtsDrehung;
}
}
if( drehrichtung == linksDrehung )
{
robot.motors(-100,-100);
msleep(100);
robot.motors(-150, 150); // nach links drehen
msleep(300);
if( abstand >= 150 )
{
robot.motors(200,200);
msleep(500);
schonNachLinksAusgewichen = True;
robot.motors(150, -150);
if( infrarot < 120){
robot.motors(100,-100);
msleep(500);
}
}
if( drehrichtung == rechtsDrehung )
{
robot.motors(-100, -100);
msleep(100);
robot.motors(150, -150); // nach rechts drehen
msleep(300);
if( abstand >= 150 )
{
robot.motors(200,200);
msleep(500);
schonNachLinksAusgewichen = False;
robot.motors(-150, 150);
int infrarot = robot.analog(3);
if( infrarot < 120){
robot.motors(100,-100);
msleep(500);
// Er ist zwar schon mal nach links ausgewichen, aber inzwischen auch schon rechtsrum, also wieder von vorne
}
}
}
}
}
}
Trotzdem reagiert der Robo nicht auf den Boden. Ich weiß leider immer noch nicht woran das liegt. Kann das sein, dass er gar nicht soweit in seiner Schleife vorankommt?
Lesezeichen