Wieso wie macht das dann einen Unterschied ? Ich hab erfreuliche Ergebnisse, alles funktioniert soweit hin sehr gut .
Teaching Modus, Positionen Speed Delay Tool werden in einem Array[][] gespeichert .
Automatik Modus,alle Werte werden richtig zugeordnet und werden in eine For schleife abgefahren .
Jetzt wäre mir noch sehr wichtig das Delay ab dem Zeitpunkt beginnt zu laufen wenn alle Schrittmotoren stehen.
Daher habe ich eine If abfrage am schlussDie soll mir einen Wert liefern der im Betrieb die While schleife schließt -->int Stepper_routine()
{
Stepper0.moveTo(Position[Pos_Display][0]);
Stepper1.moveTo(Position[Pos_Display][1]);
Stepper2.moveTo(Position[Pos_Display][2]);
Stepper3.moveTo(Position[Pos_Display][3]);
Stepper0.setSpeed(Position[Pos_Display][7]*100);
Stepper1.setSpeed(Position[Pos_Display][7]*100);
Stepper2.setSpeed(Position[Pos_Display][7]*100);
Stepper3.setSpeed(Position[Pos_Display][7]*100);
Stepper0.runSpeed();
Stepper1.runSpeed();
Stepper2.runSpeed();
Stepper3.runSpeed();
if ( Stepper0.runSpeed = 0 | Stepper1.runSpeed = 0 | Stepper2.runSpeed = 0 | Stepper3.runSpeed = 0){
return 1;
}else {
return 0;
}
}Leider läuft er jetzt nicht an , ich muss irgendwie davor in die schleife kommen ... nach 2 stunden bin ich nicht auf dem Fehler gekommen -.- . Gruß Dominikvoid Automatik()
{
static int PosWork = 0;
if (digitalRead(Taster1) == HIGH)
{
for (Pos_Display = 1; Pos_Display <= 5; Pos_Display++)
{
while (PosWork)
{
PosWork = Stepper_routine();
lcd.setCursor(5, 3); // Display Ausgabe
lcd.print(Position[Pos_Display][5]) ;
lcd.setCursor(14, 3);
lcd.print(Position[Pos_Display][4]);
lcd.setCursor(6, 2) ;
lcd.print(Position[Pos_Display][7]);
lcd.setCursor(16, 2);
lcd.print(Position[Pos_Display][6]);
delay(Position[Pos_Display][6] * 1000);
}
}
}
}
Lesezeichen