10 Stepper
Stepper
Ein Steppermotor (Schrittmotor) ist ein Motor, welcher mehrere einzeln steuerbare Spulen angetrieben wird. Durch das Anlegen von Spannung an diesen Spulen, kann der Motor auf diese Weise jeweils um einen Schritt nach Links oder Rechts bewegt werden. Der Vorteil eines Schrittmotors gegenüber einem herkömmlichen Motor ist somit zum einen die präzise Ansteuerung der einzelnen Schritte, als auch die Kraft, welche der Motor aufbringen kann. Typischerweise finden wir Steppermotoren deshalb auch in Anwendungen, wo diese Grössen gefragt sind. Dazu zählen bspw. Drucker, CD-Rom Laufwerke, CNC Maschinen usw.
Die Genauigkeit des Motors wird in den Datenblättern mit Grad (°) pro Schritt angegeben und definiert damit, wie viele Schritte ein Motor für eine ganze Umdrehung oder andere Winkel (z.B. 45° oder 180°) benötigt.
Grundsätzlich wird zwischen
uniploaren und
bipolaren Steppermotoren unterschieden. Wir werden in diesem Workshop ausschliesslich bipolare Motoren vom Typ SM-42BYG011-25 einsetzen.
Bipolare Stepper
Ein bipolarer Stepper wird normalerweise über vier Kabel angeschlossen. Ebenso wie herkömmliche Motoren verlangen Stepper eine höhere Spannung als wir sie mit dem Arduino bereitstellen können. Die Information über die benötigte Spannung findet sich jeweils in dem Datenblatt. Die von uns verwendeten Motoren benötigen 12V. Um einen bipolaren Stepper zu kontrollieren, werden nun die einzelnen Spulen in einer bestimmten Sequenz geschaltet.
Jeweils ein Paar der Kabel gehören zu einer Spule im Motor. Bei dem von uns verwendeten Motor sind dies: Blau/Gelb und Grün/Rot. Dies lässt sich auch aus dem Datenblatt des Motors ablesen.
Mercury Stepper
Datenblatt:
SM-42BYG011-25
Auflösung: 1.8° pro Schritt
Spannung: 12V
Die Einfachste Art und Weise die Schaltsequenz für den Motor mit dem Arduino zu erzeugen ist es, eine sog. H-Bridge zu verwenden. Eine typische H-Brigde ist die vom Typ SN754410.
H-Bridge
Datenblatt:
SN754410
In Verbindung mit der Arduino
Stepper Library kann die Ansteuerung eines Steppers relativ einfach realisiert werden.
Schaltung
Bei der Verschaltung des Arduino mit der H-Bridge und dem Steppermotor halten wir uns an die Vorgaben aus dem Datenblatt der SN754410...
Als Spannungsversorgung können wir entweder auf eine komplett "externe" Spannungsquelle zurückgreifen (GND vom Arduino und Quelle verbinden!) oder das Arduino mit einer 12V Speisung betreiben und den
Vin PIN des Arduinos für die H-Bridge verwenden. Die Schaltung sieht auf dem Breadboard dann folgendermassen aus...
Code
Für den Code greifen wir auf die Stepper Library von Arduino zurück. Die drei Funktionen, welche wir dazu benötigen sind:
Stepper(G-Step, PIN1, PIN2, PIN3, PIN4): Hier Instanzieren wir die Stepper Klasse (G-Step = Anzahl Steps pro Umdrehung)
setSpeed(Speed): Hier wird die Geschwindigkeit des Motors festgelegt (rpm = rotations per minute)
step(Anzahl): Mit dieser Funktion bewegen wir den Stepper. Positive Werte ergeben eine Richtung, negative die andere Richtung.
Es finden sich einige Beispiele zum Thema unter: "File/Examples/Stepper"...
#include <Stepper.h>
const int stepsPerRevolution = 200; // Geschwindigkeit
Stepper myStepper(stepsPerRevolution, 8,9,10,11); // Initialisieren an Pin8..Pin11
int stepCount = 0; // Wie viele Schritte haben wir schon
void setup()
{
Serial.begin(9600);
}
void loop()
{
myStepper.step(1); // Mache einen Schritt
Serial.print("Steps:" );
Serial.println(stepCount);
stepCount++;
delay(500);
}
Aufgaben
1. Nutze einen Button um den Stepper entweder in die eine, oder andere Richtung zu drehen.
2. Nutze zwei weitere Buttons um die Geschwindigkeit zu regeln.
3. Nutze einen analogen Sensor um den Stepper direkt zu steuern.
Weitere Informationen:
Stepper Motor – Einführung zum Stepper Motor.
Schrittmotor – Eintrag auf Wikipedia