Schrittmotor 1

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail
 

Steuerung des Schrittmotors 32 311


Schrittmotor 32 311

Schrittmotoren werden für genaue Positionierungaufgaben (z.B. in Tintendruckern zur Positionierung der Farbköpfe) eingesetzt. Sie habe gegenüber normalen Elektromotoren eine wesentlich höhere Anzahl von Polen, sie werden auch nicht kontinuierlich mit Spannung versorgt, sondern pro Schritt einmal umgepolt. Die Verfahren zur Ansteuerung von Schrittmotoren sind unterschiedlich, teils mit unterstützender Elektronik.

Der Motor 32311 wird in dem Modell Plotter/Scanner (30571) eingesetzt (Anleitung 39460). Der Motor macht 7,5° pro Schritt (48/Umdrehung), er wird über vier Kabel angesteuert, die Ansteuerung erfolgt rein softwaremäßig. Außerdem gibt es für Visual Basic und besondere Klassen zur Programmierung der Schrittmotoren.

Versuchsaufbau : Der Motor ist das Trum rechts, angeschlossen ist eine Schnecke mit Mutter, die eine Bauplatte trägt. Auf dem vorderen Alu-Profil sind in 95 mm Abstand Markierungen angebracht.

Ansteuerung Interface : M1 + (vordere Buchse) : rotes Kabel, - : schwarzes Kabel
M2 + : graues Kabel, - : grünes Kabel.

Programm : Windows NT4 SP4 und VB6 SP1 mit FishFRT6.DLL, alternativ Windows 95 und VB5 SP3 mit FishF532.DLL, jeweils mit ganzen Zyklen. Als Alternative die LLWin 3.0 Version. Die vollständige Source (schritt1.mdl) mit einem kleinen Testprogramm ist in llwin30.zip enthalten (dürfte auch mit LLWin 2.1 laufen, bei Problemen und Fragen bitte an den Autor wenden. Eine komfortablere Ansteuerung ist auf schritt2.htm zu finden.

Programmzyklus :
Rechts :
Private Sub DrehCRechts()
ft.SetMotor 1, ftiRechts
ft.SetMotor 2, ftiLinks
ft.SetMotor 1, ftiLinks
ft.SetMotor 2, ftiRechts
End Sub

Links :
Private Sub DrehCLinks()
ft.SetMotor 1, ftiLinks
ft.SetMotor 2, ftiLinks
ft.SetMotor 1, ftiRechts
ft.SetMotor 2, ftiRechts
End Sub

schrll.gif (10984 Byte)

Einfache Version für das serielle Interface. Das parallele Interface benötigt zusätzliche Waits (siehe Text, komplette Source (VB6, auch mit VB5 nutzbar)).

Meßergebnisse :

Rechner System VBVersion Port fakN fakS Zeit [sec] Drehzahl[U/min]
Pentium 400 WinNT4 6.0 SP1 LPT 60000 - 3,11 385
0 1 - 6 9,62 195
12 19,2 62
COM - - 7,50 160
Pentium 200 Win95 5.0 SP3 LPT 30* - 3,4 353
32* 1 - 12 13 39
COM - - 7,5 160

fakN : leere For Next Schleife
* statt dessen : ft.OutputDelay
fakS : Sleep
Zeit : für 960 Schritte


Gegenüberstellung Drehzahl - Wegstrecke (4,75 mm Schnecke)

Drehzahl [U/min] Wegstrecke [cm/min]
10 4,75
25 12
50 24
75 35
100 47,5
150 71
200 95
400 190

ft.SetMotor verwendet intern als zentralen Befehl ft.GetInputs, hier einige Laufzeiten für GetInputs (sie werden primär durch das Interface bestimmt) :

GetInputs(COM) : 7,8 ms (alle Rechner, alle Systeme)
GetInputs(LPT) : 0,45 ms, Pentium 200, Win95 (direkter Portzugriff)
GetInputs(LPT) : 3 mSec, Pentium 400 WinNT(Portzugriff über Kernel 0 Treiber und ActiveX).
Da bei Win95/direkter Portzugriff Waits eingelegt werden mußten, dürfte das jeweilige Interface bestimmend für die erreichbare Drehzahl sein.

Stand : 08.02.2004