Drehscheibe Modellbahn mit RF24

Dmit hast du Recht. Das mit den Klammern (), und Semikolons hab ich auch noch nicht begriffen. Habt ihr da nen Tip wo das verständlich erklärt wird?

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


int messungPin1 = HIGH;
int messungPin1Alt = HIGH;
byte encoderWert = 0; // -1 ( eins weniger als 0 ) == 255
const byte hal = 3;
const byte encoderPinA = 10;            // Phase A vom Drehencoder
const byte encoderPinB = 11;             // Phase B vom Drehencoder
const byte tasterEnter = 12;                   // Pin an dem der Encoder Taster angeschlossen ist
int wertSpeichern = 0;                  // gespeicherter Encoderwert
int encoderGedrueckt = 0;              // Statusspeicher ob Encodertaster betätigt wurde
int encoderTaster = HIGH;             // Taster im Encoder
int gleisAlt = 0;                     // Scheibe Position alt
int gleisNeu = 0;                     // Position welche die Scheibe anfahren soll
bool enter = false;                   // Bestätigung das der Encoder gedrückt wurde
int schritte =0;                      // Schritte die deer Motor (Hallsensor betätigt) zurücklegen muss

unsigned long encoderDruckzeit;       // Zeit wann der Encodertaster betätigt wurde
unsigned long entprellZeit = 200;     // Zeit die nach der betätigung eines Tasters gewartet wird


 void setup() { 
 pinMode(encoderPinA, INPUT);
 pinMode(encoderPinB, INPUT);
 pinMode(tasterEnter, INPUT);
 pinMode(hal, INPUT);
 Serial.begin(9600);
 lcd.begin(16, 2);
 lcd.setCursor(0, 0);
 lcd.print("Encoder");
 lcd.setCursor(0, 1);
 lcd.print("Test");
 delay (2000);
 lcd.clear();
 lcd.begin(16, 2);
 lcd.setCursor(0, 0);
 lcd.print("Wert");
 lcd.setCursor(0, 1);
 lcd.print(encoderWert);
 } 

 void loop() {
 
 messungPin1 = digitalRead(encoderPinA);
 if ((messungPin1 == LOW) && (messungPin1Alt == HIGH)) {
 if (digitalRead(encoderPinB) == HIGH) {
 if (encoderWert < 24) encoderWert++ ;
} else {
 if (encoderWert > 1) encoderWert-- ;

  }
 
 lcd.begin(16, 2);
 lcd.setCursor(0, 0);
 lcd.print("Wert");
 lcd.setCursor(0, 1);
 lcd.print(encoderWert);
 
 }

 {
  encoderTaster = digitalRead(tasterEnter);
  if (encoderTaster == LOW)
  {
    encoderDruckzeit = millis();
    encoderGedrueckt = 1;
  }

  if ((millis() - encoderDruckzeit > entprellZeit) && encoderGedrueckt ==1) {
    
    
    wertSpeichern = encoderWert;
    Serial.println(wertSpeichern);
    encoderGedrueckt=0;
    enter = true;
  }

if (enter == true) {
  gleisNeu = wertSpeichern;
  schritte = gleisNeu - gleisAlt;
  Serial.print ("benoetigte Schritte  ");
  Serial.println(schritte);
  //gleisAlt = wertSpeichern;
  Serial.println(gleisNeu);
  Serial.println(gleisAlt);
  Serial.println(enter);
}  


  if ((gleisNeu != gleisAlt) && (enter == true)) {
    while (schritte !=0) {
    if (digitalRead (hal) == LOW);{
    schritte--;
    Serial.println("Schritte");
    Serial.println(schritte);
    delay(2000);
    enter = false;
    gleisAlt = wertSpeichern;
    }
    
  }
  }
   
   
    
  
//if ((schritte >12)&& (enter== true)) {
 // Serial.println("rechts");
  //enter = false;
}
//  else {
   // Serial.println("links"); 
    //enter = false;
//}
//}

  
 
 
 messungPin1Alt = messungPin1;

 
  }

Hab den Code noch mal bearbeitet.