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);
}