Da Du nur den Treiber nennst und nicht das Model des Schrittmotors kann ich Dir nicht sagen ob die beiden zusammenpassen. Außerdem wäre es auch wichtig zu wissen mit welcher Motorspannung Du den Treiber versorgst.
Nicht destotrotz glaube ich daß das Problem nicht dort liegt.
[IRONIK] Wenn das Programm paßt dann brauchst Du es ja nicht zeigen. :o :o :o [/IRONIK]
Also machst Du den Motor 1036 Schritte machen? Oder hast Du Microschritte eingestellt? Dann brauchst Du 2072, 4144, 8288, 16576, oder 33152 Schritte.
Bist Du sicher daß das Getriebe 1:5,18 ist?
[Belehrend] Du siehst sicher selbst daß ich Dir aus Mangel an Angaben nur bedingte Antworten geben kann. Wenn Du Motormodell und Sketch gepostet hättest, hätte ich Dir eine genauere Antwort geben können.[/Belehrend]
Wenn was nicht funktioniert kontrolliert man den Motor ohne den ganzen Firlefanz drumherum also einfach 1036 Steps rausgeben ohne diese irgendwie zu berechnen.
Da sieht man daß der Motor eine 360° Umdrehung macht.
Gib mal die Variable Stepps auf die serielle Schnittstelle aus und schaue was rauskommt.
wenn ich die Werte einsetze und berechne ergibt sich
1036/36022,5152^0 = 1036 (337,5/360) = 971,25
Da aber Arduino mit Int rechnet wenn man es ihm nicht anders sagt ergibt die Rechnung
1036/3602215*2^0 = 1036 * (330/360) = 949.
Das sind zwar nicht 25% weniger (3/4 Umdrehung) sondern weniger aber dennoch nicht 360°.
Dann noch eine große bitte VERGIß GOTO. In C brauchst Du es in 99,9% der Fälle nicht.
Also ich hab getestet der Denkfehler liegt bei.
//AH_EasyDriver(int RES, int DIR, int STEP, int MS1, int MS2, int SLP, int ENABLE, int RST);
AH_EasyDriver stepper1(1023,23,22,24,25,0,2,0); // init w/o "enable" and "reset" functions.
hier muss man 200 eintragen da der Motor ja 200 steps hat bei der Rechnung bleibt 1036 stehn und so funktioniets nun.
Jetzt verstehe ich nur nicht war der die Geschwindigkeit unter speed nicht drosselt sondern, wenn ich die zahl erhöhe mehrmals dreht??