Was hindert Dich daran, die 'neue Position' so umzurechnen, daß Du die Zwischenschritte weiter geben kannst?
Davon ab sollte Es egal sein, ob die Accel-Stepper die Pulse generiert, oder Du mit digitalWrite - am Pin kommt genau das Gleiche raus - erst der Treiber macht daraus ein harmonisch klingendes Lied im Stepper.
Vll. gefallen Dir auch die MoBaTools - auch dort ist es möglich, absolut oder relativ zu verfahren.
Sind auch aus der IDE heraus installierbar.
MfG
PS: Sketch nicht angeschaut, sehe das Problem noch 'wo anders'
also es geht ja darum dass es mehrere Positionen geben wird die unterschiedlich angefahren werden,
also einmal soll von Position 1 zu 3 gefahren werden und dann zu 6
und ein ander mal dann von 2 nach 7 nach 8.
Ich dachte es gibt vielleicht eine möglichkeit die Positionen festzulegen und dann nurnoch zu sagen fahr von dem einen zum anderen. sodass das Programm selbst die schritte die vom einen Punkt zum anderen notwendig sind heraus subtrahiert.
also sagt punkt 1 ist bei 1000 Punkt 2 bei 3000 also muss ich 2000 zurücklegen.
Die Positionen kannst Du doch in einem Array festlegen.
uint32_t positionen[] = {1000, 3000, 17000, 333, 796,}; //wenn 'fest' gerne auch const voran stellen
const byte posanz = sizeof(positionen) / sizeof(positionen[0]);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
for (byte a = 0; a < posanz; a++) {
Serial.print("Position ");
Serial.print(a);
Serial.print(':');
Serial.println(positionen[a]);
}
}
void loop() {
// put your main code here, to run repeatedly:
}
Der Sketch verwendet 1792 Bytes (5%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 218 Bytes (10%) des dynamischen Speichers, 1830 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
(Uno/Nano)
okay bin noch ein Anfänger und kenne nicht alle Möglichkeiten die es gibt.
ich schaue mir mal mehr zu den Arrays an, da ich aus dem code direkt nicht so schlau werde
vielen dank
Der Sketch soll auch nur die in dem Array eingetragenen Zahlen im Terminal ausgeben.
Da alle Elemente des Array über den Index angesprochen werden (0...Anzahl - 1), kannst Du so einfach in Deinem Sketch nur die Punkte durchzählen, die Werte, wohin die Reise gehen soll, bekommen wir aus dem Array.
Diese Werte musst Du nur noch als Ziel-Punkt festlegen, wenn Du zum Nächsten willst.
Den Rest machen dann die Libs - Die Du, natürlich, in Deren Sinne auch befehligen musst.
Bei absoluten Zielen wird Dir ein relativer Fahrbefehl nicht viel bringen.
(geht auch, mit umrechnen mit der aktuellen Position, aber wofür haben die Libs die Möglichkeit, das Ziel absolut anzugeben? Dann kann auch Die selber rechnen)