Pages: [1]   Go Down
Author Topic: MiniMover5 Arduino+EasyDriver  (Read 683 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Huhu,

ich bin ein absoluter Anfänger und hoffe hier auf ein par Antworten zu treffen smiley.
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 smiley

Danke
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 112
Posts: 5286
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.

Quote
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.
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: February 08, 2013, 03:09:22 pm by uwefed » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Germany
Offline Offline
Edison Member
*
Karma: 48
Posts: 2346
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: February 09, 2013, 05:55:30 am by uwefed » Logged

Pages: [1]   Go Up
Jump to: