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:
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?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 } } } } } }







Zitieren

Lesezeichen