Das Leben von Schrittmotoren


© August 2023, letzte Änderung am 19.08.23

--- still under construction ---

Übersicht

Motormechanik

Artikel wie prinzipiell ein Schrittmotor aufgebaut ist, gibt es zuhauf
und es macht meiner Meinung nach keinen Sinn,
ein weiteres Häufchen (Info natürlich) mit Ähnlichem dazu zu packen.
Leider gibt es auch Themen worüber strikt geschwiegen wurde,
oder ich es einfach bisher nicht gefunden habe,
welche ich aber immanent wichtig empfinde.
Und diese Lücke versuche ich nach besten Wissen und Gewissen zu füllen.

Jeder kennt den Zusammenhang, wenn ich
zwei anziehende Magnete nebeneinander halte.
Je geringer der Abstand, desto größer die Kraft.

Ebenso verhält es sich beim Schritt-Motor mit Stator und Anker.
Es werden also bevorzugt Positionen aufgesucht,
wo die Summe der Luftspalte am kleinsten ist.
Das bedeutet, das wenn ich den Motor ideal sinusförmig ansteuere,
die Bewegung mehr oder weniger linear ist (Mikrostep-Betrieb).
Vier Elektrische 90° entsprechen vier mechanischen Vollschritten.
Jeder Vollschritt (bei 1,8° sind das 200 stk je mechanischer Umdrehung)
kann noch einen Fehler von ca. 5% haben.
5% Fehler entsprechen bei 1,8° für einen Vollschritt, dann
0,09° mechanisch bzw. sind elektrisch 4,5°.

Zum Anfang

HW für einen Raspberry und ein Schrittmotor

Um festzustellen, wie gut ein Schrittmotor seinen Schritten folgt,
ist ein Incremantalgeber erforderlich.
In meinen Fall habe ich den RI 30-0/1024 AS.34KA von Hengstler verwendet,
welcher trotz seiner 27 Jahre immer noch funktioniert.
Entsprechend seiner Bezeichnung hat er ca.  0,352° = 360°/1024 Auflösung
Da er eine 5 V Schnittstelle hat, ist eine Pegelwandlung nötig,
welche ich mit einen fertigen Modul realisiert habe
z.B.  makershop.de 4 Kanal Pegelwandler I2C 5V-3.3V Level
Der Link ist nur ein Beispiel und nicht die günstigste Quelle.
So ein bi-direktionaler Pegelwandler besteht lediglich aus zwei Pullup Widerständen
und einen N-Kanal FET, welcher die beiden Welten via Drain und Source
miteinander verbindet. Gate liegt auf 3,3 V.
Die Verbindung hält an, bis die Gate-Source-Spannung
einen Schwellwert unterschreitet. Das ist spätestens der Fall,
wenn auf der high-Seite die Spannung größer 3,3 V wird.
Oberhalb dieser Spannung wirken auf beiden Seiten
lediglich die Pull up Widerstände.
Alternativ kann man auch ICs verwenden, welche mit 3,3 V betrieben werden
und dabei 5V Tolerant sind.   Z.B. 74LVX245, 4050.

Desweiteren wird ein Schrittmotor-Treiber benötigt.
So wie ich das zurzeit abschätze, reicht für den Test der fast günstigste.
Den DRV8825 kann ich noch diskret ansteuern und hat 32 Microsteps → 0,056°
Also etwas darunter, was der Incrementalgeber aufzulösen vermag.
360°/4096 = 0,088° (Warum? Siehe weiter unten).

Mögliche Alternativen habe ich in einer  Motortreiber-Tabelle  zusammengefasst.

Zum Anfang

Gesamt-Testaufbau

Damit der Incrementalgeber etwas Halt hat, habe ich noch einen Halter gedruckt.
Als Verbindungsstück zwischen Motor und Incrementalgeber habe ich
eine Trommel gedruckt, um gleichzeitig ein Moment auf die Achse geben zu können.

Motor und Incrementalgeber

Der Schaltplan ist gleichzeitig auch das Layout.
Die Nummern an der Raspberry-Steckerleiste sind die GPIOxx Nummern.
Mehr Details habe ich darüber in  Raspberry Zero W IO  geschrieben.
Genutzt habe ich nur die eine Pfostenreihe mit den geraden Pin-Nummern.

Leider musste ich im Schaltplan noch etwas ändern.
Pin 28 GPIO1 lässt sich leider nicht ansteuern und ist zum Pin 32 GPIO12 gewandert.

Motor und Incrementalgeber

Das Foto der Rückseite ist ein wenig älter als die vorherige Skizze.
Daher fehlen noch ein paar Drähte, welche nicht so wichtig sind, wie Masse ;-)
Die Diode über den 5 V Spannungsregler 7805  habe ich auch noch später eingebaut,
da ich den Raspberry teilweise via Micro-USB betreibe und ich nicht möchte,
dass mir dann der Spannungsregler stirbt.

PCB Unterseite

Und so sieht es von oben aus (älteres Foto).
Die Masse habe ich mir am Kühlkörper des Spannungsreglers abgegriffen
und die 24 V habe ich direkt an die Anode der rechten Diode angeschlossen.

PCB Oberseite

Zum Anfang

Incrementalgeber-Messsoftware

Für die Software gibt es verschiedenen Lösungsansätze, welche ich unter
Raspberry > Drehgeber  beschrieben habe.

Zum Anfang

Motor- & Incrementalgeber-Test auf dem Zero W

Nachdem ich wusste das der Incrementalgeber funktionierte,
habe ich angefangen den  Motor  anzusteuern.
Siehe   Raspberry > Schrittmotor

Zum Anfang

Messergebnisse

Zum Anfang

Quellen

python.org   python
mint-first.de   python Übungsaufgaben
w3schools.com   Python Tutorial
github.com   Simple Electronics with GPIO Zero.PDF

Zum Anfang