Forum: Mikrocontroller und Digitale Elektronik Schrittmotorsteuerung Grundlagen


von norad (Gast)


Lesenswert?

Guten Abend!


Ich hab meinen Scanner auseinander gebautund habe vorhandene Platine
entfernt.

Ich würde gerne jetzt rein aus neugier und Lernzwecken diesen
Steppmotor in bewegung setzen aber richtig.

Der vorhandene Steppmotor ist von Mitsumi und macht pro Schritt 7,5°
Müssten ja 48 Schritte pro Umdrehung sein.

Ein kleines ASM Programm hab ich mal geschrieben damit das ding sich
mal bewegt und hab die sache mal über Zeit gelöst aber damit bin ich
nicht zu frieden.

Such im prinzip Grundlagen wie man sowas richtig Programmiert.

Man liest hier das einige sowas über PWM programmieren um so was  sanft
anlaufen lassen usw.

Mich interessiert dabei, wenn man vom Scanner ausgeht, Referenzfahrt,
maximal Geschwindikeit, macht man die Fahrt über Zeit oder zählt man
die Pulse und wie soll so ein Puls Programmtechnisch realisiert
werden.

Also! da die sache für mich absolutes Neuland ist, bitte ich um
Nachsicht wenn ich hier etwas blöd Frage.

Für euere Beiträge im voraus vielen Dank!


norad

von Bernhard S. (bernhard)


Lesenswert?

Hallo Norad

>bitte ich um Nachsicht wenn ich hier etwas blöd Frage.

Ich finde Deine Fragen nicht blöd, eher interessant, schließlich wollen
wir alle etwas dazu lernen.


>sache mal über Zeit gelöst aber damit bin ich nicht zu frieden.

Wäre ich auch nicht.

Mit jedem Impuls auf die Wicklung (konstant oder per PWM) bewegt sich
der Motor um einen definierten Wert, d.h. man weiß, wenn nichts
dazwischen kommt, wo sich der Motor gerade befindet und wieeviel
Impulse er noch benötigt, um sein Ziel zu erreichen.


>Such im prinzip Grundlagen wie man sowas richtig Programmiert.

Schau mal hier, vielleicht hast Du auch noch eine Idee:

http://www.mikrocontroller.net/forum/read-1-334429.html


Bernhard

von norad (Gast)


Lesenswert?

Guten Morgen!

@Bernhard

Beim Durchlesen deines Links ist mir folgendes augefallen.

Was versteht  man unter 'Hardware-Copper' ?
Wie soll sowas konkret ausehen?

PWM - Signal erzeugen aber wie? ich habe dafür am AT89C51ED2
4 Ausgänge wenn ich, das richtig sehe.

norad

von Michael (Gast)


Lesenswert?

Es gab mal eine Beschreibung nebst Programm in der Codesammlung. Scheint
aber verschwunden zu sein oder ich finde es nicht.

von Bernhard S. (bernhard)


Lesenswert?

@Norad

>PWM - Signal erzeugen aber wie?

Ein ganz einfaches Bsp für eine Software-PWM,
ist zwar ursprünglich für ein Schaltnetzteil gedacht,
aber Du erkennst sichelich das Prinzip  und kannst es nach belieben
verfeinern und abschmecken.


http://www.mikrocontroller.net/forum/read-4-335961.html

>Was versteht  man unter 'Hardware-Copper' ?

Es gibt vermutlich ICs, in denen das PWM-Features integriert ist.

Bernhard

von Rahul (Gast)


Lesenswert?

Man betreibt Schrittmotoren meist mit einer höheren Spannung um die
Schrittgeschwindigkeit zu erhöhen. Da dadurch aber auch die Stromstärke
in der Spule ansteigt, misst man den Strom und schaltet die Versorgung
der Spule wieder ab. Sinkt dann der Strom aus der Spule unter einen
bestimmten Wert (die Spule entläd sich ja), schaltet man die Versorgung
wieder dazu...
Wenn man den Strom nicht misst, kann man auch eine feste PWM
einstellen...

Wenn man diesen Regelkreis in einen eigenen Baustein "giesst", hat
man einen Hardware-Chopper.

PWM wird aber auch gerne für den Mikroschrittbetrieb benutzt, um den
Bastand zwischen den einzelnen Schritt noch zu verkleinern. Dazu gibt
es bei Microchip und Atmel (und bestimmt auch anderen Herstellern)
Application Notes...

von avrfreak (Gast)


Lesenswert?

Es gibt einen schönen Artikel dazu
http://www.roboternetz.de/wissen/index.php/Schrittmotoren

von Profi (Gast)


Lesenswert?

Warum in die Ferne schweifen:
http://www.mikrocontroller.net/articles/Schrittmotoren

Zu oft liest man von der Kombination L297/L298. Dabei wird vergessen,
dass diese ICs schon 20 Jahre alt sind und der Stand der Technik weit
fortgeschritten ist.

Modernere ICs sind
L62xx von www.STM.com
Nanotec IMS901 baugleich Toshiba
trinamic

von Stephan H. (stephan-)


Lesenswert?

nicht zu vergessen Allegromicro !!

von Rahul (Gast)


Lesenswert?

Die trinamic-chips sind nicht unbedingt anfängerfreundlich...
Aber sonst gebe ich dir Recht.

von avrfreak (Gast)


Lesenswert?

Allerdings dürften die L297/L298 Lösungen noch die preiswertesten sein.
Eine ähnlich starke Schrittmotoransteuerung ist mit neueren Bausteinen
wesentlich teurer und im Aufbau komplexer. Es ist auch heute noch eine
gute Allround-Lösung

von norad (Gast)


Lesenswert?

Hallo Freunde!


Ich bedanke mich für eure zahlreichen Infromationen.

Werd erst mal alles beäugen, wenn ich wieder eine Frage habe  werde ich
mich wieder melden.


Vielen Dank noch mal!


Norad

von norad (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!


Ich habe jetzt mir einige Sachen zum Pwm -Signal und Schrittmotor
angesehen was ihr mir als Informationen geben konntet.

Aber leider sind die Informationen oder Beispiele noch nicht, das was
ich suche.

Das Beispiel mit dem Schaltnetzteil hat mir leider nicht weiter
geholfen, da das
PWM-Signal Manuell bzw. von Softwäremäßig nachgebildet wurde.


Ich würde gerne PWM-Signale nutzen die der Controller zuverfügung
stellt.

Wenn ich es richtig begriffen habe wird ein PWM-Signal genutzt um den
Schrittmotor an einer höheren Spannung zu betreiben.

Durch das PWM-Signal wird nun sozusagen der Strom begrenzt.

Liege ich da richtig??


Des weiteren macht mir die Hardwarebeschaltung etwas Kopfzerbrechen.
Da der Schrittmotor über eine Tabelle [9,10,6,5] gesteuert wird kann
ich mir irgendwie nicht vorstellen pro Leitung ein PWM-Signal
auszugeben.
Wie soll sowas aussehen?



Also hab ich mir mal folgendes überlegt ( siehe Anhang) wie es
vielleicht funktionieren
könnte.


Ich gebe die Schrittfolgen an einem Port aus (A,B,C,D) und durch
zusätzliche Transistoren (Q5..Q8)
wird nun das PWM-Signal angelegt und Steuert diese Transistoren langsam
auf oder ab dadurch
müsste sich das Harte Schalten der Spulen weicher werden.

RC-Glieder an den Kollektoranschlüssen (Q1...Q4) könnte ich mir
zusätzlich vorstellen, die
ich in den Beispielen gesehen habe.


Nun gibt es aber noch ein problem, wie gebe ich nun gas?

Über die SchriTtfolge der Tabelle und Timergesteuert?  oder nutze ich
dazu auch dass PWM-Signal?

Was meint ihr zu meinem Schaltungsvorschlag, kann dieser funktionieren
oder ist das Quatsch?


Um Konstruktive Antworten wird gebeten.


norad

von norad (Gast)


Lesenswert?

Guten Morgen!

Ich schreib nochmal, weil vermutlich keiner den Beitrag  angeschaut hat
seit gestern.


Gruß norad

von Reiner (Gast)


Lesenswert?

Hallo Norad,

Schau dir mal diese Application Note an.  Da ist alles schön erklärt
mit Betriebsarten, Stromregelung etc.

http://www.technologicalarts.com/myfiles/data/AN470.pdf

Reiner

von norad (Gast)


Lesenswert?

Guten Abend!

Nach dem ich mich mit dem PCA(Progarmmable Counter Array) auseinander
gestezt habe kann ich jetzt zumindest eine LED auf und ab
Dimmen. :)) *freu


Wenn ich nun dieses PWM-Signal auf den StepClock Eingang des L297 gebe
dreht sich dadurch der Schrittmotor in abhängigkeit des PWM-Signals?


norad

von Rahul (Gast)


Lesenswert?

>Wenn ich nun dieses PWM-Signal auf den StepClock Eingang des L297 gebe,
dreht sich dadurch der Schrittmotor in abhängigkeit des PWM-Signals?

ja, vermutlich. Aber solange die Frequenz des PWM-Signals konstant ist,
bewegt er sich mit eben dieser Frequenz (oder auch nicht, wenn die
Frequenz zu hoch ist). (hab nicht in das Datenblatt des L297 geguckt)
Besser dafür wäre IMHO der Enable-Pin.

von norad (Gast)


Lesenswert?

@Rahul


Nun die Frequenz ist momentan laut Multimeter bei 27Khz so ziemlich
konstant.

Nun ich dachte es so verstanden zuhaben, dass durch das variiren der
Pulsweite die Drehzahl bestimmt wird.

Das es nicht so einfach ist habe ich mir schon gedacht, aber jeder
schwätzt über PWM als wäre es selbstverständlich.

Wozu brauch ich nun das PWM?
Wenn ich doch den Takt der Schrittfolgen doch anders lösen muss z.B.
über Timer.

norad

von Marc M. (bytewood) Benutzerseite


Lesenswert?

Geh doch mal vom günstigsten Fall aus:
1 Pin für die Richtung,
1 Pin PWM für die Geschwindigkeit-

ist das nicht verlockend im Gegensatz zu 4 Pins und alles, wie
Geschindigkeit (Rampe etc.) und Richtung, proggen zu müssen?

von Reiner (Gast)


Lesenswert?

Norad,

In der Application note, die ich Dir oben genammt habe, stehen die
Antworten auf alle Deine Fragen drin!  Da steht auch wie Schrittmotoren
funktionieren.

1. Der L297 bekommt eine variable clock vom Prozessor.  Pro Umdrehung
des Motors brauchst Du je nach Betriebsart (Vollschritt/Halbschritt)
normalerweise 200/400 Pulse.  Die Pulsfrequenz bestimmt also die
Drehzahl.  Vergiß in diesem Zusammenhang die PWM.

2. Der Motor wird mit einer ziemlich hohen Betriebsspannung betrieben,
um den Strom in den Wicklungen schnell ansteigen lassen zu können.
Sonst hat der Motor sehr wenig Drehmoment.  Der harte Anstieg ist also
gewollt.

3. Die PWM dient nur zur Stromregelung und wird vom L297 selbst
erzeugt.  Sobald der Strom seinen (einstellbaren) Sollwert hat, wird
die Spannung abgeschaltet.  Es gibt dazu zwei Möglichkeiten (Phase
Chopping/Inhibit Chopping, siehe obige Application Note). Welche man
wählt, hängt vom Motor ab.  Hat man die falsche gewählt kann man das
sehr gut hören und fühlen.

4. Zusätzlich braucht der L297 (siehe Application Note) noch ein
Richtungssignal (Links/Rechts), und ein Enable Signal mit dem man den
Motorstrom abschalten kann (ein Stepper zieht auch den vollen Strom
wenn er sich nicht bewegt).

5. Bevor Du versucht alles dies und noch ein bißchen mehr Fuß zu
machen, empfehle ich Dir erst mal mit einem L297 zu spielen und einen
Steppermotor ruhig, resonanzfrei und mit Drehmoment zum Laufen zu
bekommen.

Gruß
Reiner

von norad (Gast)


Lesenswert?

@Reiner

Vielen Dank! Für den Hinweis leider ist mein English nicht sehr gut und
habe mit dem überstezten etwas mühe.

Ich dachte ich probiers erstmal ohne Bausteine L297 usw. um etwas mehr
Verständis dafür zubekommen.

gruß norad

von Reiner (Gast)


Lesenswert?

Norad,

Kann man natürlich machen.  Die Clock erzeugts Du mit dem 16bit timer.
Die Stromregelung (PWM) kannst Du auch selber machen.  Jede Phase des
Motors bekommt einen Serienwiderstand nach Masse.  Die Spannung, die
darüber abfällt ist proportional zum Strom.  Diese Spannung mußt Du
messen (ADC) und damit ein Signal erzeugen, mit dem Du die Endstufe
sperrst. Das ist die PWM.  Hat also nichts mit der PWM zu tun, die man
mit den Atmel Timern machen kann.  Ist aber nicht ganz trivial, denn
die Motoren "feuern" ja bei jedem Puls zurück.

Um das Verständnis zu bekommen, empfehle ich wirklich erstmal mit einem
L297/L298 zu experimentieren.

Gruß
Reiner

von Marco S. (masterof)


Lesenswert?

abo

von norad (Gast)


Lesenswert?

@Reiner

Dank dir nochmal  für deine Infos, werde mir mal die Bausteine besorgen
und damit experimentieren.

Zumindest weiss ich jetzt wie man per PCA ein PWM-Signal erzeugt und
LEDS Dimmen kann ;)


Gruß norad

von Biläl E. (Firma: Schüler) (elbilael)


Lesenswert?

Hi

ich hätte da mal eine Frage.
Ich habe einen ATMEGA16 und möchte einen Schrittmotor über den 
Trinamic-310 ansteuern. Wie kann ich das Trinamic board über den Atmega 
steuern?
Ich wäre für eure Hilfe dankbar.

Danke in voraus

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.