Steppermotor


Bastelseite Display + Antriebe Sensoren C++


Stepper- / Schrittmotor

Ein Motor mit vielen kleine Schritten


Stepper- / Schrittmotor

Ein Schrittmotor ist normalerweise ein würfelförmiges Gebild mit einer Welle und 4 Anschlüssen

Diese gibt es in verschiedenen Baugrößen, Stromstärken

Sein Innenleben ist dafür umso aufwendiger: ein Rotor wird durch ein gesteuertes, schrittweise rotierendes, elektromagnetisches Feld der Statorspulen um einen kleinen Winkel (der Schritt) oder sein Vielfaches gedreht.

Ein Steppermotor



Der Schrittmotor macht für eine komplette Umdrehung 200 Schritte! Für jeden Schritt sind dies also nur 1,8 °.

Mehr Infos zum Thema Steppermotor: https://coeleveld.com/arduino-stepper-l298n/

https://www.roboter-bausatz.de/

Mit ACCEL Stepperhttps://www.makerguides.com/l298n-stepper-motor-arduino-tutorial/

Mit ENA A/B: https://create.arduino.cc/projecthub/ryanchan/how-to-use-the-l298n-motor-driver-b124c5


Treiberplatine

Da ein Schrittmotor nur über elektronische Steuerungen regelbar wird, benötigt er entweder einen Chip oder eine komplette Platine als Motortreiber.

Vom Arduino direkt wird der Motortreiber angesprochen, der die Befehlsfolge verstärkt an die zwei Spulen des Motors in richtiger Kombination weitergeben kann.



L 298 N

L 298 N: eine PLatine als Motortreiber

Die Anschlüsse:

L 298 N: die Anschlüsse


Wichtig: die Stromversorgung

Die kleineren Schrittmotoren (5 Volt-Ausführung!) werden meist noch vom Netzteil des Arduinos mit versorgt. Da wird die Platine an die Platine des Motortreibers Arduino und der Steppermotor direkt angeschlossen.

Bei den größeren Motoren wird eine zusätzliche Spannung benötigt. Bei mir findet dafür ein Akku Verwendung: ein Lithium-Ion Polymer RC-Pack mit 11,1 Volt und 2,8 Ah. Genügend "Dampf" für einige Tests am PC ...


Anschluß vom Motor und Platine am Arduino

Anschluß vom Motor und Platine am Arduino



Folgende Farben habe ich für den Anschluß verwendet:

ArduinoFarbeL 298 NFarbeMotorFarbeAkku
Pin 8HellblauIN 1
Pin 9blauIN 2
Pin 10rotIN 3
Pin 11grünIN 4
Motor Ablau1
Motor Aorange2
Motor Brot3
Motor Bgelb4
GNDschwarzMinusschwarzschwarzMinus
PlusrotrotPlus


Wichtig: Der richtige Anschluß der Stromversorgung

Der Akku dient nur zur Stromversorgung des Steppermotors über den Anschluß der L 298 N-Platine.

Der Arduino erhält eine eigene 9 Volt-Batterie zur Speisung. Lediglich werden nur die schwarzen Masse-Anschlüsse (GND) miteinander verbunden. Keine roten Pluskabel verbinden!

Vom Akku darf das rote Pluskabel nur zur Platine des L 298 N führen!



Öffnet den Sketch in einem eigenen TAB:  stepper-1.ino     Und hier der Sketch dazu:

/*  stepper-1.ino
 *
 *  Funktionserklärungen an einem Beispiel
 *  für die Arbeitsweise eines Steppermotors
 */

#include <Stepper.h>        // Bindet die Funktions-Bibliothek mit ein
#define STEPS 200           // 200 steps / Schritte für eine Umdrehung
Stepper stepper(STEPS, 8, 9, 10, 11); // Anschlüsse am Arduino

void setup()
{
  int i;
  // Voreinstellung alles auf LOW = Stillstand des Motors bei Beginn
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
  Serial.begin(9600);
}

void loop( )
{
  Serial.println(" ------------------------------------------");

  Serial.println("Geschwindigkeit auf '100' gesetzt."); // Anzeige auf seriellem Monitor
  stepper.setSpeed(100); // Setzt die Geschwindigkeit auf "100"
  delay(2000); // Pause von 2 Sekunden

  Serial.println("200 Steps = 1 Umdrehung nach rechts"); // Anzeige auf seriellem Monitor
  stepper.step(200); // Motor dreht rechts herum -> 200 steps = 1 Umdrehung
  delay(1000); // Pause von 1 Sekunde

  Serial.println("-200 Steps = 1 Umdrehung nach links"); // Anzeige auf seriellem Monitor
  stepper.step(-200); // Motor dreht links herum, wegen "-" vor den 200 steps
  delay(1000); //pause

  Serial.println(" ------------------------------------------");

  Serial.println("Geschwindigkeit auf '90' gesetzt.");
  stepper.setSpeed(90);
  delay(2000); // Pause von 2 Sekunden

  Serial.println("200 Steps = 1 Umdrehung nach rechts");
  stepper.step(200);
  delay(1000); // Pause von 2 Sekunden

  Serial.println("-200 Steps = 1 Umdrehung nach links");
  stepper.step(-200); 
  delay(1000); //pause

  Serial.println(" ------------------------------------------");

  Serial.println("Geschwindigkeit auf '80' gesetzt.");
  stepper.setSpeed(80); // Setzt die Geschwindigkeit auf "30"
  delay(2000); // Pause von 2 Sekunden

  Serial.println("100 Steps = halbe Umdrehung nach rechts");
  stepper.step(100);
  delay(1000); // Pause von 2 Sekunden

  Serial.println("-100 Steps = halbe Umdrehung nach links");
  stepper.step(-100);
  delay(1000); //pause

  Serial.println(" -------------------------------------------");

  Serial.println("Geschwindigkeit auf '125' gesetzt.");
  stepper.setSpeed(125); // Setzt die Geschwindigkeit auf "30"
  delay(2000); // Pause von 1 Sekunde

  Serial.println("400 Steps = 2 Umdrehungen nach rechts");
  stepper.step(400); // Motor dreht rechts herum -> 200 steps = 1 Umdrehung
  delay(1000); // Pause von 1 Sekunde

  Serial.println("-400 Steps = 2 Umdrehungen nach links");
  stepper.step(-400); // Motor dreht links herum, wegen "-" vor den 200 steps
  delay(1000); //pause
  
  Serial.println(" -------------------------------------------");

}




Dies erscheint im Seriellen Monitor:

------------------------------------------
Geschwindigkeit auf '100' gesetzt.
200 Steps = 1 Umdrehung nach rechts
-200 Steps = 1 Umdrehung nach links
 ------------------------------------------
Geschwindigkeit auf '90' gesetzt.
200 Steps = 1 Umdrehung nach rechts
-200 Steps = 1 Umdrehung nach links
 ------------------------------------------
Geschwindigkeit auf '80' gesetzt.
100 Steps = halbe Umdrehung nach rechts
-100 Steps = halbe Umdrehung nach links
 -------------------------------------------
Geschwindigkeit auf '125' gesetzt.
400 Steps = 2 Umdrehungen nach rechts
-400 Steps = 2 Umdrehungen nach links
 -------------------------------------------




Übersicht Seiten Anfang Steppermotor regeln


brixelweb.de