Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
projektews2013:wwsr:start:ausweichen [2014/01/12 21:22] gorgotha |
projektews2013:wwsr:start:ausweichen [2016/01/21 12:45] (aktuell) |
||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
int dir1=22; | int dir1=22; | ||
- | int step2=26; | + | int step2=26; //Rechtes Rad |
int dir2=28; | int dir2=28; | ||
- | int step3=30; | + | int step3=30; //Linkes Rad |
int dir3=32; | int dir3=32; | ||
Zeile 50: | Zeile 50: | ||
entfernungsMesser(); //Aufrufen der Funktion, die den Abstand zur nächsten Wand misst. | entfernungsMesser(); //Aufrufen der Funktion, die den Abstand zur nächsten Wand misst. | ||
if(cm<10) { | if(cm<10) { | ||
- | array[89]=0; //array[89] darf nicht unbeschrieben sein, weil der Anfang bei Winkel=90° ist. | + | weitesteEntfernung=0; |
- | digitalWrite(dir2, HIGH); //Umstellung der directions, um sich zu drehen. | + | |
- | digitalWrite(dir3, LOW); | + | |
- | for(int i=90;i>180;i++) { | + | for(int i=90;i<180;i++) { |
myservo.write(i); | myservo.write(i); | ||
+ | delay(30); | ||
entfernungsMesser(); | entfernungsMesser(); | ||
- | | + | //Serial.println("wort"); |
array[i]=cm; | array[i]=cm; | ||
- | if(array[i]>array[i-1]) { | + | if(array[i]>weitesteEntfernung) { |
- | weitesteEntfernung=array[i]; //optimalerWinkel und weiteste Entfernung | + | weitesteEntfernung=array[i]; //optimalerWinkel und weitesteEntfernung |
optimalerWinkel=i; //werden im Programm bis jetzt noch nicht | optimalerWinkel=i; //werden im Programm bis jetzt noch nicht | ||
- | } //verwendet | + | } //verwendet. |
- | } | + | Serial.println(optimalerWinkel); |
- | for(int i=180;i<0;i--) { | + | } |
+ | for(int i=179;i>0;i--) { | ||
myservo.write(i); | myservo.write(i); | ||
+ | delay(30); | ||
entfernungsMesser(); | entfernungsMesser(); | ||
| | ||
array[i]=cm; | array[i]=cm; | ||
- | if(array[i]>array[i-1]) { | + | if(array[i]>weitesteEntfernung) { |
weitesteEntfernung=array[i]; | weitesteEntfernung=array[i]; | ||
optimalerWinkel=i; | optimalerWinkel=i; | ||
+ | } | ||
+ | Serial.println(optimalerWinkel); | ||
} | } | ||
- | } | + | myservo.write(90); |
+ | if(optimalerWinkel>90) { | ||
+ | digitalWrite(dir2, HIGH); | ||
+ | digitalWrite(dir3, LOW); | ||
+ | Serial.println("LINKS"); | ||
+ | } | ||
+ | else { | ||
+ | digitalWrite(dir2, LOW); | ||
+ | digitalWrite(dir3, HIGH); | ||
+ | Serial.println("RECHTS"); | ||
+ | } | ||
+ | |||
for(int j=1;j<143;j++) { //Rechnerei mit dem Abstand und Durch- | for(int j=1;j<143;j++) { //Rechnerei mit dem Abstand und Durch- | ||
digitalWrite(step2, HIGH); //messer der Räder hat ergeben, dass der | digitalWrite(step2, HIGH); //messer der Räder hat ergeben, dass der | ||
Zeile 82: | Zeile 96: | ||
delay(10); | delay(10); | ||
} | } | ||
- | } | + | delay(100); |
+ | } | ||
} | } | ||
Zeile 99: | Zeile 113: | ||
cm = microsecondsToCentimeters(duration); | cm = microsecondsToCentimeters(duration); | ||
- | Serial.println(cm, DEC); | + | //Serial.println(cm, DEC); |
- | delay(100); | + | delay(10); |
} | } | ||