Hab zwischen drin auch schon an sowas gedacht, aber irgendwie kann das doch nicht sein. 
Wie könnte man denn in das vorherige Programm nen Infrarot reinbekommen?
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 95
#define freieSicht 120 // 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;
while(1)
{
int abstand = robot.analog(1);
//int infrarot = robot.analog(3);
if( drehrichtung == geradeaus)
{
robot.motors(25,25); //geradeaus fahren
if( abstand < hindernis)
{
if(schonNachLinksAusgewichen == False)
drehrichtung = linksDrehung;
else
drehrichtung = rechtsDrehung;
}
}
if( drehrichtung == linksDrehung )
{
robot.motors(-255, 255); // nach links drehen
if( abstand >= freieSicht )
{
robot.motors(125,125);
schonNachLinksAusgewichen = True;
//if( infrarot > 180){
//robot.motors(100,-100);
//msleep(500);
//}
}
}
if( drehrichtung == rechtsDrehung )
{
robot.motors(200, -200); // nach rechts drehen
if( abstand >= freieSicht )
{
robot.motors(100,100);
schonNachLinksAusgewichen = False;
//msleep(500);
//if( infrarot > 180){
//robot.motors(-100,100);
//}
// Er ist zwar schon mal nach links ausgewichen, aber inzwischen auch schon rechtsrum, also wieder von vorne
}
}
}
}
Im Prinzip müsste das Infrarot doch richtig sein oder nicht? Weil darauf reagiert er schlichtweg nicht...
Edit: Auch da ist sowas seltsam: Wenn ich bei der geradeaus-Schleife die Motoren auf 0 stelle fährt der trotzdem...was ist da los?
Und der dreht sich, egal was ich einstelle einfach nicht weit genug(der Abstandssensor reagiert nur bis 100, das FreieSicht geht nur bis 170). Was könnte ich da tun?
Denn irgendein Programm brauch ich, auch wenn es nur halb geht.
Lesezeichen