Schrittmotorsteuerung Grundlagen

Gast #329894
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
#329895
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
Gast #329896
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
#329898
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
Gast #329899
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...
Gast #329904
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
Gast #329906
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
Angehängte Dateien:
Gast #329909
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
Gast #329910
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.
Gast #329911
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
Gast #329913
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
Gast #329914
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
Gast #329915
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
Gast #329917
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren