Hallo kann mir jemand weiterhelfen? Unterm Code steht die genaue Fehlerbeschreibung

Danke für eure Tipps. Komme trotzdem nicht weiter. Habe jetzt mal die überflüssigen Sachen aus dem Sketch entfernt und mit einer switch case gearbeitet. Ich hoffe so habt ihr das gemeint??? Leider funktioniert es trotzdem nicht wie erwünscht.

Die Achsen einzeln funktionieren.

Problem ist wie folgt.

(links Kurve) ich komme über den wert Unterschied 3 aus der Y Achse
spingt das Relais von links hoch auf links runter um das darf nicht sein. Es soll links oben an bleiben.

Bei der rechts Kurve besteht das selbe Problem (rechts hoch springt auf rechts runter)um.
kann man das irgendwie abändern?

#include <MPU6050_tockn.h>
#include <Wire.h>
//MPU6050 mpu6050(Wire);
MPU6050 mpu6050(Wire, 0.5, 0.5);
#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif


U8G2_SH1106_128X64_NONAME_2_HW_I2C Display(U8G2_R0, U8X8_PIN_NONE);

float accelerationX = 0;
float accelerationY = 0;
float accelerationZ = 0;

float lastSentAccelerationX = 0;
float lastSentAccelerationY = 0;
float lastSentAccelerationZ = 0;

int xJetztPos = 0;
int yJetztPos = 0;  //float gehts mit kommastelle
float angleZ = 0;

float lastSentAngleX = 0;
float lastSentAngleY = 0;
float lastSentAngleZ = 0;

int Taster_rechts_hoch = 6;
int Taster_rechts_runter = 3;
int Taster_links_hoch = 5;
int Taster_links_runter = 4;

int End_rechts_hoch = 8;
int End_rechts_runter = 7;
int End_links_hoch = 14;
int End_links_runter = 15;
int Wert;
int Endschalter1;
int Endschalter2;
int Endschalter3;
int Endschalter4;

const int Progammschalter = 16;
#define PIN_CALIBRATION_MPU6050 22  // when D10 is LOW with a switch on GND. MPU6050 NOT calibrating on start up \
                                    // the INPUT_PULLUP is going to activated later
#define MPU6050_GET_DATA_EVERY 10   // request data from sensor every 400ms
unsigned long mpu6050Timer = millis();

int unterschied10 = 0;
int unterschied1 = 6;   // links Kurve fängt an zu steuern
int unterschied2 = 6;   // rechts Kurve fängt an zu steuern
int unterschied3 = 14;  //  BUG runter drücken Platten gehen runter
int unterschied9 = 7;   //hier gehen die platten aus Gleitfahrt

const int Rechts_runter = 12;
const int Rechts_hoch = 11;
const int Links_runter = 9;
const int Links_hoch = 10;

bool rechts_hoch_aktiv = false;
bool rechts_runter_aktiv = false;
bool links_hoch_aktiv = false;
bool links_runter_aktiv = false;

void setup() {

  Display.setI2CAddress(0x78);
  Display.setFont(u8g2_font_profont15_tf);  // 7x14_tf verändert die Schriftgröße und Schreibweise

  Display.begin();

  delay(200);

  pinMode(Rechts_runter, OUTPUT);
  pinMode(Rechts_hoch, OUTPUT);
  pinMode(Links_runter, OUTPUT);
  pinMode(Links_hoch, OUTPUT);

  pinMode(End_rechts_hoch, INPUT_PULLUP);
  pinMode(End_rechts_runter, INPUT_PULLUP);
  pinMode(End_links_hoch, INPUT_PULLUP);
  pinMode(End_links_runter, INPUT_PULLUP);

  pinMode(Taster_rechts_hoch, INPUT_PULLUP);    //schaltet - ohne Pullup schaltet +
  pinMode(Taster_rechts_runter, INPUT_PULLUP);  //schaltet - ohne Pullup schaltet +
  pinMode(Taster_links_hoch, INPUT_PULLUP);     //schaltet - ohne Pullup schaltet +
  pinMode(Taster_links_runter, INPUT_PULLUP);   //schaltet - ohne Pullup schaltet +
  pinMode(Progammschalter, INPUT_PULLUP);


  digitalWrite(Rechts_runter, HIGH);
  digitalWrite(Rechts_hoch, HIGH);
  digitalWrite(Links_runter, HIGH);
  digitalWrite(Links_hoch, HIGH);




  Serial.begin(9600);
  pinMode(PIN_CALIBRATION_MPU6050, INPUT_PULLUP);
  Wire.begin();
  mpu6050.begin();

  if (digitalRead(PIN_CALIBRATION_MPU6050) == HIGH) {
    mpu6050.calcGyroOffsets(true);
  }
}

void loop() {
  //if (digitalRead(Progammschalter)==0 && digitalRead(Progammschalter)==0) loop01();
  if (digitalRead(Progammschalter) == 1 && digitalRead(Progammschalter) == 1) loop00();
}

void loop00()  //mit Automatische Nachstellung
{



  if ((millis() - mpu6050Timer) > MPU6050_GET_DATA_EVERY) {
    mpu6050.update();

    if ((millis() - mpu6050Timer) > (MPU6050_GET_DATA_EVERY + 10)) {
      accelerationX = mpu6050.getAccX();
      accelerationY = mpu6050.getAccY();
      accelerationZ = mpu6050.getAccZ();

      xJetztPos = mpu6050.getAngleX();
      yJetztPos = mpu6050.getAngleY();
      angleZ = mpu6050.getAngleZ();

      mpu6050Timer = millis();

      //mpu6050.update();
      Serial.print("seitliche Bewegung: ");
      Serial.print(xJetztPos);
      Serial.print("   Bug hoch: ");
      Serial.print(yJetztPos);
      Serial.print("   tangleZ: ");
      Serial.println();
    }
  }



 

  switch (xJetztPos < -(unterschied1)) {  // Links Kurve
    case 1:
      digitalWrite(Rechts_runter, LOW);
      digitalWrite(Links_hoch, LOW);

      break;
  }

  switch (xJetztPos > -(unterschied9)) {
    case 1:
      digitalWrite(Rechts_runter, HIGH);

      break;
  }
  switch (xJetztPos > -(unterschied10)) {
case1:

    digitalWrite(Links_hoch, HIGH);

    break;
  }



  switch (xJetztPos > +(unterschied2)) {  // rechts Kurve
    case 1:
      digitalWrite(Rechts_hoch, LOW);
      digitalWrite(Links_runter, LOW);

      break;
  }
  switch (xJetztPos < +(unterschied3)) {
    case 1:
      digitalWrite(Links_runter, HIGH);

      break;
  }
  switch (xJetztPos < +(unterschied10)) {
    case 1:

      digitalWrite(Rechts_hoch, HIGH);

      break;
  }






  switch (yJetztPos < -(unterschied3)) {  // Bug runter drücken Platten gehen runter
    case 1:
      digitalWrite(Rechts_runter, LOW);
      digitalWrite(Links_runter, LOW);
      digitalWrite(Rechts_hoch, HIGH);
      digitalWrite(Links_hoch, HIGH);
      break;
  }
  switch (yJetztPos > -(unterschied3)) {  // Platten gehen hoch
    case 1:
      digitalWrite(Rechts_runter, HIGH);
      digitalWrite(Links_runter, HIGH);
      digitalWrite(Rechts_hoch, LOW);
      digitalWrite(Links_hoch, LOW);
      break;
  }
  switch (yJetztPos > -(unterschied9)) {  // Gleitfahrt
    case 1:
      digitalWrite(Rechts_runter, HIGH);
      digitalWrite(Links_runter, HIGH);
      digitalWrite(Rechts_hoch, HIGH);
      digitalWrite(Links_hoch, HIGH);
      break;
  }
}