Inhaltsverzeichnis -> Schrittmotoren

C-Control-Tutorial: Ansteuerung eines Schrittmotors

In diesem Tutorial soll gezeigt werden, wie man mit einem C-Control 128-er Board einen Schrittmotor betreibt. Das Programm dazu umfasst nur wenige Codezeilen.

Der Schrittmotor wird über einen im Handel erhältlichen Schrittmotortreiber "RN-Stepp 297" betrieben, der für Schrittmotoren mit einer Spannung bis maximal 30 Volt und maximal 2 Ampere Stromaufnahme konstruiert ist.

Um mit diesem Schrittmotortreiber einen Schrittmotor anzusteuern, muss das C-Control-Board genau 3 Signale erzeugen, die an den Treiber gesendet werden. Über das erste Signal wird dem Treiber mitgeteilt, ob der Strom des Schrittmotors ein- oder ausgeschaltet wird. Über das zweite Signal wird mitgeteilt, in welche Richtung der Motor gedreht wird. Über das dritte Signal werden kurze Taktimpulse gesendet, die den Schrittmotor um einen Takt weiter drehen.

Der Vorteil von Schrittmotoren besteht darin, dass wir über die Anzahl der Takt die Länge der Drehung genau vorgeben können. Bei alternativen Servomotoren kann man die Drehung nur indirekt durch die Dauer der Stromzufuhr einstellen.

Um einem Missverständnis vorzubeugen: Bei dem Signal zum Ein- und Ausstellen des Stroms handelt es sich nur um ein reines Datensignal. Die Stromversorgung des Schrittmotors erfolgt vollkommen separat von den Datensignalen, die unser Board liefert.

In unserem Beispiel wurde die Stromversorgung über die freien Lötkontakte des Experimentierboards bereitgestellt, dass ja standardmäßig an unser Board angeschlossen ist. Weil die Kontakte des Experimentierboards eine Spannung führen, eignet es sich auch gut dazu, externe Geräte mit Strom zu versorgen. Natürlich stellt sich dabei auch die Frage, wieviel Stromaufnahme die Sicherung des Boards zuläst. Ich persönlich konnte zwei Schrittmotoren mit einer Stromaufnahme von jeweils einem Ampere problemlos über das Board versorgen.

Das Programm zur Ansteuerung des Schrittmotors sieht so aus:

Sub main()

    ' Variablen deklarieren

    Dim i As Integer

    ' Ports deklarieren

    Port_DataDirBit(16,1) ' Strom Ein/Aus
    Port_DataDirBit(17,1) ' Drehrichtung gegen/im Uhrzeigersinn
    Port_DataDirBit(18,1) ' Taktimpuls

    ' Programm starten

    Port_WriteBit(16,1) ' Strom einschalten

    Port_WriteBit(17,1) ' Im Uhrzeigersinn drehen

    For i=1 To 2000 ' Drehung um 2000 Takte

        Port_WriteBit(18,1) ' Signal ein

        AbsDelay(3) ' Pause von 3 ms

        Port_WriteBit(18,0) ' Signal aus

    Next

End Sub

Inhaltsverzeichnis