MiniMover5 Arduino+EasyDriver

Huhu,

ich bin ein absoluter Anfänger und hoffe hier auf ein par Antworten zu treffen :).
Ich versuche einen alten MiniMover5 wieder zum laufen zu bekommen.

Zum testen habe ich mir nun einen Arduino Uno R3 und einen EasyDriver bestellt.
Das ganze soll nach dieser Logik angesteuert werden:

Ich warte noch auf den EasyDriver, aber ich gehe mal davon aus, dass ich das gut angesteuert bekomme.
Falls das funktioniert, werde ich das ganze mit Insgesamt 6 Schrittmotoren machen.

Vorab stellen sich für mich aber noch ein par Grundsatz fragen:

  • Gibt es eine elegante Möglichkeit, die Schrittmotoren anzuhalten, sobald sie gegen einen Anschlag fahren?
  • bzw. wie würdet Ihr herangehen, um die Grenzen der jeweiligen Motoren zu bestimmen, bis wohin gefahren werden darf.

Hoffe ihr könnt mir ein wenig helfen :slight_smile:

Danke

Gibt es eine elegante Möglichkeit, die Schrittmotoren anzuhalten, sobald sie gegen einen Anschlag fahren?

Du könntest den Strom messen, der an die Motoren abgegeben wird. Wenn der auf das Maximum steigt, das am EasyDriver eingestellt ist, hast Du Vollast und somit wahrscheinlich einen Anschlag erreicht.

bzw. wie würdet Ihr herangehen, um die Grenzen der jeweiligen Motoren zu bestimmen, bis wohin gefahren werden darf.

Entweder mit der oben genannten Methode für die Anschlagserkennung oder indem Du Mikro-Endschalter einbaust.

Nein pylon, Schrittmotore verbrauchen nicht Strom in Funktion des abgegebenen Drehmoments wei andere Motoren. Der Stromverbrauch ist konstant. Wenn das mechanische Drehmoment der Last zu groß wird, dann bleiben sie einfach stehen und verlieren jegliche angesteuerten Schritte und auch jegliches Haltemoment.
Der A3967 im EasyDriver ist ein Microstep Treiber der den Motor mit Strom ansteuert. Die Schaltung funktioniert indem der A3967 den Strom im Schrittmotor begrenzt Das amcht er bei korekt dimensionierter Schaltung pratisch immer.

Die Möglichkeit um die Position zu bestimmen sind:
Bei schwächeren Motoren: sie bis zu Anschlag fahren zu lassen damit der Motor sich blockiert (es muß darum soviele Schritte angeteuert werden daß der Motor sicher an diesem Endwert ankommt).
Irgendwelche Sensoren (Endschalter, Gabellichtschranken, Reflexionslichtschranken, Magnetsensoren, Reedkontakt mit Magnet ecc) einbauen, damit eine Position erkannt wird und die Schritte in relation zu diesem Punkt ansteuern. Die Position muß nicht unbedingt eine Endlage sein. Wenn mechanisch eine andere Positione für den Einbau des Sensors geeigneter sind dann kann auch diese Position gewählt werden.

Grüße Uwe

Danke für eure Antworten!

Gibt es die Möglichkeit, den Schrittverlust zurück auf das Arduino- Board zu geben? Um das in der Programmierung berücksichtigen zu können?

KeRo

Die Schrittverluste kann man nicht direkt mitbekommen. Das merkt man dann erst, wenn der verfahrene Winkel bzw. die Strecke schlichtweg falsch sind. Daher kam auch bereits der Vorschlag, Mikrotaster an den Endanschlägen zu montieren. Wenn in regelmäßigen Abständen, bzw. zu Beginn jeder Aktion eine Referenzfahrt gegen die Endschalter gefahren wird, lassen sich so Fehler vermeiden.
Eine andere Möglichkeit wäre es, mit einem Rad-Encoder jede Achse zu überwachen. Wenn der mitgezählte Wert an diesem Sensor von der Anzahl der Schritte abweicht, gabs demnach einen Schittverlust.

Bei einem Schrittmotor ist unbedingt ein Schrittverlust zu vermeiden, da er in diesem Moment, außer daß er sich nicht bewegt auch keine Kraft mehr hat. Ein Drehmoment, daß auf dem Motor lastet (zb ein Hebelarm) macht ihn unkontrolliert drehen.
Die Mechanik und der Motor muß so bemessen sein, daß ein Schrittverlust NICHT eintritt. Das Drehmoment in Funktion der Schrittgeschwindigkeit hängt vom Motor und der Art der Ansteuerung (Strom oder Spanungssteuerung) bzw Beschleunigungskurve ab und geht mit der Drehzahl zurück. Das heißt bei hoher Geschwindigkeit hat der Motor weniger Kraft.

Für den Endpunkt ist es zulässig die gesamte Wegstrecke zu fahren um den Motor sicher am mechanischen Endpunkt zu stoppen. Dies wird zB in Diskettenlaufwerken allgemein gemacht um sich den Endschalter zu sparen.

Die bessere Alternative ist einen Positionssensor zu montieren.
Bei einem Schrittmotor ist es nicht notwendig oder sogar kontroproduktiv eine Positionsmessung durch einen Encoder bzw Potentiometer zu montieren da dies nur Kosten aber keinen Vorteil verschafft.

Grüße Uwe