Last Updated on 29. März 2020 by sfambach
Hier soll der Grundstein zum Betrieb von Schrittmotoren an Microcontrollern gelegt werden. Es werden in diesem Artikel:
- Das Funktions Prinzip beschrieben
- Einige Eigenschaften und Kenndaten benannt
- Sowie ein paar Tips gegeben
Es gibt viele Quellen im Netz, welche die Grundlagen schon erschöpfend beschreiben. Es handelt sich hierbei mehr um eine Sammlung nützlicher Informationen und soll zum besseren Verständis meiner anderen Projekte beitragen. Auch ist diese Fassung nicht final, es werden immer mal wieder Informationen hinzukommen.
Eine gute Einführung gibt wie immer bei Wikipedia, den Artikel habe ich unten gelinkt. Sollten dennoch was Wichtiges fehlen oder Fragen bestehen einfach einen Kommentar da lassen, ich freue mich über (fast 😉 ) jede Rückmeldung.
Fakten,
Funktionsweise
Schrittmotoren bestehen wie andere einfache Gleichstrom-Motoren aus einer Welle, Festmagnet(en) und zwei oder mehr spulen. Es gibt auch andere Bauweisen, die hier aber keine Berücksichtigung finden sollen.
Unterschied zu simplen Gleichstrommotoren
Bei Gleichstrommotoren wird die Ansteuerung der Spulen durch den Kommutator (Polwender) gesteuert und befinden sich auf dem Stator der Welle. Zum Betrieb des Motors wird eine Spannung angelegt. Über die Polung der Spannung kann die Richtung und über die Höhe der Spannung die Geschwindigkeit geregelt werden.
Beim Schrittmotor sind die einzelnen Spulen nach aussen geführt und werden einzeln gesteuert. Sie befinden sich im Gehäuse, während auf der Welle ein Festmagnet sitzt. Die Reihenfolge der Aktierung der Spulen bestimmt die Richtung und die Geschwindigkeit wird über den Ansteuerungstakt festgelegt (Hohe Frequenz, schnelle Drehgeschwindigkeit).
Vorteile
Die Lage der Welle ist genau steuerbar und nach einer Justage bekannt. Somit können mit Schrittmotoren ohne zusätzlichen Messeinrichtungen wie Odometrien angesteuert werden.
Nachteile
Die Ansteuerung von Schrittmotoren ist physikalischen Grenzen unterworfen. Je nach Belastung der Welle und der Schaltgeschwindigkeit kann es zu Schrittverlusten kommen. Dies bedeutet es wird der nächste Schritte angesteuert, obwohl die Welle die Position des letzten Schrittes noch nicht ereicht hat. Bei Hohen Beschleunigungen und Geschwingkeiten wird auf Herkömmliche Motoren mit einer Messeinrichtung zurück gegriffen.
Eigenschaften
Es gibt unterschiedliche Eigenschaften die einen Schrittmotor auszeichnen, die wichtigsten sollen hier aufgeführt werden:
Eigenschaft | Beschreibung |
Polanzahl | Anzahl der Pole, bestimmt wie genau ein Schrittmotor gesteuert werden kann. |
Schrittwinkel | Beschreibt um wieviel Grad sich die Welle für einen Schritt dreht. (Beispiel 1.8° => 200 Schritte für 360°) |
Schritte/ Umdrehung | Anzahl der Schritte für eine Umdrehung der Welle (Siehe Schrittwinkel) |
Drehmoment | um Grundprinzip die Stärke des Motors abhängig vom Strom. |
Microschrittbetrieb | Feinere Ansteuerung der Spulen um Zwischenschritte und eine höhere Laufruhe zu erreichen. |
Bipolar/Unipolar | Unterschiedliche Ansteuerung der Spulen (Siehe hierzu den unten gelinkten Wikipedia Beitrag) |
NEMA | Normung des Flanches bzw. der Lochabstände zur Befestigung des Motors (Nema 17 immer 42x42mm) |
Anwendungsbereiche
- Plotter
- (3D) Drucker
- Fräsen
- CD Abspielgeräten
- Scannern
- Roboter Armen
Ansichten
Hier ein paar Beispiele für Schrittmotoren
Tricks und Tips
Poolpaare finden
Wichtig beim Schrittmotor ist zu wissen welche Polpaare zusammen gehören. Sie können durch messen des Widerstands zwischen zwei Anschlüssen bestimmt werden. Wird ein geringer Widerstand, gemessen gehört das Anschlusspaar zusammen.
Wenn ken Messgerät zur Hand ist, kann man auch die Kurzschlussmethode verwenden. Es werden zwei Adern , Beispielsweise mit einem Draht kurz geschlossen, dreht sich die Achse des Motors schwerer gerhören diese zusammen. (blah blah Induktion bla… blah … ) . Probierts mal aus, es funktioniert.
Ansteuerung über Controller
Die überwiegende Zahl der Schrittmotoren kann wegen ihrer Leisungsaufnahme nicht direkt am Microcontroller betrieben werden. Hierfür bedarf es einer sog. Motorbrücke oder auch Stepperdriver genannt. Diese wird mit dem geringen Strom des Controllers gesteuert und Regelt die Spannung/ den Strom eine externe Spannungsquelle zum Motor. Hier ein paar Links zu bestehenden Beiträgen.
- Preview – Arduino Motor Shield mit L298P
- D1 Mini Shield – HR8833 Motor
- D1 Mini Shield – AT8870 Motor
- Zumo V1.2
- FunduMoto L298P High Power Motorbrücken
- RC Auto mit PS2 Controller
- NRF RC Auto
- Arduino PS2 Controller Platine Grundlagen
- NodeMCU V2 Motorplatine
- Adafruit Motor Platine v1
Bibliotheken
Es gibt unmengen an Bibliotheken zum Betrieb von Schrittmotoren hier exemplarisch ein paar die ich auch schon verwendet habe meist gerhören sie zur entsprechenden Zusatzplatine.
In der Arduino Gui ist eine Schrittmotor Bibliothek enthalten, diese wird über
#include <Stepper.h>
eingebunden. Im Datei Menü, bei den Beispielprogrammen befinden sich auch welche für die Stepper Bibliothek.
Von Adafruit für den Arduino Motorshield V1 https://github.com/adafruit/Adafruit-Motor-Shield-library
Von Adafruit für den Arduino Motorshield V2 https://github.com/adafruit/Adafruit_Motor_Shield_V2_Library
Für den schnellen Schritt 😉
https://github.com/Stan-Reifel/SpeedyStepper
Verwandte Beiträge
- Arduino Nano 33 BLE
- Arduino Nano 33 IOT
- Preview – Arduino Motor Shield mit L298P
- Preview – Arduino Mega Logger Shield
- Preview – Prototyp Schild für Arduino Mega
- Preview – Arduino Nano Zusatzplatine
- Preview – Arduino Mini ATMEGA328P 328
- Arduino Ethernet Platine W5100
- Arduino VS1053 MP3 Audio Shield mit TF Karte
- Daten Logger Shield V 1.0