Forum: Mikrocontroller und Digitale Elektronik Schrittmotor Problem


von Thomas B. (xelo87)


Lesenswert?

Hallo
Ich habe ein Problem bezüglich Schrittmotoren.

Möchte einen Schrittmotor (Link: 
http://www.conrad.at/ce/de/product/198722/42MM-SCHRITTMOTOR-18-1A-027-NM) 
per uC ansteuern.
Habe jetzt mal beim Testaufbau auf einem Steckbrett Taster für Schritt 
und Drehrichtung verwendet.
Die Ansteuerung erfolgt per L297/L298. Aufgebaut wurde die Schaltung wie 
im Datenblatt bzw. bei RN-Wissen.

Angeschlossen ist das Ganze an einem Labornetzteil.
Sense-Widerstände sind je 2 parallele 1Ohm/0.6W Kohleschichtwiderstände.
Vref stelle ich per Poti so ein, bis am Labornetzteil 1A angezeigt wird.
Die Dioden am Schrittmtor sind BYV95C.
Abblockkondensatoren sind auch verbaut. Einzig der 470uF zwischen 12V 
und GND noch nicht. Und Entstörung für Stepper ist auch noch nicht 
vorhanden.

Er dreht auch seine Schritte pro Tastdruck.
Mein Problem ist, dass er bei jedem zweiten Schritt, ab und zu auch 
wahllos, einen enorm hohen Strom (ca. 3.8A) zieht.
Da ich das nicht zumutbar für den L298 finde, drücke ich immer schnell 
weiter bis er nur 1A zieht.

Am L298 wirds nicht liegen. Habe einen anderen L298 versucht, selbiges 
Problem.
Könnte es eventuell an falscher Verkabelung zum Schrittmotor liegen?
Wurde zwar laut Datenblatt des Schrittmotors angehängt, aber naja...
Oder an den Tastern (Prellung)?

Hab mal gelesen man sollte Stepper weit über ihrer angegebenen Spannung 
betreiben. Weiter als 17V komm ich leider nicht mit dem Labornetzteil.
Aber ob 12V oder 17V. Gleiches Problem.

Oder liegts vielleicht auch am Steckbrett (schlechte Verkabelung etc.)?

Bitte um Hilfe, suche seit ein paar Tagen das Problem.

Mfg
Tom

von Dirk M. (dmd)


Lesenswert?

Hallo Tom,

ich könnte mir vorstellen, daß eine Deiner Freilaufdioden defekt ist. 
Das würde erklären, warum der Strom nur bei bestimmten Motorstellungen 
zu hoch ist.

Und nur mal so als Hinweis.
Laut Datenblatt des L298 sollen Dioden mit einer trr < 200ns verwendet 
werden, die BYV95C hat aber eine trr von 250ns. Obwohl das der max. Wert 
ist.


MfG
Dirk

von Yalu X. (yalu) (Moderator)


Lesenswert?

Thomas Bürgler schrieb:
> Abblockkondensatoren sind auch verbaut. Einzig der 470uF zwischen 12V
> und GND noch nicht.

Der Kondensator dienst dazu, beim Abschalten der Wicklungen den über die
Freilaufdioden abfließenden Strom aufzunehmen. Fehlt er, fließt der
Strom ins Netzgerät zurück, was diesem evtl. Schwierigkeiten bereitet.

Schau dir doch mal mit dem Oszi die 12V-Versorgung, die Spannung an den
den Sense-Widerständen und Vref an. Irgendeine davon wird sicher von den
Erwartungen abweichen.

von Thomas B. (xelo87)


Lesenswert?

Ok, werde ich heute gleich alle durchtesten.

Oh, shit, habe ich völlig übersehen. Vf ist auch zu hoch...

Sind BYV 27-50 ausreichend? Vf und trr-Werte würden passen.
Aber ich frag lieber, nicht dass wieder irgendein Wert falsch ist xD.

Schonmal Danke.

PS: Besteht vlt auch die Möglichkeit (oder könnte es für Probleme 
sorgen), wenn die Taster prellen? Hab keine Pull-Down Widerstände dran, 
sorgt das für ein undefiniertes Signal am L297?

Mfg
Tom

von Thomas B. (xelo87)


Lesenswert?

Yalu X. schrieb:
> Thomas Bürgler schrieb:
>> Abblockkondensatoren sind auch verbaut. Einzig der 470uF zwischen 12V
>> und GND noch nicht.
>
> Der Kondensator dienst dazu, beim Abschalten der Wicklungen den über die
> Freilaufdioden abfließenden Strom aufzunehmen. Fehlt er, fließt der
> Strom ins Netzgerät zurück, was diesem evtl. Schwierigkeiten bereitet.
>
> Schau dir doch mal mit dem Oszi die 12V-Versorgung, die Spannung an den
> den Sense-Widerständen und Vref an. Irgendeine davon wird sicher von den
> Erwartungen abweichen.

Ok, dann rein damit, hab nur einen 470 uF für 16V. Muss ich halt vorerst 
auf 12V weitertesten.

Oszi hab ich leider keins. Hab mal überlegt eins zu kaufen aber wurde 
bis jetzt nichts.
Muss ich mich mal reinlesen was man so braucht. Gibt ja so viele Oszis 
:)

von Thomas B. (xelo87)


Lesenswert?

So hab Dioden nachkontrolliert. Keine einzige kaputt.

Den 470 uF reingemacht. Problem besteht weiterhin.

Sorgt vielleicht die gemeinsame Masse von 5V und 12V für Probleme in 
dieser Hinsicht?!

Das Komische ist ja, der Strom steigt in der Regel jeden zweiten 
Tastendruck auf 3,8A an. Aber ab und zu zieht er auch 2-4 Tastendrücke 
hintereinander so viel oder aber auch für ein paar Tastendrücke ganz 
normal 1A.

von Dirk M. (dmd)


Lesenswert?

Betreibst Du den Motor im Halb -oder Vollschritt und macht er pro 
Tastendruck wirklich immer nur einen Schritt?

von Thomas B. (xelo87)


Lesenswert?

Vollschritt.
Kanns nicht genau nachvollziehen. Aber ab und zu siehts als würde er 
mehr drehen als einen Schritt. Das wär ja dann die Ursache von der 
Tastenprellung?!

von Dirk M. (dmd)


Lesenswert?

> Das wär ja dann die Ursache von der
> Tastenprellung?!

Genau, den solltest Du erstmal entprellen und dann wird der hohe Strom 
wahrscheinlich bei jedem 2. Schritt ansteigen.
(wenn nicht muß ich nochmal nachdenken)

Kannst Du den Strom mal messen, der durch die Motorwicklungen geht? Du 
siehst doch jetzt immer nur die Gesamtstromaufnahme Deiner Schaltung, 
richtig?

von Hoop (Gast)


Lesenswert?

Arbeitet Deine Strombegrenzung richtig?
Wie hoch ist denn Deine Referenzspannung?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Oder liegts vielleicht auch am Steckbrett (schlechte Verkabelung etc.)?
Mach doch mal ein Bild davon. Evtl. hört der 297 zwischendurch einfach 
zu schwingen auf und schaltet den 298 dauernd ein...

von Thomas B. (xelo87)


Lesenswert?

Dirk M. schrieb:
>> Das wär ja dann die Ursache von der
>> Tastenprellung?!
>
> Genau, den solltest Du erstmal entprellen und dann wird der hohe Strom
> wahrscheinlich bei jedem 2. Schritt ansteigen.
> (wenn nicht muß ich nochmal nachdenken)
>
> Kannst Du den Strom mal messen, der durch die Motorwicklungen geht? Du
> siehst doch jetzt immer nur die Gesamtstromaufnahme Deiner Schaltung,
> richtig?

Wird jetzt hardwaremäßig bisschen schwer. Müsste ich den uC wieder 
draufbasteln.

Ja, das ist richtig.
Also ich hab bei erster und zweiter Wicklung per Multimeter gemessen.
Ich komme auf 0, 1 oder -1 Ampere. Und jedes Mal wenn er hohen Strom 
zieht komme ich auf etwas zwischen 400 und 600 mA?!

Gesamtstrom am Labornetzgerät beträgt jetzt 0,5A (wenn ich lt. 
Multimeteranzeige in der Wicklung einstelle) bzw. eben 3,4A wenn 
Wicklungsstrom ca. 500mA beträgt.

Hoop schrieb:
> Arbeitet Deine Strombegrenzung richtig?
> Wie hoch ist denn Deine Referenzspannung?

Vref ist 0,57V gegen Masse.

Lothar Miller schrieb:
>> Oder liegts vielleicht auch am Steckbrett (schlechte Verkabelung etc.)?
> Mach doch mal ein Bild davon. Evtl. hört der 297 zwischendurch einfach
> zu schwingen auf und schaltet den 298 dauernd ein...

Schicke ich morgen.
Werde einfach alles nochmal Schritt für Schritt verkabeln. Vlt ist doch 
irgendwo ein Verkabelungsfehler.

von Dirk M. (dmd)


Lesenswert?

> Werde einfach alles nochmal Schritt für Schritt verkabeln. Vlt ist doch
> irgendwo ein Verkabelungsfehler.

Gute Idee!

Wenn die Schaltung hohen Strom zieht, der Wicklungsstrom aber kleiner 
wird, dann bricht wohl die Spannung zusammen. Könnte ein 
Verdrahtungsfehler (Kurzschluss) sein.
Wie hast Du eigendlich die Dioden geprüft, mit dem Multimeter?

von Thomas B. (xelo87)


Lesenswert?

Dirk M. schrieb:
>> Werde einfach alles nochmal Schritt für Schritt verkabeln. Vlt ist doch
>> irgendwo ein Verkabelungsfehler.
>
> Gute Idee!
>
> Wenn die Schaltung hohen Strom zieht, der Wicklungsstrom aber kleiner
> wird, dann bricht wohl die Spannung zusammen. Könnte ein
> Verdrahtungsfehler (Kurzschluss) sein.
> Wie hast Du eigendlich die Dioden geprüft, mit dem Multimeter?

So, bin erst gestern dazu gekommen.
Habe alles nochmal neu verkabelt und siehe da. Es funktioniert 
einwandfrei.

Die Dioden habe ich vor dem Neuaufbau mit einer LED geprüft :)
Könnte sein, dass sie verkehrt waren; das mit dem weißen Ring hat mich 
etwas irritiert bei diesen Dioden.

Jetzt hab ich nur noch ein sehr hohes Pfeifen im Stepper.
Bekommt man das durch Entstörung weg? Oder muss man immer den Strom 
wegschalten (Enable auf 0)?

Was ist eigentlich die bessere Ansteuerungsmethode eines L297/L298 
Stepper per uC?
PWM oder über Interrupt mit CTC? (Gibts da einen gravierenden 
Unterschied?)

Gruß
Tom

von Dirk M. (dmd)


Lesenswert?

Das hört sich ja schonmal gut an.

Das Pfeifen kommt, soweit ich weiß, von der Stromregelung, die mit PWM 
arbeitet. (haut mich ruhig, wenn's falsch ist)
Strom wegschalten ist jedenfalls nicht die Lösung. Guck doch mal hier 
unter 4.1.
http://www.atmel.com/dyn/resources/prod_documents/doc8124.pdf
Vielleicht hilft das ja.

Zur Takterzeugung würde ich den CTC-Mode nehmen. Durch anpassen des 
Vergleiswertes kannst du ganz einfach die Takt-Frequenz ändern.
Bei PWM änderst du ja nur das Hi/Lo-Verhältnis und nicht die Frequenz.

von Thomas B. (xelo87)


Lesenswert?

Dirk M. schrieb:
> Das hört sich ja schonmal gut an.
>
> Das Pfeifen kommt, soweit ich weiß, von der Stromregelung, die mit PWM
> arbeitet. (haut mich ruhig, wenn's falsch ist)
> Strom wegschalten ist jedenfalls nicht die Lösung. Guck doch mal hier
> unter 4.1.
> http://www.atmel.com/dyn/resources/prod_documents/doc8124.pdf
> Vielleicht hilft das ja.
>
> Zur Takterzeugung würde ich den CTC-Mode nehmen. Durch anpassen des
> Vergleiswertes kannst du ganz einfach die Takt-Frequenz ändern.
> Bei PWM änderst du ja nur das Hi/Lo-Verhältnis und nicht die Frequenz.

Wenn ich das richtig interpretiere, heißt das, dass es von Vorteil wäre, 
die Masse für Steuer und Leistungsschaltung zu trennen!?
Verwende nämlich zur Zeit gemeinsame Masse auf dem Steckbrett.

ja das mit PWM leuchtet mir ein.
Wenn ich CTC verwende und das per Interrupt steuere wie mach ich das 
vernünftig?
Pro Compare Interrupt einen Schritt bewegen oder?

Wenn ich den Taster drücke (Interrupt Enable) und eine halbe Umdrehung 
möchte, müsste der Interrupt 100mal auslösen.
eine volatile variable um 1 pro interrupt hochzählen und in main 
vergleichen und bei 100 interrupt disable?!
Ist das so richtig?

Sorry für die Fragerei, könnte es auch learning by doing machen, aber 
bin noch nicht @ home :)

von Dirk M. (dmd)


Lesenswert?

Also die beiden GND's sind nicht komplett getrennt, sondern an nur 
einem Punkt (J3) verbunden.

> Pro Compare Interrupt einen Schritt bewegen oder?
Fast Richtig:
"CLOCK: An active low pulse on this input advances the motor
one increment. The step occurs on the rising edge of this signal."

D.h. wenn du bei jeden Interrupt einen Ausgang toggelst, wird der Motor 
bei jedem 2.Interrupt einen Schritt machen.
Ansonsten sollte das mit dem Hochzählen funktionieren.

von Thomas B. (xelo87)


Lesenswert?

Dirk M. schrieb:
> Also die beiden GND's sind nicht komplett getrennt, sondern an nur
> einem Punkt (J3) verbunden.
>
>> Pro Compare Interrupt einen Schritt bewegen oder?
> Fast Richtig:
> "CLOCK: An active low pulse on this input advances the motor
> one increment. The step occurs on the rising edge of this signal."
>
> D.h. wenn du bei jeden Interrupt einen Ausgang toggelst, wird der Motor
> bei jedem 2.Interrupt einen Schritt machen.
> Ansonsten sollte das mit dem Hochzählen funktionieren.

Ahja ok, werde ich gleich mal vollziehen.
Sprich alle GND vom L297 und L298 getrennt zusammenführen und an einem 
Punkt dann verbinden!?

Hehe, gutes Timing, war gerade am versuchen und hatte nur halb so viel 
Schritte. Mir fiel auch gleich auf, dass ich ja pro Interrupt toggle.
D.h. ich muss die doppelte Frequenz im Timer nehmen, was am Stepper 
ankommt.

von Dirk M. (dmd)


Lesenswert?

> Sprich alle GND vom L297 und L298 getrennt zusammenführen und an einem
> Punkt dann verbinden!?
So verstehe ich das.
Sagst du ob es geholfen hat? Das würde mich nämlich auch interessieren.

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.