Hi
Also ich habe das versucht so zu lösen :
vorher kommt die Anweisung :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); } } }
leider "pulsiert" der Antrieb nurCode: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;
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.







Zitieren

Lesezeichen