PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : schrittmotor hat auffeinmal 2 Laufrichtungen!!!!



batti112
30.05.2004, 19:18
Hallo,
bin echt ratlos. Habe 2 Schrittmotoren die jeweils über ein L293 angesteuert werden.
Pro L293 benötigt man ja 4 Bits um den Schrittmotor zu steuern, deswegen sieht mein Programm für den Vollschrittmodus wie folgt aus (wichtigste Zeilen):


************************************************** *******************
// Motor 1 2
outp(85,PORTC); // 0101 0101
outp(153,PORTC); // 1001 1001
outp(170,PORTC); // 1010 1010
outp(102,PORTC); // 0110 0110
************************************************** *******************

Mit einem Motor hatte ich bei genügend großer Spannung und Strom keine Probleme.
Sobald ich allerdings beide betreiben will (die Motor-Spannungsversorgung der beiden L293 ist parallel aufgebaut), kommt es zu einem interessanten Effekt.
Bei zu großem Strom bewegen sich beide Motoren überhaupt nicht, und brummen nur.
Bei einer gewissen Strom Spannungskombination laufen beide Motoren richtig, allerdings kann man ihre DREHRICHTUNG ganz leicht mit der Hand ändern, indem man dem Motor einen "Stups" in die entgegengesetzte Richtung versetzt... :-k
Eine Stromstärkenänderung führt wie oben beschrieben auch nicht zum gewünschtem Effekt...

Kann mir jemand helfen, und hat jemand Erfahrung mit diesem Phänomen?

MfG

Batti

Michael
30.05.2004, 20:23
Hallo batti112,
zu wenig Strom?
zu wenig Spannung?
zu wenig Schwungmasse?
Layoutproblem? (Kondensatoren?Gegeninduktion?)
Programm zu schnell?
Gruss, Michael

batti112
30.05.2004, 23:34
Danke Michael für die guten Ideen!

Aber eine Änderung der Bewegungsrichtung kann doch nur durch eine Änderung der Takt-Reihenfolge geschehen, oder nicht?

Denn der Motor läuft dann konstant in die entgegengesetzte Richtung!

MfG

Batti

31.05.2004, 02:43
Denn der Motor läuft dann konstant in die entgegengesetzte Richtung!

Bist du den sicher, dass es wirklich Schrittmotoren sind, oder kann es sein, dass du die Motoren irgendwo ausgebaut hat und nur für Schrittmotoren hältst?

Hast du den mal probiert den Motoren nur ein paar einzelne Schritte zu geben oder steuerst du sie immer gleich in einer Schleife an?

So wie du es beschreibst, hört es sich für mich an, als würden die Motoren elektrisch nur abwechselnd von einer Position abgestossen und angezogen und wenn der Strom "zufällig" nicht zu gross und auch nicht zu klein ist, drehen sie sich aufgrund ihrer Massenträgheit weiter.

Keine Ahnung, ob irgendwelche anderen Motoren so auf eine Ansteuerung für Schrittmotore reagieren, oder ob sogar Schrittmotoren so reagieren, wenn sie falsch angeschlossen werden.


Ich würde mal versuchen ein paar LEDs statt der Motoren anzuschliessen.
Wenn du die Schrittfolge dann ganz langsam ablaufen lässt, müsstest du eigentlich erkennen können, ob Schaltung und Programm überhaupt richtig funktionieren.

Michael
31.05.2004, 10:57
Hallo batti112,

Danke Michael für die guten Ideen!

Sorry, wenn du das für Ideen hältst, dann tust du mir leid. Es waren gut gemeinte Ratschläge, die ich dir aus eigener Erfahrung gegeben habe. Wenn du sie nicht annimmst, musst du halt weiter probieren und im Forum fragen.

Aber eine Änderung der Bewegungsrichtung kann doch nur durch eine Änderung der Takt-Reihenfolge geschehen, oder nicht?
So sollte es sein.

Denn der Motor läuft dann konstant in die entgegengesetzte Richtung!
Daran sehe ich, dass du mein letztes Posting nicht beachtet hast. Schade. :(
Vielleicht hat Gast auch recht, und es sind gar keine Schrittmotoren?
Gruss, Michael

batti112
31.05.2004, 11:19
Sorry Michael!!!!!!

Ich habe deine RATSCHLÄGE durchaus beachtet!!!!
Meine Antwort darauf sollte aufkeinen Fall negativ wirken...
Entschuldigung wenn diese bei dir falsch ankam.
Und meinen aufrichtigen Dank für deine Mithilfe!

Ich bin dem Problem auf der Spur und melde mich wenn ich weiß woran es lag...

MfG
Batti

Marvin
31.05.2004, 16:34
........deswegen sieht mein Programm für den Vollschrittmodus wie folgt aus (wichtigste Zeilen):


************************************************** *******************
// Motor 1 2
outp(85,PORTC); // 0101 0101
outp(153,PORTC); // 1001 1001
outp(170,PORTC); // 1010 1010
outp(102,PORTC); // 0110 0110
************************************************** *******************
........

Hi batti112,
kann es sein, dass Du den Motor frequenzmässig übersteuerst?
Wenn Du diese Zeilen ohne Warteschleife zwischen den outp() ablaufen lässt, ist das viel zu schnell für den Schrittmotor, er verliert massig Steps und wir kraftlos und unkontrolliert laufen. Versuch's mal mit einer kurzen Warteschleife (ca. 1ms) nach jedem outp().

Grüsse, Marvin

Manf
31.05.2004, 17:05
Versuch's mal mit einer kurzen Warteschleife (ca. 1ms)
Nur als Anmerkung zur Größenodnung: Wenn die Schritte in einer Folge von 1ms kommen wird der Motor eher schnell drehen oder fast pfeifen.

Wie wäre es denn mit 0,1 bis 1 sec Warteschleife, um mal zu sehen was sich tut? Schneller werden kann man ja nacher immer noch.

Die Überlegung an sich völlig richtig, einfache Schrittmotoren laufen nicht sehr schnell, Controller können die Phasen sehr viel schneller ausgeben als Motoren folgen können.

batti112: Steht denn eine Typenbezeichnung auf dem Motor, vielleicht kann man ja irgendwoher ein paar Daten über den Motor bekommen.
Manfred