TigerJython4Kids | HomeTurtlegrafikRobotikDatenbanken |
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.
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:
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() |
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 |
|