Drehscheibe Modellbahn mit RF24

Hallo alle zusammen,

von 4 nach 24 wird immer die Falsche Richtung genommen?
Woran könnte das liegen?

const byte schritte_max = 48;   //Anzahl an möglichen Anschlußpunkten

byte von;                       //Ausgangsgleis
byte nach;                      //Zielgleis

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  von = random(schritte_max) + 1;   //von und bis 'auswürfeln'
  nach = random(schritte_max) + 1;

  Serial.print("Von ");       // Von 1
  Serial.print(von);
  Serial.print(" nach ");     // nach 12
  Serial.println(nach);

  byte schritte_a = abs(nach - von);
  Serial.print("Entfernung in Drehrichtung links 1-");
  Serial.print(schritte_max );
  Serial.print(" nicht ueber 0 =");  //Entfernung ohne 1-47 Wechsel 11
  Serial.print(schritte_a);
  Serial.println(" Schritte");
 
  byte schritte_b = schritte_max - schritte_a;
  Serial.print("Entfernung in Drehrichtung rechts 1-");
  Serial.print(schritte_max );
  Serial.print(" ueber 0 =");   //Entfernung mit 1-47 Wechsel 37
  Serial.print(schritte_b);
  Serial.println(" Schritte");
  //wenn schritte_a<schritte_b && von<nach, dann 'rechts' drehend ... 1->12
  //wenn schritte_a<schritte_b && von>nach, dann 'links' drehend  ... 12->1
  //wenn schritte_a>schritte_b && von<nach, dann 'links' drehend  ... 1->48
  //wenn schritte_a>schritte_b && von>nach, dann 'rechts' drehend  ... 48->1
  if (schritte_a) {
    if (schritte_a < schritte_b) { //jedes der Statements kann nur wahr oder falsch sein
      Serial.println("gewählte Drehrichtung links");   // wenn nur Eines wahr ist
    Serial.println(" ");
    } else {
      Serial.println("gewählte Drehrichtung rechts");  // wenn Keines oder Beide wahr sind
    Serial.println(" ");
    }
  } else {
    Serial.println("identisches Gleis");
    Serial.println(" ");
  }
  delay(1000);
}