Nein - es ist nicht möglich, die genaue Position eines Schrittmotors ohne zusätzliche Informationen (Eingänge) zu bestimmen. Wie Sie bemerkt haben, können Sie nur eine bestimmte Anzahl von Schritten verschieben, aber wenn Sie nicht wissen, wo Sie angefangen haben, werden Sie nicht wissen, wo Sie enden.
Dies wird normalerweise gelöst, indem ein anderer Eingang, normalerweise ein Endschalter, an einer bekannten Stelle verwendet wird, so dass der Schalter schließt, wenn sich der bewegliche Teil direkt über diesem Ort befindet. Wenn Sie das erste Mal starten, drehen Sie den Stepper, bis sich der Schalter schließt. An diesem Punkt kennen Sie den aktuellen Standort. Sobald Sie Ihre Ausgangsposition kalibriert haben, DANN können Sie Ihre genaue Position durch Zählen der Schritte bestimmen (vorausgesetzt, Ihr Motor rutscht nicht!)
Sie sehen dies oft mit Tintenstrahldruckern; Wenn Sie sie zum ersten Mal einschalten, wird der Druckkopf den ganzen Weg zu einer Seite gleiten (wo es fast sicher eine Art Detektor ist). Das ist der Drucker, der seinen Nullpunkt findet.
Einige Alternativen zu einem Schalter:
Wenn Sie einen Servomotor nicht volle Umdrehung benötigen, können Sie stattdessen verwenden. Diese DO haben eine interne Positionserfassung.
Eine andere Hack-Lösung mit einem Stepper wäre es, einen mechanischen Block an einer Extremität zu platzieren, der verhindert, dass der Mechanismus passiert. Dann drehen Sie den Stepper um eine volle Umdrehung in eine bestimmte Richtung. Du weißt, dass du irgendwann den Block getroffen hast und aufgehört hast. Das ist nicht großartig; Sie müssen darauf achten, dass durch das Einlaufen in den Anschlag nichts beschädigt oder etwas aus der Ausrichtung gerissen wird. Aufgrund der Beschaffenheit von Steppern kann Ihre Schrittzahl auch um bis zu 3 Schritte abweichen, so dass dies keine besonders hohe Präzision ist.
Ich stimme zu, diese Frage als off-topic zu schließen, weil es scheint, als wäre es besser für https://arduino.stackexchange.com/ – Stedy