www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schrittmotor Anschlag erkennen


Autor: paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da der L297 eine Stromregelung macht, ist der Strom natürlich immer 
gleich groß...

Autor: paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Pieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
z.B. beim Start mit Absicht einige Sekunden auf den Rand fahren

und dann die Schritte zu zählen beginnen nach x Sekunden Wartezeit.

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
obacht oszi40!

Da gibt es ein Patent. (bitte nicht kommerziell nutzen) Z8

Autor: Random ... (thorstendb) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

Autor: Einhart Pape (einhart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieh dir das 'mal an:

http://www.trinamic.com/tmc/media/Downloads/webina...

Gruß

Einhart

Autor: Michael Waiblinger (wiebel42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Tobias K (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: markusulrichfrance@gmail.com (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na das haste ja gut gemacht. wie sieht denn der Tiefpass genau aus? 
haste da nochmal rumprobiert um ein optimales Ergebnis zu erhalten?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.