Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

11 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 oder alternativ L293D.

H-Bridge

Datenblatt: SN754410 Datenblatt: L293D 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... H-Bridge_Board

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);
}

Beachte

1. Die Maximale Geschwindigkeit, welche sich mit setSpeed() einstellen lässt ist ca. 150 2. Um eine Überhitzung des Motors zu vermeiden ist es ratsam, alle Pins auf LOW zu schalten, wenn der Motor nicht gebraucht wird.

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