Forum: Projekte & Code Spielerei mit einem 5-Phasen-Schrittmotor


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

Lesenswert?

Moin,
für meine 5-Phasen Schrittmotore (u. A. RDM 596/50 von Berger Lahr) 
hatte ich keine Treiber. Eine Ansteuerung habe ich gebaut und möchte 
diese gerne vorstellen. Ein Bastelfreundlicher ATmega 1284P erzeugt 
Steuersignale für die Treiberstufe. Die Auswahl der Bauteile wurde 
weitgehend durch meinen Bastelvorrat bestimmt, um möglichst wenig kaufen 
zu müssen. Der Motor sollte mit 10-80V betrieben werden können und 
genügend Strom erhalten. Ich habe einiges ausprobiert und wieder 
verworfen, bis ich mich für diese Variante entschieden habe. Nach 
einigen V40-Fehlern läuft der Motor mit der Schaltung ganz gut. Das 
Programm ist in Assembler geschrieben.
Gebaut mit einem alten Pollin Atmel-Evaluations-Board mit „frei 
fliegendem Aufbau“. Testweise habe ich auch eine kleine hier erworbene 
Platine und einem günstigen DEBO USB TTL Wandler von Reichelt gebraucht. 
Auch, wenn ich keine Fehler mehr gefunden habe, ist das Programm sicher 
nicht fehlerfrei. Der Motor läuft sehr ruhig, weshalb ich mir überlege, 
ihn in meinem selbstbau XY-Tisch einzubauen.
Gruß
 Carsten

von Joachim M. (jmlaser)


Lesenswert?

Hallo,

Interessant, zumal ich auch noch eine Kiste 5-Phasen-Motoren hier liegen 
habe.
Ein paar Sachen habe ich da jetzt allerdings nicht kapiert:

In den Diagrammen zur Bestromung verwendest Du die Symbole Plus , Minus 
und einen fetten Punkt.
Die nicht gekennzeichneten Anschlüsse sind im jeweiligen 
Bestromungsschritt hochohmig, also beide Transistoren gesperrt, vermute 
ich mal.
Der Anschluss mit dem Punkt liegt dann gegen GND geschaltet?
Der Anschluss mit dem Plus an Vcc bzw. an die PWM.
Aber woher kommt das Minus-Symbol? Ich sehe in Deiner Schaltung keine 
negative Spannung.
Wird die Stromrichtung nicht dadurch umgekehrt, dass die Anschlüsse 
zuvor an GND jetzt an + liegen und die zuvor an Plus jetzt an GND?

Du schreibst, es soll mit einem Netzteil mit Konstantstrom versorgt 
werden oder mit Vorwiderständen.
Vorwiderstände pro Wicklung zum Begrenzen des Maximalstroms ist klar. 
Aber wie willst Du das mit der Strombegrenzung eines Netzteils machen?
Das würde ja nur funktionieren, wenn immer exakt gleich viele Phasen 
gleich hoch bestromt sind.

Wie gesagt, interessant aber leider sehr verwirrend.

Und was ist ein "V40-Fehler"?

Gruß

von Michael B. (laberkopp)


Lesenswert?

Carsten-Peter C. schrieb:
> Eine Ansteuerung habe ich gebaut und möchte diese gerne vorstellen

Sehr kurioses Ding.

Neben der Schrittmotorversorgungsspannung (20-80V) und 
Mikrocontrollerversorgung (5V) auch noch 5 bipolare voneinander 
galvanisch unabhängige Versorgungsspannungen a +/-12V für die 
Treiberstufen, dazu wird von Stromregelung geredet aber dann der 
Motorstrom insgesamt strombegrenzt, das bringt natürlich keinerlei 
Drehzahlsteigerung gegenüber Konstantspannungsbetrieb, ein als 
'bastlerfreundluch' angesehener 44 pin uC von dem dann 23 pins nicht 
verwendet werden.

Das mag für dich

Carsten-Peter C. schrieb:
> weitgehend durch meinen Bastelvorrat bestimmt

die richtige Lösung sein, als Nachbauvorschlag aber weitgehend 
ungeeignet.

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/873370/stepper-motor-5-phase

Man kann die Motoren auch ganz ohne uC mit einem 10 bit 
vorwärts/rückwärts Schieberegister steuern.

von Carsten-Peter C. (carsten-p)


Lesenswert?

Hallo Joachim,
Der Motor kann in 3 verschiedenen Betriebsarten laufen. Die roten Punkte 
bedeuten, das die gerade nach + gezogen werden. Alle anderen werden nach 
– gezogen. Der rote Punkte neben + oder – ist der Bezugspunkt für die 8 
Bit-PWM. Schauen wir uns mal oben links MPa: und MPb: an.
  Den PWM-Wert von B_Phase lesen
  Die Schrittweite abziehen und zurückschreiben, wenn kein Übertrag 
auftritt.
  Bei einem Übertrag auf den Bezugspunkt  A_Phase wechseln und 2 
PWM-Werte neu schreiben.

Die Laufrichtung wird errechnet und der Port C Pin 6 dementsprechend 
gesetzt.

MPa:          ;links:  +PWM1 Ü= -PWM2  // rechts: -PWM1 Ü= +PWM5
;  links  rechts
;j)       +E      PWM5
;a)   +A    -A    PWM1
;b)   -B         PWM2
  Lds AH, ZSchritt
  in AL, PWM1
  sbic  PINC,  6    ;Richtung
  rjmp MPa2
MPa1:          ;links rum

Ich hab mir auch überlegt, die Zeichnung zu veröffentlichen. Für mich 
was das ein Leitfaden für den Ablauf. Ist sicher verwirrend.
In dieser Betriebsart werden 128000 Schritte / U bei der kleinsten 
Schrittweite von 1 benötigt. Voreingestellt ist Betriebsart 2 mit einer 
Schrittweite von 64 (von256).
.equ Schrittweite = 63
Also 1+ Schrittweite. Bei 0 würde der Motor nicht weiter drehen.
Eigentlich lauft der Motor im Halbschritt, wobei jeder Halbschritt in 
bis zu 255 Mikroschritte geteilt wird.
Der Strom ist etwa gleich, weil 2 Spulen voll bestromt werden und 2 
durch die PWM sich den Strom teilen. Beispiel: Wenn der PWM-Wert von 
Phase 1  64 ist, ist der Wert von Phase2  192.  Schwankungen muss das NT 
aushalten. Die Vorwiderstände erleichtern das Messen.
An einer Schaltung für den Konstantstrom mit geringen Verlusten sowie 
der Ansteuerung über Takt und Richtung bastel ich noch.

„V40- Fehler“: Der Fehler sitzt 40 cm vor dem Bildschirm.

Viele Grüße aus SH
 Carsten

von Carsten-Peter C. (carsten-p)


Lesenswert?

Michael B. schrieb:
> Sehr kurioses Ding.

Besser machen, testen, testen, testen und veröffentlichen.
Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.