Autor Beitrag
Doofit
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 30.09.15 22:44 
Hallo,

ich habe folgendes Problem, ich habe ein Programm (MVC# 2010 Express) geschrieben über welches ich am Ende 3 Schrittmotoren ansteuern will. Zum testen ist jetzt lediglich nur einer angeschlossen. Die Schrittmotoren habe ich zusammen mit den Drivern und einer Steuerkarte auf Ebay erworben (Bild im Anhang). Die Steuerkarte wird über den LPT-Anschluss mit dem PC verbunden. Der Driver hat 4 Anschlüsse -> Enable/Direction/Pulse/+5V, der 5-Volt-Anschluss wird zum Ansteuern nicht benötigt, die anderen 3 Anschlüsse habe ich mit der Steuerkarte verbunden (Enable - PIN 2, Direction - PIN 3, Pulse - PIN 4). Der Driver wird über eine Endstufe mit Strom versorgt (12V).

Zitat:

PortAccess.Output(0x378, 0x1); // Driverkarte aktivieren (Enable -> PIN 2 -> D0)
System.Threading.Thread.Sleep(x); // Zeit "x" warten
PortAccess.Output(0x378, 0x3); // Richtung angeben (Direction -> PIN 3 -> D1) , Karte bleibt weiterhin aktiviert (Enable bleibt also weiterhin angesteuert)
System.Threading.Thread.Sleep(x); // Zeit "x" warten
PortAccess.Output(0x378, 0x7); //Impuls für Drehung geben (Pulse -> PIN 4 -> D2), Enable und Direction bleiben weiterhin angesteuert
System.Threading.Thread.Sleep(x); // Zeit "x" warten
PortAccess.Output(0x378, 0x3); //Impuls aus, Enable und Direction weiterhin anesteuert
System.Threading.Thread.Sleep(x); // Zeit "x" warten
...


Das Programm geht dann so weiter, es wird lediglich der Impuls-PIN durchgehend angesteuert und wieder nicht angesteuert, wieder angesteuert, ...
Die Ansteuerung von allen Pins funktioniert (Ohmmmeter), allerdings dreht sich der Motor bei einem Impuls um eine Schritt nach vorne und sobald der Impuls nicht ansteht, dreht er sich wieder zurück auf die Startposition.
Habe auch schon versucht durchgehend Impulse zu geben, also Impuls -> warten -> Impuls -> Warten ->..., da passiert aber eben genau dasselbe. Wenn man sich jetzt den Aufbau von einem Schrittmotor ansieht (in meinem Fall bipolar), sieht man direkt wo das Problem liegt. Die 2 Phasen im Schrittmotor werden durch den Impuls immer abwechselnd angesteuert, also Phase 1 wird angesteuert und der Motor steht auf seiner Position. Phase 2 wird angesteuert und er dreht einen Schritt weiter. Und jetzt müssten die Pole der ersten Spule vertauscht werden damit er einen weiteren Schritt macht. Da das aber nicht passiert wird die Phase 1 wieder angesteuert und der Motor macht einen Schritt zurück und steht wieder am Anfang.
Jetzt endlich meine Frage: Ist das umlegen der Pole nicht die Aufgabe der Driver? Ich dachte die wären genau aus dem Grund dabei. Oder kann man irgendwie im Programm ändern dass die Pole vertauscht werden? Kann ich mir jedoch nicht vorstellen, da die Pins ja nicht direkt mit den einzelnen Anschlüssen des Schrittmotors verbunden sind. Ich hoffe jemand versteht mich und kann mir da weiterhelfen.

Danke
Einloggen, um Attachments anzusehen!
icho2099
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 101
Erhaltene Danke: 12

WIN XP, WIN 7, WIN 10
Delphi 6 Prof, Delphi 2005, FPC
BeitragVerfasst: Sa 03.10.15 12:04 
Hallo, die Treiber sind für Bipolar Stepper und haben für jede Motorwicklung je eine Vollbrücke (H-bridge), die für die Umkehrung der Stromrichtung sorgt.
Das kannst du also nicht von außen steuern, das erledigt der Treiber alleine.