Hi
Also ich habe das versucht so zu lösen :
Code:
else if (taskTrigger==3) { //nach rechts
switch (taskStep) {
case 0:
digitalWrite(leftMtrDirPin1, LOW);
digitalWrite(leftMtrDirPin2, LOW);
digitalWrite(rightMtrDirPin1, HIGH);
digitalWrite(rightMtrDirPin2, LOW);
analogWrite(leftMtrSpdPin, 255); //drive the motor
analogWrite(rightMtrSpdPin, 255);
currentPosition=bearing;
taskStep++;
break;
case 1:
if (currentPosition= newPosition+90) {
taskTrigger=0;
taskStep=0;
analogWrite(leftMtrSpdPin, 0); //stopp the motors
analogWrite(rightMtrSpdPin, 0);
}
}
}
vorher kommt die Anweisung :
Code:
if (!taskTrigger && (uS2 < 15 & uS3 > 30 )) //abstand kleiner als 15cm und abstand links grösser als 30
taskTrigger=1;
else if (!taskTrigger && ( uS2 < 15 & uS1 > 30 )) //wenn abstand kleiner als 15 und links groesser als 30 dann rechts
taskTrigger=2;
else if (!taskTrigger && (uS3 < 16)) //wenn abstand kleiner als 16 dann rechts drehen
taskTrigger=3;
leider "pulsiert" der Antrieb nur
Es schert ihm nicht was die Werte des kompasmoduls machen.
Ich krieg das nicht hin ....
Warum wartet er nicht bis er um 90° gedreht hat ???
Hat jemand einen Vorschlag ?
Gruß
Chr.
Lesezeichen