Forum: Mikrocontroller und Digitale Elektronik Schritt Motor Controller


von Joachim J. (felidae)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich bräuchte da mal ein paar Tipps von euch.

Ich plane Grade an einem Projekt mit einem Schrittmotor und einem dem 
Raspberry Pi ähnelnden Mikroprozessorbord. Der Mikroprozessor ist ja 
kein Echtzeitsystem und somit ist die Ansteuerung des Motor wohl nicht 
so einfach. Ich suche daher einen Controller der die Ansteuerung für 
mich übernimmt. Lieder bin ich bis heute noch nicht dazu gekommen mich 
mit Schrittmotoren näher zu beschäftigen und weiß daher nicht so genau 
was da im Detail passiert. Daher wollte ich fragen ob mir da jemand ein 
Paar hilfreiche Tipps geben kann.

zu den Anforderungen:

Der Motor steht schon fest, der liegt schon auf meinem Tisch.
es ist der 8-2030-4-050
Im Datenblatt auf Seite 15 stehen folgende Angaben
I=0.5A U=2,5V R=5Ohm L=1,2mH s=0,003mm/step

ziel:
Ich habe zwei Lagenendschalter und möchte erst die beiden Endpositionen 
anfahren um meine relative Position zu bestimmen. Danach möchte ich 
gezielt die Mitte oder jede andere Position zwischen den beiden 
Endschaltern anfahren können. Dabei ist eine hohe Auflösung notwendig.
8 Mikrosteps/Step, Außerdem möchte ich mit bis zu 9500 Mikrosteps/Seck 
fahren können. Die hohe Auflösung bitte nicht überbewerten. Ich möchte 
nicht exakt an genau eine Mikrometer genaue Position fahren. Wenn hier 
ein paar Mikrosteps verschluckt werden ist das nicht so schlimm. Ich 
möchte einen Sensor hin und her fahren und dann während er fährt mit 
konstanter Frequenz Messwerte abtasten. Wichtig ist daher, dass der 
Motor mit einer möglichst konstanten Geschwindigkeit, aber nicht all zu 
langsam, fährt und dass von Punkt a zu Punkt b. Als Schnittstelle käme 
mir i2C sehr gelegen.

zu den Fragen:

Was brauche ich alles?(Treiberstufe Controller ...)
Welche Bauteile würdet ihr empfehle?
Gibt es was fertiges was man kaufen kann?

von zoggl (Gast)


Lesenswert?

als plug & Play mit treiber kann ich dir Nanotec SMCI12 oder 33 
empfehlen entweder mit USb oder mit RS485.

die Kommunikationsbeschreibung findest du online.
http://de.nanotec.com/produkte/1023-smci12-schrittmotorsteuerung/

Überleg dir aber auch, mit welchen Ungenauigkeiten du leben kannst. Die 
Positionsmeldung muss ja immer mit dem sensor synchronisiert werden.

vll ist ein schrittbetrieb besser geeignet.

sg

von MaWin (Gast)


Lesenswert?

Joachim J. schrieb:
> I=0.5A U=2,5V R=5Ohm L=1,2mH s=0,003mm/step

Also richtig schlecht. Hohe Spannung, hohe Induktivität, hoher 
Widerstand.

Joachim J. schrieb:
> Ich habe zwei Lagenendschalter und möchte erst die beiden Endpositionen
> anfahren um meine relative Position zu bestimmen. Danach möchte ich
> gezielt die Mitte oder jede andere Position zwischen den beiden
> Endschaltern anfahren können. Dabei ist eine hohe Auflösung notwendig.
> 8 Mikrosteps/Step, Außerdem möchte ich mit bis zu 9500 Mikrosteps/Seck
> fahren können.

Solche Chips bietet Trinamic an, ich glaube, schon der kleinste
http://www.trinamic.com/products/integrated-circuits/integrated-motion-controller-stepper-driver/tmc222
erfüllt deine Anforderungen.

von Joachim J. (felidae)


Lesenswert?

zoggl schrieb:
> vll ist ein schrittbetrieb besser geeignet.

ein Kollege hat an einem ähnlichen Projekt mitgearbeitet. anderer Motor 
aber der selbe Sensor. Damals wurde die Steuerung von irgend einer Uni 
entwickelt. Habe aber leider Keinen Kontakt zu dehnen. Mein Kollege 
meint die haben versucht den Motor um eine feste Schrittweite zu 
verfahren, haben dann angehalten und den Messwert aufgenommen. Die das 
aber haben nicht hingekommen. Die einzige Lösung war damals wohl die, 
den Motor kontinuierlich fahren zu lassen und mit fester Abtastrate 
abzutasten.

damit der Motor möglichst ruckel frei fährt ist die hohe Auflösung wohl 
schon wichtig (aussage meines Kollegen)

von zoggl (Gast)


Lesenswert?

nö, nicht unbedingt.

ein Motor mit geringem Rastmoment und vll noch einem Dämpfer bringt 
wahrscheinlich bessere Ergebnisse, als ein schlechter Motor mit 
wahnsinniger Mikroschrittauflösung.

Joachim J. schrieb:
> Mein Kollege
> meint die haben versucht den Motor um eine feste Schrittweite zu
> verfahren, haben dann angehalten und den Messwert aufgenommen. Die das
> aber haben nicht hingekommen. Die einzige Lösung war damals wohl die,
> den Motor kontinuierlich fahren zu lassen und mit fester Abtastrate
> abzutasten.

da es keine Angaben zu den Messzeiten oder der abtastrate gibt, ist 
diese aussage per Definition richtig.

sg

von m.n. (Gast)


Lesenswert?

MaWin schrieb:
> Joachim J. schrieb:
>> I=0.5A U=2,5V R=5Ohm L=1,2mH s=0,003mm/step
>
> Also richtig schlecht. Hohe Spannung, hohe Induktivität, hoher
> Widerstand.

Blödsinn, der Motor ist in Ordnung.

Joachim J. schrieb:
> Was brauche ich alles?(Treiberstufe Controller ...)
> Welche Bauteile würdet ihr empfehle?
> Gibt es was fertiges was man kaufen kann?

Beitrag "Schrittmotoransteuerung mit A4982 und ATmega328"

von Joachim J. (felidae)


Lesenswert?

MaWin schrieb:
>Solche Chips bietet Trinamic an, ich glaube, schon der kleinste
>http://www.trinamic.com/products/integrated-circuits/integrated-motion-controller-stepper-driver/tmc222
>erfüllt deine Anforderungen.

Ich habe das Datenblatt mal Grade überflogen und ich glaube
das schaut mal schon echt gut aus. sogar der Preis ist gut.

super Tipp danke.

von Joachim J. (felidae)


Lesenswert?

zoggl schrieb:
> nö, nicht unbedingt.
>
> ein Motor mit geringem Rastmoment und vll noch einem Dämpfer bringt
> wahrscheinlich bessere Ergebnisse, als ein schlechter Motor mit
> wahnsinniger Mikroschrittauflösung.


also der Motor steht ja schon fest und ob jetzt Vollschritte reichen 
oder Mikroschritte nötig sind ist nicht absolut sicher. Ich werde daher 
am besten erst mal auf Mikroschritte setzen und einen Controller 
verwenden der auch mit Vollschritten fahren kann. Wenn ich das 
feststelle das Vollschritten reichen kann ich ja in einer Nächsten 
Version runter skalieren.

von Maxim M. (melchermax)


Lesenswert?

>I=0.5A U=2,5V R=5Ohm L=1,2mH s=0,003mm/step

Wenn's ein wenig genauer gehen soll: 
http://www.dr-henschke.de/RAPS128.html Dieser Treier schafft auch  1/128 
Mikrostepping und Einstellung der Decay-Modi.

Jedenfalls brauchst Du eine Stromversorgung für die Treiber, dessen 
Spannung im Bereich von vier - bis zwölffachen Wert der Nennspannung des 
Motors liegt. In Deinem Fall wäre es von 10 bis 30 VDC. Natürlich, darf 
die maximale Betriebsspannung des Treibers nicht überschritten werden.

von Joachim J. (felidae)


Lesenswert?

Maxim M. schrieb:
>>I=0.5A U=2,5V R=5Ohm L=1,2mH s=0,003mm/step
>
> Wenn's ein wenig genauer gehen soll:
> http://www.dr-henschke.de/RAPS128.html Dieser Treier schafft auch  1/128
> Mikrostepping und Einstellung der Decay-Modi.
>
> Jedenfalls brauchst Du eine Stromversorgung für die Treiber, dessen
> Spannung im Bereich von vier - bis zwölffachen Wert der Nennspannung des
> Motors liegt. In Deinem Fall wäre es von 10 bis 30 VDC. Natürlich, darf
> die maximale Betriebsspannung des Treibers nicht überschritten werden.

Jo, das habe ich. Ich verwende ein Netzteil mit 24V. Das brauche ich 
auch für den Sensor.

von W.S. (Gast)


Lesenswert?

Joachim J. schrieb:
> I=0.5A U=2,5V R=5 Ohm

Naja, geht doch. Da kommst du vielleicht sogar schon mit 12 Volt für den 
Motortreiber aus, wenn du nicht schnell fahren willst. Ansonsten ziele 
mal 24 Volt an.

Ansonsten laß dir gesagt sein, daß du solche Motoren nicht einfach mit 
konstanter Geschwindigkeit fahren darfst, denn da verschluckt sich der 
recht leicht.

Also mußt du ab Start auframpen, dann mit deiner versorgungsabhängigen 
Vmax fahren und dann bei Annäherung an dein Ziel wieder abrampen. (Du 
mußt vorher wissen, wo dein zweiter Endlagenschalter sein wird...)

Tja, und das kostet einiges an Interrupts, die so ein Raspberry nicht 
bieten kann, obendrein ist das Beobachten deiner Endlagenschalter nebst 
geeigneter Reaktion auf selbige vonnöten. Also ist eigentlich ein völlig 
separater µC nebst EEPROM für etwaige Kalibrierdaten das Mittel der 
Wahl.

Ach ja, und im Stillstand den Motorstrom geeignet absenken, sonst werden 
die Dinger nur heiß.

W.S.

von MaWin (Gast)


Lesenswert?

Maxim M. schrieb:
> Dieser Treier schafft auch  1/128 Mikrostepping

Was bei einem Motor nichts nützt, der ein stärkeres Rastmoment hat, weil 
er dann viele Mikroschritte Richtung Rastung zieht. Der Schrittmotor, 
der zufällig vor mir liegt, macht z.B. 5% Winkelfehler im Mikroschritt, 
eben genau deswegen. Da nützen 0.78% elektrische Auslösung auch nichts 
mehr (die ich nicht habe, sondern 1:16).

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.