Hallo,
ich habe das Problem, das ich bei einem Schrittmotor einen mechanischen
Anschlag erkennen muss. Ich verwende einen Atmega168, L297 und L298
inkl. der Sens-Widerstände. An Vref hab ich glaube über einen
Spannungsteiler 0,6 Volt angelegt.
Ich hatte vor die Spannung an den Sens-Widerstände mit dem A/D-Wandleer
des Atmega zu messen. Ich dachte der Strom in der Spule wird größer,
wenn der Motor blockiert, d.h. die Spannung an den Widerständen müsste
auch größer werden. Klappt leider nicht. Die Spannungen bei laufendem
und blockierten Motor sind ungefähr gleich groß. Kann mir jemand weiter
helfen?
Gruß Paul
Danke schon mal für Antwort.
Der L297 misst doch über die Widerstände den Strom und schaltet ab, wenn
dieser zu hoch ist. Ist das so richtig? Da ich an Vref ca. 0,6 Volt
anliegen habe, wird der Strom begrenzt. Wenn ich an Vref das Maximum von
3 Volt anlege, müsste ich dann Unterschiede messen können zwischen den
Strömen wenn der der Motor dreht bzw. blockiert?
moin moin,
der Strom hat die eingestellte Stärke, ob der Motor dreht oder nicht.
Das nennt man dann Schrittverlust.
Den mechachischen Anschlag mit einem elektrischen Kontakt zur
Motorstoppung kombinieren.
MfG
Pieter
Wenn der Strom fest ist, dann bleibt nur die Spannung als Last abhängige
Größe übrig.
Man kann elektrisch tatsächlich erkennen, ob ein Schrittmotor Schritte
verliert, nur ist das nicht ganz einfach.
Bei hohen Drehzahlen sieht man einen deutlichen Unterschied in der
Kurvenform, bei niedrigen Drehzahlen ändert sich nur leicht die
Kurvenform beim Übergang zwischen den einzelnen Schritten.
Schau mal bei Trinamic, die haben solche Features in den
Schrittmotortreibern.
Einen Kontakt anbringen ist leider nicht möglich. Stimmt die Theorie
denn das der Strom größer wird, wenn der Motor Blockiert ist? Dann
könnte ich doch die Sens-Eingänge des L297 unbeschaltet lassen und statt
dessen direkt mit meinem µC die Spannung an den Widerständen messen und
könnte die Erhöhung des Stromes ermitteln.
paul schrieb:
> Stimmt die Theorie> denn das der Strom größer wird, wenn der Motor Blockiert ist?
Nein. Der Strom hängt (bei niedrigen Drehzahlen und ohne Stromregelung)
nur von dem Wicklungswiderstand und der Betriebsspannung ab.
Der Verlauf der Strom/Spannungskurve ist zwischen 2 Schritten
unterschiedlich:
Bei einem blockierten Rotor pendelt der Rotor kurz, macht eventuell
einen Teilschritt rückwärts, was sich im Verlauf des Stromes und der
Spannung messen lässt.
Allerdings wird das, wie gesagt auf eine sehr viel komplexere Auswertung
als auf das reine Vergleichen des Stromes mit einem Sollwert
hinauslaufen.
Wie könnste diese Asuwertung dann aussehen? Wenn der Motor an den
Anschlag fährt, hört man ein Rattern. Ich hab auch versucht den
Spannungsverlauf mit einem Oszi zu messen. Das ist leider zu schlecht,
man sieht aber, wie die Spannung hin und her springt. Ich muss mir mal
ein besseres besorgen.
Wenn ich damit ein besseres Ergebnis bekomme, kann ich an Hand der
Frequenz des Ruckelns eine Zeit berechnen. Dann könnte einfach gesagt
ein paar Messungen machen und immer diese Zeit warten und schauen, ob
sich die Spannung geändert hat?
Hallo,
Kontakt oder Lichtschranke ist sicher einfacher.
Wenn es nur um die definierte Startpositione geht, könnte man es auch
wie in der guten alten C64-Floppy machen: mehr Schritte in Richtung
Anschalg fahren, als maximal möglich sind.
Dann steht am am Anschlag. Je nach Verwendung brauchbar oder auch nicht.
Die Klapperei beim Spur-0 anfahren der Floppy war a) gut zu höhren und
sorgte b) mit der Zeit für Leseprobleme wegen falscher Kopfjustage.
Wenn man oft gegen den Anschlag klopft, gibt der eben irgendwann nach...
Gruß aus Berlin
Michael
wie, das Geratter, was damals die 1541 Floppy gemacht hat, kann man
patentieren?
o-O-o ...
Dummerweise ist das nicht exakt auf 1...2 steps Genauigkeit, da der
Stepper an seinem Anschlag immer etwas zurückpendelt, und dann irgendwo
0...3 Steps vorm Ende stehenbleibt.
Nimm ne Lichtschranke oder nen kleinen Endausschalter (zum
Experimentieren schlachte ne Maus, die Mikroschalter gehen dafür
super!).
VG,
/th.
Danke schon mal für eure Tipps. Einen zusätzlichen Schalter einbauen
kommt (eigentlich) nicht in Frage. Es muss so gehen :-)
Wie könnte man den Strom am besten messen? Ich habe ja die
Sens-Widerstände verbaut. Über diese kann ich den Strom ja messen. Beim
nachmessen mit einem Oszi kam heraus, das kein großer Unterschied
besteht. Dazu kommt, dass ich der Spannung an den Sens-Widerständen ein
Sinus mit der Frequenz von ca 1Mhz überlagert ist. Ich weiß leider
nicht, ob das so sein muss oder nicht (aber denke mal eher nicht).
Ich wollte auch gerade Trinamic's StallGuard anführen, die TMC Module
kennen 7 Lastlevel, wenn die Drehzahl geeignet ausgewählt wird steigt
dieses Lastlevel beim Anschlag um 1 an was man detektieren kann.
Funktioniert eigentlich ganz gut, man ist aber für die Referenzierung
auf bestimmte Drehzahlen festgelegt. -wiebel
Ich kann den Anschlag jetzt erkennnen. Auf die Lösung bin ich eher
zufällig gekommen. Ich hab mit einem Oszi die Spannung an den
Sens-Widerständen nachgemessen. Dabei hatte ich aber Oberschwingung von
1Mhz und 0,2 Vss. Bei 0,6 V als Maximum, kann sich wohl jeder
vorstellen, dass nicht gut zu messen ist. Ich hab dann einen Tiefpass
mit 100kHz an die Sens-Widerstände und noch einen großen Elko in die
Spannungsversorgung gelötet. Am Tiefpass kann man jetzt einen
Unterschied sehen, die Spannung steigt an, fällt bei Stillstand aber
einer Stelle wieder ab. Diesen Unterschied werte ich mit dem AD-Wandler
aus. Funktioniert sehr gut. Dazu kommt noch, dass man den Home-Ausgang
des L297 verwenden muss, um zu wissen welchen Schritt man gerade
ausführt. Ich messe bei Schritt 3 und 7.
Warum der Tiefpass mein Siganl so gut verändert, dass ich es messen
kann, weiß ich leider nicht :-) Vielleicht kann mir das jemand
verraten?
Versuchs doch mal mit schritte zählen.
So haben wir das in einem Projekt mal gemacht.
Du musst doch um den Motoransteuern zu könne sicher eine Frequenz an den
Motorkontroller schiken. Dabei kannst du dann die Halbwellen zählen.