Hallo,
ich habe da ein kleines Problem mit der Ermittlung der Ticks. Er soll folgendes machen:
- fahre 300 Ticks geradeaus
- Stoppe dann
- drehe 100 Ticks nach links
- Stoppe dann
- und dann wieder von vorn.
Die Abfrage der 300 Ticks funktioniert. Er bleibt auch stehen und beginnt links zu drehen. Die Abfrage der 100 Ticks für die Linksdrehung mache ich mittels while().
Und hier taucht das Problem auf! Er hört nicht auf zu drehen
Hier mein Code:
#include <NIBOburger.h>
int TICK_L, TICK_R;
void setup()
{
NIBOburger.begin();
NIBOburger.checkVoltage();
TICK_L = 0;
TICK_R = 0;
}
void loop()
{
TICK_L = Engine.left.getTicks();
TICK_R = Engine.right.getTicks();
// Vorwärts
setGO();
if (TICK_L > 300 || TICK_R > 300)
{
Engine.stopImmediate();
delay(500);
setLEFT();
}
}
//************************************************
// Meine Funktionen
//************************************************
void setGO()
{
Engine.setSpeed(25,25);
}
void setLEFT()
{
int z = 0;
Engine.left.resetTicks();
while (z < 100)
{
NIBOburger.setLed(1, ON);
Engine.setSpeed(-25,25);
z = Engine.left.getTicks();
}
NIBOburger.setLed(1, OFF);
Engine.stopImmediate();
Engine.left.resetTicks();
Engine.right.resetTicks();
delay(500);
}
Woran liegts???
Gruß
Torsten