Step motor, wo ist das Limit vom Controller?
Hallo alle zusammen, ich plane aktuell ein kleines Projekt in dem ich einen Step Motor verwenden möchte, um eine Kamera zu bewegen, mein Problem ist jetzt, dass ich nicht wirklich weiß, was mein Controller an Steps ausgeben können muss.
Meine Idee wäre gewesen, einen Nema 17 Step Motor mit 0,9° Steps, einen Arduino UNO oder Arduino Nano ESP32 und den Treiber DM320T zu nutzen.
Was ich mir gedacht habe: Ich will natürlich so wenig Vibrationen und Geräusche wie möglich haben (wenig Vibrationen am wichtigsten), also schonmal 0,9° Schritte, außerdem kann der DM320T bis zu 12800 Microsteps, sollte also sehr sanft drehen? Meine Frage ist jetzt, ob das so mit dem Arduino geht, glaube, der UNO kann nur 4000 Steps ansteuern und der ESP32 bis zu 50000 (wären also bei 400 full steps maximal 10/125 RPM, würde reichen). Wenn ich da jetzt full Steps benutze und den Treiber auf besagte 12800 Microsteps stelle, dann macht er die Bewegung "glatt", oder? Also formt denn eigentlich "harten" Step in eine Sinus Welle um?
Bitte mal sagen, ob das so passt, oder ob ich einen Denkfehler habe.
Und wie groß wäre der Vibrations Unterschied zu einem 1,8° Motor?
2 Antworten
wenn du dir gedanken machst wegen vibrationen...
es kommt drauf an wie du die kamera befestigst und der motor diesen bewegt..wenn du direkt mechanisch antreiben willst, wirst du "harte" steps auf der kamera auch bekommen..je feiner dein motor die steps anfährt, desto weicher wird es auch..
würd ic haber nicht machen..sondern eher über ein schneckengetriebe, wodurch du rein mechanisch deine auflösung bekommst..ausserdem auch sache der programmierung..an und abfahrrampe (beschleunigung / bremsen) sowie geschwindigkeit beeinflussen später die bewegung der kamera..
aber ein UNO sowie ein stepper wären völlig ausreichend..ein servo wäre hier auch ok.
Das ist eine Sache der Programmierung wie viele Steps die Funktion zählen kann. Technisch kann der Arduino unendlich viele Steps erzeugen.
Schrittmotoren brauchen viel Strom, auch wenn die "stehen". Man kann zwar den Strom abschalten, dann sind die aber recht leicht zu verdrehen und man verliert die Position.
Microsteps sind zwischenschritte wo der Schrittmotor zwischen zwei Stellungen gezwungen wird. Dabei verpufft ein großteil der Kraft die man mit Strom aufwendet. Man braucht also viel Strom und der Motor hat wenig Kraft seine Position zu halten.
Die Schritte setzen immer hart ein. Nur wenn sich der Motor relativ schnell dreht dann erzeugt die Schwungmasse eine relativ ruhige Bewegung.
Besser sind Servomotoren. Hier wird die Stellung der Achse mit einem Potentiometer gemessen und der Motor dann bei Abweichung nach links oder rechts eingeschaltet.
Richtig teure Modellbauservos für Flugmodelle können sehr sanft und Ruckfrei jede vorgegebene Stellung einnehmen. DIe kann man auch per Arduino ansteuern. Die können sich allerdings nicht rund drehen, also nur fast eine Drehung bsi die im Anschlag sind.
Man kann das aber selber bauen, einfach einen Getriebemotor verwenden und da einen Sensor der die Stellung der Achse misst. Bei Abweichung kann der Arduino den Motor dann selber steuern. Dazu kann man eine PWM benutzen so dass die Beschleunigung des Systems sehr sanft ist. Je größer die Getriebeübersetzung, desto sanfter läuft die Achse des Ausgangs, dafür sinkt die maximale Drehzahl die bei einer Kamera aber sowieso sehr niedrig sein sollte.
Die Auflösung, also wie fein man Stellungen unetrscheiden kann hängt dann natürlich vom Sensor ab.
https://www.amazon.de/Drehbarer-Hall-Sensor-0-360-Aufl%C3%B6sung-Vollkreis/dp/B07PFD816C/
Der hier kan 0,088°. Beachten muss man nur, dass der in einer bestimmten position bei sehr langsammer Umdrehung hin- und herspringen kann. Das muss man bei der Programmierung des Arduinos berücksichtigen.
Dann brauchst Du eine starke Übersetzung, denn fast 1° Sprünge bei niedriger Drehzahl werden sehr brummen. Da wird die Kamera zwar nicht holpern, aber sicher deutlich vibrieren. Die Microsteps verhindern die Sprünge nicht, die zwingen den Motor nur in Zwischenstellungen, in seine richtigen STellungen wird der immer noch mit gewalt rein springen wenn man den lässt.
Wenn Du eine konstante Drehzahl brauchst ist ein DC Motor viel besser. Den kannst Du mit einer PWM ansteuern und so die Drehzahl mit immer noch gutem Drehmoment einstellen. Mit einem Inkrementalgener kannst Du dann die Drehzahl überwachen.
Hier reichen dann wenige Pulse pro Umdrehung, also ein ganz billiger Geber. Hier misst Du mit einem Timer die Zeit und mit einem anderen Hardwaretimer zählst DU die Impulse. Durch simple MAthematik hast DU dann die Drehzahl und kannst damit dann die PWM regeln die den Motor dreht.
Das ist die mechanisch sauberste Lösung da Du ein konstantes Drehmoment hast statt sprunghaftem Drehmoment. Und wenn Du das gut programierst, also die Änderungen an der PWM langsam machst, dann hast Du auch eine Ruhige Kamerafahrt.
Hallo, schonmal vielen Dank für deine Antwort, denke aber immer noch das ein Step Motor die bessere Wahl wäre, da ich eine kontinuierlich (und präzise einstellbare) Bewegung brauche, der Motor müsste dauerhaft mit 10-30 RPM laufen (Motor muss über zwei Zahnräder eine Gewindestange drehen (schon per Hand probiert, geht gut)). Denke, mit 0,9° und Microsteping sollte diese Bewegung relativ ruckelfrei sein, oder? Stillstehen und halten muss der Motor bei mir jedoch nicht.
Als Spannung habe ich nur 20V, ist aber für den Step-Motor, an den ich gedacht habe, kein Problem.