TigerJython4Kids
HomeTurtlegrafikRobotikDatenbanken
schrittmotoren

24. SCHRITTMOTOREN

 

 

DU LERNST HIER...

 

wie Schrittmotoren funktionieren und wie du sie ansteuerst.

 

 

WIE FUNKTIONIEREN SCHRITTMOTOREN?

 

Schrittmotoren werden immer dann eingesetzt, wenn sich die Motorachse um einen genau definierten Winkel drehen muss. Im Schrittmotor befinden sich zwei um 90° gedrehte Spulen A und B mit einer Mittelanzapfung. Ein Stromfluss durch je eine Spulenhälfte von A und B bestimmt die Richtung des resultierenden Magnetfeldes in Richtungen 45° 135°, 225°, 315°. Nach 4 Schritten befindet sich der Rotor wieder in der Ausgangslage. Meist sind Schrittmotoren mit einem Untersetzungsgetriebe versehen, üblich ist ein Übersetzungsverhältnis von 1:64. In diesem Fall sind für eine Drehung um 360 Grad genau 256 Schritte nötig.

Im Hobbybereich weit verbreitet ist der Typ 28BYJ-48 der mit 5V betrieben werden kann. Er hat ein Anschlusskabel mit 5 Anschlüssen in der Reihenfolge rot, orange, gelb, rosa, blau.  Diese führen zu den zwei Spulen A und B und einer gemeinsamen Mittelanzapfung.

 

Die Mittelanzapfung wird an die Versorgungsspannung VCC (5V) angelegt, die anderen Anschlüsse werden abwechslungsweise auf GND gezogen und zwar immer nur so, dass eine Spulenhälfte von A und B stromdurchflossen ist. Die folgende Sequenz aus 4 Schritten führt zu einer Drehung des Magnetfeldes (rot) um je 90°, also insgesamt zu einer Drehung von 360° im Gegenuhrzeigersinn.

Schritt
A1
B1
A2
B2
1
GND
GND
0
2
GND
GND
3
GND
GND
4
GND
GND

Phase 1
Phase 2
Phase 3
Phase 4

Die Anschlüsse A1, B1, A2, B2 werden über einen invertierenden Treiber-IC nach unten gezogen, der an den GPIO Ports angeschlossen ist.

 

 

MUSTERBEISPIEL

 

Du verwendest einen Schrittmotor mit einem dazugehörenden Treiber-Board, das du wie folgt mit dem GPIO-Stecker der Oxocard verbindest:

 Treiber Eingang  IN1  IN2  IN3  IN4
 Treiber Ausgang  A1  B1  A2  B2
 Stepper Kabel  blau  rosa  gelb  orange
 Oxocard GPIO  IO5  IO23  IO18  IO19

 

Für die 5V-Spannungsversorgung kannst du eine Powerbank oder ein USB-Ladegerät verwenden. Am einfachsten konfektionierst du wieder ein Kabel, wie es im Kapitel NeoPixel beschrieben ist.

Um den Aufbau zu testen, verwendest du ein Programm, wo du mit der Funktion step(in1, in2, in3, in5) die Pegel an IN1, IN2, IN3 und IN4 setzt. Die oben notierten 4 Schritte durchläufst du mit der Funktion forward(), beachte aber, dass eine logische 1 am Eingang des Treibers den Ausgang des Treibers auf GND zieht.

def forward():
    step(1, 1, 0, 0
    step(0, 1, 1, 0)
    step(0, 0, 1, 1)
    step(1, 0, 0, 1)
    sleep(0.005) # time to settle

Es ist wichtig, dass du nach dem Setzen des Zustands einen Moment wartest, bis der Motor auf die Position gedreht hat.


Programm:

from time import sleep
from machine import Pin

pIN1 = Pin(5, Pin.OUT)
pIN2 = Pin(23, Pin.OUT)
pIN3 = Pin(18, Pin.OUT)
pIN4 = Pin(19, Pin.OUT)
delay = 0.005 # time to settle

def forward():
    step(1, 1, 0, 0)
    step(0, 1, 1, 0)
    step(0, 0, 1, 1)
    step(1, 0, 0, 1)

def step(in1, in2, in3, in4):
    pIN1.value(in1)
    pIN2.value(in2)
    pIN3.value(in3)
    pIN4.value(in4)
    time.sleep(delay)

while True:
    forward()
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Die Achse eines Schrittmotors (Stepper) dreht sich bei jedem Schritt um den genau gleichen Winkel, der vom verwendeten Untersetzungsgetriebe abhängig ist. Er wird über 4 digitale Signale angesteuert, die in einer bestimmten Sequenz durchlaufen werden.

 

 

ZUM SELBST LÖSEN

 

 

1.

Überlege dir die 4 Schritte, damit der Motor im Uhrzeigersinn dreht. Definiere dann die Funktion backward(), die den Rotor um um 360° dreht und schreibe ein Programm so, dass die Motorachse in einer Endlosschleife zuerst eine volle Drehung in der einen Richtung und dann in der anderen Richtung macht.

2.

Du kannst auch 45o-Schritte machen,  indem du abwechselnd eine und dann zwei Spulen einschaltest. Überlege dir den Zyklus mit 8 Schritten, damit der Motor im Gegenuhrzeigersinn dreht. Definierte dann die Funktion forward(s), die den Motor um s-Schritte dreht. Teste sie mit verschiedenen Werten von s.
b)*) Nach dem Aufruf von forward(s) steht der Motor in einem bestimmten Zustand des Zyklus. Beim nächsten Aufruf, sollte er von dort und nicht am Anfang des Zyklus starten. Verbessere dein Programm sinngemäss.

3.

Befestige am Schrittmotor einen Minutenzeiger und baue damit eine Uhr, welche die Minuten anzeigt. Am Anfang kannst du die aktuelle Zeit durch Drücken eines Buttons einstellen.

4.

Zeige an einem Demonstrationsexperiment, wie man mit einem Schrittmotor präzise lineare Bewegungen ausführen kann. Verwende dazu eine Gewindestange mit einer Mutter, die sich in einer Führung vor- und rückwärts bewegt. Dieses Prinzip wird vor allem bei CNC-Maschinen, aber auch oft in Druckern u.ä. verwendet.