Servos steuern-Code Frage

Vielleicht stehe ich auf dem Schlauch, aber warum ist das dann immer false?
Ich dachte, die Schleife bricht ab, sobald die Abbruchbedingung true ist... :frowning:
wenn dem so wäre, würde die Schleife von pos=90 bis zur abbruchbedingung pos=45 gehen...und der code danach einfach weiterlaufen...
Hier ist aber mal der komplette Sketch:

#include <Servo.h> 

Servo s1; //1Longditude;
Servo s2; //1Altitude;
Servo s3; //1Footup;
Servo s4; //1Footdown;

Servo s5; //2Longditude;
Servo s6; //2Altitude;
Servo s7; //2Footup;
Servo s8; //2Footdown;

Servo s9; //3Longditude;
Servo s10; //3Altitude;
Servo s11; //3Footup;
Servo s12; //3Footdown;

Servo s13; //4Longditude;
Servo s14; //4Altitude;
Servo s15; //4Footup;
Servo s16; //4Footdown;

Servo s17; //5Longditude;
Servo s18; //5Altitude;
Servo s19; //5Footup;
Servo s20; //5Footdown;

Servo s21; //6Longditude;
Servo s22; //6Altitude;
Servo s23; //6Footup;
Servo s24; //6Footdown;

int pos1 = 45; //Leg1
int pos2 = 90;
int pos3 = 90;
int pos4 = 90;
int pos5 = 135; //Leg2
int pos6 = 90;
int pos7 = 90;
int pos8 = 90;
int pos9 = 45; //Leg3
int pos10= 90;
int pos11= 90;
int pos12= 90;
int pos13= 135; //Leg4
int pos14= 90;
int pos15= 90;
int pos16= 90;
int pos17= 45; //Leg5
int pos18= 90;
int pos19= 90;
int pos20= 90;
int pos21= 135; //Leg6
int pos22= 90;
int pos23= 90;
int pos24= 90;


void setup() 
{ 
  s1.attach(1); //Leg1
  s2.attach(2);
  s3.attach(3);
  s4.attach(4);
  s5.attach(5); //Leg2
  s6.attach(6);
  s7.attach(7);
  s8.attach(8);
  s9.attach(9); //Leg3
  s10.attach(10);
  s11.attach(11);
  s12.attach(12);
  s13.attach(13); //Leg4
  s14.attach(14);
  s15.attach(15);
  s16.attach(16);
  s17.attach(17); //Leg5
  s18.attach(18);
  s19.attach(19);
  s20.attach(20);
  s21.attach(21); //Leg6
  s22.attach(22);
  s23.attach(23);
  s24.attach(24);
}
void loop() {

 s1.write(pos1); //Leg1
 s2.write(pos2);
 s3.write(pos3);
 s4.write(pos4);
 s5.write(pos5); //Leg2
 s6.write(pos6);
 s7.write(pos7);
 s8.write(pos8);
 s9.write(pos9); //Leg3
 s10.write(pos10);
 s11.write(pos11);
 s12.write(pos12);
 s13.write(pos13); //Leg4
 s14.write(pos14);
 s15.write(pos15);
 s16.write(pos16);
 s17.write(pos17); //Leg5
 s18.write(pos18);
 s19.write(pos19);
 s20.write(pos20);
 s21.write(pos21); //Leg6
 s22.write(pos22);
 s23.write(pos23);
 s24.write(pos24);
 delay(50);
 
Instructor:
int upsidedown = 1;                          //für Forum: nicht wundern, ist noch nicht fertig, :)

Modus1:          //Vorwärts
if (upsidedown =1){
  
 for ( pos2= 90; pos2 == 45; pos2 -= 1){ //Leg1
  pos1 += 1;
  pos3 -= 1;
  s1.write(pos1);
  s2.write(pos2);
  s3.write(pos3);
  delay(50);}
 for ( pos2= 45; pos2 == 90; pos2 += 1){
  pos1 += 1;
  pos3 += 1;
  s1.write(pos1);
  s2.write(pos2);
  s3.write(pos3);
  delay(50);}

  
 for ( pos6= 90; pos6 == 135; pos6 += 1){ //Leg2
  pos5 -= 1;
  pos7 += 1;
  s5.write(pos5);
  s6.write(pos6);
  s7.write(pos7);
  delay(50);}
 for ( pos6= 135; pos6 == 90; pos6 -= 1){
  pos5 -= 1;
  pos7 -= 1;
  s5.write(pos5);
  s6.write(pos6);
  s7.write(pos7);
  delay(50);}
  
  
 for ( pos10= 90; pos10 == 45; pos10 -= 1){ //Leg3
  pos9 += 1;
  pos11 -= 1;
  s9.write(pos9);
  s10.write(pos10);
  s11.write(pos11);
  delay(50);}
 for ( pos10= 45; pos10 == 90; pos10 += 1){
  pos9 += 1;
  pos11 += 1;
  s9.write(pos9);
  s10.write(pos10);
  s11.write(pos11);
  delay(50);}
  
  
 for ( pos14= 90; pos14 == 135; pos14 += 1){ //Leg4
  pos13 -= 1;
  pos15 += 1;
  s13.write(pos13);
  s14.write(pos14);
  s15.write(pos15);
  delay(50);}
 for ( pos14= 135; pos14 == 90; pos14 -= 1){
  pos13 -= 1;
  pos15 -= 1;
  s13.write(pos13);
  s14.write(pos14);
  s15.write(pos15);
  delay(50);}
  
  
 for ( pos18= 90; pos18 == 45; pos18 -= 1){ //Leg5
  pos17 += 1;
  pos19 -= 1;
  s17.write(pos17);
  s18.write(pos18);
  s19.write(pos19);
  delay(50);}
 for ( pos18= 45; pos18 == 90; pos18 += 1){
  pos17 += 1;
  pos19 += 1;
  s17.write(pos17);
  s18.write(pos18);
  s19.write(pos19);
  delay(50);}
  
  
 for ( pos22= 90; pos22 == 135; pos22 += 1){ //Leg6
  pos21 -= 1;
  pos23 += 1;
  s21.write(pos21);
  s22.write(pos22);
  s23.write(pos23);
  delay(50);}
 for ( pos22= 135; pos22 == 90; pos22 -= 1){
  pos21 -= 1;
  pos23 -= 1;
  s21.write(pos21);
  s22.write(pos22);
  s23.write(pos23);
  delay(50);}
  
  int pos1 = 135;
  int pos5 = 45;
  int pos9 = 135;
  int pos13 = 45;
  int pos17 = 135;
  int pos21 = 45;

 for ( pos22= 90; pos1 == 135; pos22 += 0){ //Movement
  pos1  += 1;
  pos5  -= 1;
  pos9  += 1;
  pos13 -= 1;
  pos17 += 1;
  pos21 -= 1;
  s1.write(pos1);
  s5.write(pos5);
  s9.write(pos9);
  s13.write(pos13);
  s17.write(pos17);
  s21.write(pos21);  
  delay(50);}


{ goto Instructor; }}
else{
  
 for ( pos2= 90; pos2 == 135; pos2 += 1){ //Leg1
  pos1 += 1;
  pos4 -= 1;
  s1.write(pos1);
  s2.write(pos2);
  s4.write(pos4);
  delay(50);}
 for ( pos2= 45; pos2 == 90; pos2 -= 1){
  pos1 += 1;
  pos4 += 1;
  s1.write(pos1);
  s2.write(pos2);
  s4.write(pos4);
  delay(50);}
  
  
 for ( pos6= 90; pos6 == 45; pos6 -= 1){ //Leg2
  pos5 -= 1;
  pos8 += 1;
  s5.write(pos5);
  s6.write(pos6);
  s8.write(pos8);
  delay(50);}
 for ( pos6= 135; pos6 == 90; pos6 += 1){
  pos5 -= 1;
  pos8 -= 1;
  s5.write(pos5);
  s6.write(pos6);
  s8.write(pos8);
  delay(50);}
  
  
 for ( pos10= 90; pos10 == 135; pos10 += 1){ //Leg3
  pos9 += 1;
  pos12 -= 1;
  s9.write(pos9);
  s10.write(pos10);
  s12.write(pos12);
  delay(50);}
 for ( pos10= 45; pos10 == 90; pos10 -= 1){
  pos9 += 1;
  pos12 += 1;
  s9.write(pos9);
  s10.write(pos10);
  s12.write(pos12);
  delay(50);}
  
  
 for ( pos14= 90; pos14 == 45; pos14 -= 1){ //Leg4
  pos13 -= 1;
  pos16 += 1;
  s13.write(pos13);
  s14.write(pos14);
  s16.write(pos16);
  delay(50);}
 for ( pos14= 135; pos14 == 90; pos14 += 1){
  pos13 -= 1;
  pos16 -= 1;
  s13.write(pos13);
  s14.write(pos14);
  s16.write(pos16);
  delay(50);}
  
  
 for ( pos18= 90; pos18 == 135; pos18 += 1){ //Leg5
  pos17 += 1;
  pos20 -= 1;
  s17.write(pos17);
  s18.write(pos18);
  s20.write(pos20);
  delay(50);}
 for ( pos18= 45; pos18 == 90; pos18 -= 1){
  pos17 += 1;
  pos20 += 1;
  s17.write(pos17);
  s18.write(pos18);
  s20.write(pos20);
  delay(50);}
  
  
 for ( pos22= 90; pos22 == 45; pos22 -= 1){ //Leg6
  pos21 -= 1;
  pos24 += 1;
  s21.write(pos21);
  s22.write(pos22);
  s24.write(pos24);
  delay(50);}
 for ( pos22= 135; pos22 == 90; pos22 -= 1){
  pos21 -= 1;
  pos24 -= 1;
  s21.write(pos21);
  s22.write(pos22);
  s24.write(pos24);
  delay(50);}

  int pos1 = 135;
  int pos5 = 45;
  int pos9 = 135;
  int pos13 = 45;
  int pos17 = 135;
  int pos21 = 45;

 for ( pos22= 135; pos1 == 135; pos22 += 0){ //Movement
  pos1  += 1;
  pos5  -= 1;
  pos9  += 1;
  pos13 -= 1;
  pos17 += 1;
  pos21 -= 1;
  s1.write(pos1);
  s5.write(pos5);
  s9.write(pos9);
  s13.write(pos13);
  s17.write(pos17);
  s21.write(pos21);  
  delay(50);}


{ goto Instructor; }}

Modus2:          //Rückwärts
Modus3:          //Vorwärtslinks
Modus4:          //Vorwärtsrechts
Modus5:          //Rückwärtsrechts
Modus6:          //Rückwärtslinks
Modus7:          //Schwimmenvorwärts
Modus8:          //Schwimmenrückwärts
Modus9:          //Schwimmenlinks
Modus10:          //Schwimmenrechts
Modus11:          //Schwimmenup
Modus12:          //Schwimmendown
Modus13:          //Wandeckeinnenvorwärts
Modus14:          //Wandeckeaussenvorwärts
Modus15:          //Wandeckeinnenrückwärts
Modus16:          //Wandeckeaussenrückwärts
;}

Gruß Intrepit

Edit:
Nachtrag: Hab mich verlesen, die 2Bedingung muss tatsächlich false sein, ich werde alle == also durch != ersetzten..
Danke für den Hinweis, Mario! :slight_smile:

Roboter.ino (6.85 KB)