Stepper
Diese Bibliothek ist geschrieben worden für verschiedene Shields, mit denen man Schrittmotoren ansteuern kann. Dabei müssen wir mehrere Fälle unterscheiden. Zunächst gibt es 2 Typen von Schrittmotoransteuerungen UniPolar und BiPolar. Unipolar werden die Spulen in einem Motor nur in jeweils einer Richtung mit Strom betrieben. Deshalb haben die Spulen einen Mittelabgriff. Vorteil ist die einfache Ansteuerung. Die Mittelanzapfungen kommen auf die Versorgungsspannung und man muss nur jeweils ein Spulenende gegen Masse schalten. Nachteil: Man nutzt natürlich immer nur eine Spulenhälfte und deswegen sind das Dreh/Haltemoment im Verhältniss zur Baugröße deutlich niedriger. Bei bipolarer Ansteuerung werden die Spulen komplett in beiden Richtungen bestromt. Dazu sind aber dann 2 VollBrücken (H-Bridges) mit je 4 Transistoren nötig. (PS: Unsere heutigen BL Motoren sind quasi 3-Phasige Schrittmotoren…) Weiterhin gibt es sowohl die Ansteuerung mit nur 2 Pins nd die Ansteuerung mit 4 Pins. Mit 2 Pins werden die 4 verschiedenen Spulenzustände hintereinander durchgeschaltet. Bei 4 Pins wird jede einzelne Spule einzeln gesteuert. Schaltbilder könnt ihr der Arduino Referenz entnehmen.
Stepper motor(Schritte, Pin_1, Pin_2, Pin_3, Pin_4);
Stepper motor(Schritte, Pin_1, Pin_2);
Hier wird das Stepper Objekt initialisiert. Schritte gibt die Anzahl der Schritte für eine Umdrehung an. Das steht normalerweise auf dem Motor. Manchmal steht auch die Gradzahl eines Schrittes, dann muss man nur 360/Gradzahl berechnen. Pins sind natürlich die Pins der Ansteuerung.
motor.setSpeed(U/Min);
gibt die max Umdrehungsgeschwindigkeit die Motor drehen soll an. Das läßt natürlich noch nicht den Motor laufen, sondern dient der Berechnung wie lange die einzelnen Schritte sein müssen.
motor.step(Anzahl);
Jetzt erst wird der Motor um die Anzahl der Schritte gedreht und zwar mit der eingestellten Geschwindigkeit. Positive Werte drehen in die eine Richtung, negative in die andere. Kleiner Tipp aus der Arduino Referenz, geht mit der Geschwindigkeit lieber etwas höäher und macht dann kleiner Schritte. Die Funktion blockiert, d.h. solange der Motor nicht die Schritte gemacht hat, wird ncihts anderes im Arduino ausgeführt.