Vielen Dank Euch beiden, jetzt läufts!
ich hab´s jetzt so gemacht:
Code:
if ((ziel-ist)<128 && (ziel-ist)>0)
{
rotate(30, RIGHT, 10,IDLE);
}
else
{
rotate(30, LEFT, 10,IDLE);
}
edit:
nun ist mir doch nach Monaten aufgefallen, das das gar nicht so funktioniert, keine Ahnung wieso mir das vorher als richtig erschienen ist...
Also doch lieber genau das Prinzip, so wie Peter(TOO) es geschrieben hat:
Bei mir ist Kompass der Istwert.
Code:
if (Kompass>ziel)
{
diff=Kompass-ziel;
}
else
{
diff=ziel-Kompass;
}
if ( diff > 128 )
{
if ( Kompass > ziel )
{
rotate(30, RIGHT, 10,IDLE);
}
else
{
rotate(30, LEFT, 10,IDLE);
}
}
else
{
if ( Kompass > ziel )
{
rotate(30, LEFT, 10,IDLE);
}
else
{
rotate(30, RIGHT, 10,IDLE);
}
}
Lesezeichen