Hallo zusammen,

Bin am kämpfen mit einem wahrscheinlich für Programmierexperten kleinem Problem.
Ich würde gerne meinen kleinen Robi über die Sensoren positionieren lassen.
Dazu habe ich 3 Ultraschalsensoren Links ; Mitte ; Rechts
Jetzt zu der Aufgabe : Sobald der Linke ein Hindernis erkennt nehmen wir mal an bei ca. 16 cm soll er sich nach rechts drehen und zwar so lange bis er ca. 30 cm vom Hindernis weg ist.
Wie kann ich das Programmtechnisch lösen ?

Hier meine Anweisung welch leider nicht funktioniert ...
Code:
if ((uS1 < 16 )) {//abstand kleiner als 16cm und abstand links grösser als 30**
********for (; uS1 > 30 ; uS1++)
********{
********//Motor A forward @ full speed
**** digitalWrite(12, LOW); 
**** digitalWrite(9, LOW); 
**** analogWrite(3, 255); 
** 
**** //Motor B forward @ full speed
**** digitalWrite(13, HIGH); 
**** digitalWrite(8, LOW); 
**** analogWrite(11, 255); 
********
********}
}
else {
****** //Motor A forward @ full speed
**** digitalWrite(12, HIGH); 
**** digitalWrite(9, LOW);
**** analogWrite(3, 255); 
** 
**** //Motor B forward @ full speed
**** digitalWrite(13, HIGH); 
**** digitalWrite(8, LOW); 
**** analogWrite(11, 255); 
}

**
}**//end loop
uS1 ist mein Ultraschalsensor für die Erkennung von Hindernissen auf der linken Pos .

deklariert wurde er mit :

Code:
*unsigned int uS1 = sonar1.ping(); //Sensor rechts
**Serial.print("Ping: ");
**Serial.print(uS1 / US_ROUNDTRIP_CM); 
**Serial.println("cm");
**uS1=uS1 / US_ROUNDTRIP_CM;
**if (uS1 ==0 ){
uS1=50;
}
Leider wie schon gesagt habe ich keinen Plan wie ich es realisieren kann.
Ich will wirklich nur mit den Werten arbeiten ... ( klar ich könnte den Robi ca 500 ms lang nach links drehen lassen o.ä. doch das ist keine Option )

Würde mich über jegliche Code Vorschläge freuen

Beste Grüße

Chris