Posts Tagged ‘Beschaltung’

Ansteuern von Schrittmotoren mit Arduino

Montag, Mai 5th, 2014

Ein Arduino Controller kann verwendet werden, um eigenständige interaktive Objekte zu steuern oder um mit Softwareanwendungen auf Computern zu interagieren (z. B. Adobe Flash, Processing, diverse Skriptsprachen, Terminal etc.). Arduino wird beispielsweise auch an Kunsthochschulen genutzt, um interaktive Installationen aufzubauen. Die Hardware besteht aus einem einfachen I/O-Board mit einem Mikrocontroller und analogen und digitalen Ein- und Ausgängen. Die Entwicklungsumgebung verwendet die Programmiersprache Processing, die auch technisch weniger Versierten den Zugang zur Programmierung und zu Mikrocontrollern erleichtern soll. [Quelle: Wikipedia]

Um es Einsteigern in die Welt von Elektronik und Mikrocontrollern möglichst einfach zu machen, gibt es für die Arduino-Plattform eine große Vielfalt an steckbaren Erweiterungsmodulen, so genannte „Shields“. Auch für die Ansteuerung von Motoren sind diverse Shields erhältlich. Sie bestehen oft nur aus einem Treiberchip mit der minimalen Basisbeschaltung. Über die kleine Platine kann kaum Verlustleistung abgeführt werden, zudem fehlt es für größere Motoren an ausreichend dimensionierten Pufferelkos. Auch Schutzbeschaltungen (Kurzschlussschutz, Optokoppler in Richtung Controller) sind die absolute Ausnahme. Das Experimentieren mit Motoren kann so schnell zu einem frustrierenden Erlebnis werden, wenn mit den Motoren „reale“ Lasten angetrieben werden sollen. Im folgenden Beitrag wird gezeigt, wie man mit einem Arduino mit Hilfe der AccelStepper-Bibliothek über wenige I/Os nahezu alle Schrittmotorsteuerungen mit Takt-/Richtungsinterface ansteuern kann.

Zur Arduino Entwicklungsumgebung gehört auch eine einfache Bibliothek zur Ansteuerung von Schrittmotoren. Sie geht jedoch davon aus, dass die Motorwicklungen direkt oder mittels zwischengeschalteter Transistoren über die I/Os des Prozessors angesteuert werden (Verwendung von zwei Ausgängen je Motorwicklung, insgesamt 4 Ausgänge). Beschleunigungs- und Bremsrampen sind nicht vorgesehen. Durch diese einfache Ansteuerung lässt sich nur ein geringes Drehmoment bei niedrigen Drehzahlen erreichen. Die AccelStepper-Library unterstützt dagegen auch so genannte 2- und 3-Draht Interfaces sowie den Typ „Driver“. Gemeint ist damit die Ansteuerung von integrierten Treibern über Takt- und Richtungssignale. Es ist auch möglich, eigene Interface-Definitionen einzuführen, wie im Beispiel zu diesem Beitrag gezeigt wird. Wie der Name andeutet, implementiert die Lib außerdem Beschleunigungs- und Bremsrampen. Über die Bibliothek können zudem mehrere Motoren gleichzeitig angesteuert werden, was die Anwendungsmöglichkeiten von Arduino für Projekte mit Motoren deutlich erweitert.

Anschluss der Tiny-Step Endstufe an den Arduino Controller

Anschluss der Tiny-Step Endstufe an den Arduino Controller

Das Bild zeigt den Anschluss der Takt-Richtungsendstufe Tiny-Step II, welche auf dem A3979 von Allgero Micro basiert. Der Treiber realisiert Motorströme bis 2,25A bei bis zu 35V bei Mikroschritt-Auflösungen bis 1/16. Durch das durchdachte Kühlkonzept werden die genannten Leistungsdaten auch im Dauerbetrieb sicher erreicht. Der integrierte, selbstrückstellende Kurzschlussschutz sichert die Schaltung vor Schäden durch falsche Beschaltung. Neben den Anschlüssen für Takt und Richtung (grün und gelb) werden auch Ausgänge für Enable (Einschalten der Endstufe) und Stromabsenkung ausgegeben sowie ein Fehlersignal von der Endstufe über einen Eingang eingelesen. Diese Signale sind optional. Der fertige Aufbau ist im folgenden Bild zu sehen, angeschlossen ist ein Nema17 Motor mit 0,5Nm Haltemoment. Auch kleinere Nema23 Motoren können mit diesem Aufbau angesteuert werden.

Testaufbau mit Arduino, Tiny-Step und Schrittmotor von Nidec Servo

Testaufbau mit Arduino, Tiny-Step und Schrittmotor von Nidec Servo

Nach dem gleichen Prinzip und hier sogar mit der identischen I/O-Beschaltung lassen sich aber auch deutlich leistungsfähigere Endstufen an den Arduino anbinden. Das folgende Bild zeigt einen Aufbau mit einer Endstufe vom Typ LAM DS1078 (bis 14A bei bis zu 90V), die einen Nema34 Motor mit 3,1Nm antreibt. Die DS10-Serie ist eine industrietaugliche Serie von Schrittmotorendstufen mit SPS-kompatiblen I/Os. Durch den Einsatz dieser Kraftpakete ergeben sich mit dem Arduino ganz neue Möglichkeiten.

Testaufbau mit LAM DS1078

Testaufbau mit LAM DS1078

Das Programmierbeispiel (Arduino-Projekte werden auch Sketch genannt) ist auf Git-Hub frei zum Download verfügbar. Ich würde mich über Rückmeldungen zum Einsatz der Accellib freuen.

China-Endstufen im Test bei c’t Hardwarehacks

Mittwoch, Mai 2nd, 2012

Der c’t Redakteur Carsten Meyer widmet sich in seinem Testbericht auf Heise Hardware-Hacks den inzwischen sehr belieben 3- oder 4-achsigen Schrittmotorendstufen auf Basis des Toshiba TB6560AHQ. Im Test nimmt das Design genauer unter die Lupe und entdeckt einige Ungereimtheiten. Fazit: Wo Licht ist, ist auch Schatten…

Zum Testbericht auf Hardware-Hacks

Seriell oder parallel? Alles eine Frage der Drehzahl, oder?

Dienstag, Mai 24th, 2011

Über die Unterschiede von unipolaren und bipolaren Schrittmotoren wurden bereits einige Worte verloren. Aber wie sieht es bei Motoren mit 8 Anschlüssen aus, sollte man hier die Wicklungen seriell oder parallel verschalten? Das ist in erster Linie eine Frage der geforderten Drehzahl, aber auch des Geldbeutels. Der folgende Beitrag widmet sich den Vor- und Nachteilen beider Beschaltungsarten.

Warum sich bei einem unipolaren Motor die Wicklungsinduktivität vervierfacht, wenn man die Wicklungen bipolar betreibt (also in Reihe schaltet), wurde ja bereits hergeleitet. Dieser Zusammenhang gilt natürlich auch für einen Schrittmotor mit 8 Anschlüssen. Aus dem gleichen Grund ändert sich die Induktivität gegenüber dem uniolaren Fall nicht, wenn man die Wicklungshälften parallel schaltet. Für den Wicklungswiderstand gelten dagegen die bekannten Zusammenhänge für Reihen- und Parallelschaltung, also doppelter Widerstand im seriellen Betrieb und halber Widerstand bei parallelem Betrieb. Oder anders ausgedrückt: Beim Wechsel von parallel auf seriell vervierfacht sich der Widerstand. Und das hat Auswirkungen auf die elektrische Zeitkonstante der Wicklung (tau=L/R). Sie bleibt nämlich in beiden Fällen gleich.

Trotzdem gibt es erhebliche Unterschiede in der Perfomance des Motors. Dieser Effekt ist durch die Spannung zu erklären. Legt man die gleiche Spannung an einen Schrittmotor mit parallel geschalteten Wicklungen an und an einen mit seriell geschalteten Wicklungen, liegt an den Teilwicklungen des ersten Motors die volle Spannung an, wärend die seriell geschalteten Wicklungen eine Art Spannungsteiler bilden, so dass jede Teilwicklung nur die halbe Betriebsspannung „sieht“. Und da eine höhere Betriebsspannung zu einem schnelleren Stromanstieg führt, erreicht ein Motor mit parallel geschalteten Wicklungen deutlich höhere Drehzahlen (bzw. bei gleicher Drehzahl mehr Drehmoment, zumindest im oberen Bereich der Kennlinie).

Die folgenden Kennlinen verdeutlichen den Unterschied. Während der seriell beschaltete Schrittmotor bei 24V= und 200 U/min nur noch 0,7N, erreicht, schafft der parallel verschaltete Motor mit 1,7Nm noch mehr als das Doppelte. Die Kennlinien gelten übrigens auch für den PK268-E2.0, bei PK268PDA und PK268PA ist lediglich die serielle bzw. parallele Verdrahtung schon werksseitig vorgenommen worden. Einen ähnlichen Effekt wie der Wechsel von serieller zu paralleler Beschaltung hat übrigens eine Anhebung der Betriebsspannung, wie der 2. Satz Kennlinien deutlich macht. Wegen der unterschiedlichen Spannungen (36V vs. 48V) sind jetzt beide Beschaltungsarten allerdings nicht mehr direkt vergleichbar.

Kennlinen PK268

Drehzahl Drehmoment-Kennlinien beim PK268 (oben parallel, unten seriell).

(Quelle: Katalog 2-Phasen Schrittmotoren, Fa. Oriental Motor)

Da beide Teilwicklungen mit dem Nennstrom betrieben werden sollen, erreicht man die höhere Leistung im Parallelbetrieb (wir erinnern uns: P=ω*M, also Leistung ist Drehmoment mal Drehzahl) letztlich durch einen höheren Strom. Und damit benöigt man unter Umständen eine leistungsstärkere Schrittmotorsteuerung (bzw. -endstufe), die dann entsprechend teurer ausfällt. Ob sich der Leistungssprung lohnt, ist also auch eine finanzielle Frage. Ob eine höhere Betriebsspannung für genügend Drehmoment-Reserve sorgt, muss im Einzelfall geprüft werden, z.B. durch Simulationen oder Messungen. Bei Serienanwendungen ist es nicht unüblich, vom Motorhersteller Kennlinien für die konkreten Betriebsbedingungen messen zu lassen. Unter Umständen erreicht man aber auch erst mit einer kundenspezifisch angepassten Wicklung ein optimales Ergebnis. Es kann sich also lohnen, einen externen Berater hinzuzuziehen…

Unipolar oder Bipolar?

Dienstag, April 12th, 2011

2-phasige Schrittmotoren werden unipolar oder bipolar ausgeführt. In diesem Beitrag möchte ich die Unterschiede zwischen beiden Beschaltungsarten erläutern und die Vor- und Nachteile aufzählen.

Unipolarer Schrittmotor:
Beim unipolaren Schrittmotor ist jede Wicklung mit einem Mittelabgriff ausgestattet, der Motor hat also 6 Litzen. Teilweise werden auch beide Mittelabgriffe zusammen ausgeführt, so dass der Motor dann nur 5 Litzen hat. Zur Ansteuerung eines unipolaren Motors legt man die Mittelabgriffe der Wicklung üblicherweise an die positive Versorgungsspannung und schaltet mit jeweils zwei Transistoren an den Wicklungsenden abwechselnd eines der beiden Enden nach Masse. Vorteil dieser Schaltung ist, dass nur vier Transistoren benötigt werden. Mit der zunehmenden Integration von Halbleitern hat dieser Vorteil schon lange an Bedeutung verloren, weswegen man heute fast ausschließlich bipolare Treiberschaltungen verwendet. Ausnahmen sind absolute low-cost Anwendungen. Der wesentliche Nachteil liegt darin, dass immer nur eine Hälfte der Wicklung bestromt ist, was zu einem niedrigeren Dreh- und Haltemoment und damit zu einem schlechteren Verhältnis von Bauraum und Gewicht zu Drehmoment führt.

Bipolarer Schrittmotor:
Bei bipolaren Schrittmotoren wird die gesamte Wicklung bestromt. Um die Wicklung umpolen zu können sind an jedem Wicklungsende zwei Transistoren erforderlich, insgesamt also 8 Tranistoren bzw. zwei Vollbrücken (die im englischen wegen ihres Aufbaus „H-Bridge“ genannt werden) für einen 2-phasigen Motor. Es sind Ausführungen mit 4 bzw. 8 Litzen üblich. Schrittmotoren mit 8 Litzen nehmen eine Sonderstellung ein, da sie je nach Beschaltung wahlweise unipolar oder bipolar angesteuert werden können.

Schaltschema bipolar und unipolar

Schaltschema bipolar (links) und unipolar (rechts). Quelle: Wikipedia

Unterschiede in den elektrischen und mechanischen Eigenschaften:

Hinweis: Die folgenden Betrachtungen gehen vom Vergleich zwischen einem unipolaren Motor und dem selben Motor in bipolarer Beschaltung aus. Die Verhältnisse entsprechen der bipolar seriellen Beschaltung bei einem Motor mit 8 Anschlüssen. Die Unterschiede für diese Motorvariante (bipolar seriell und bipolar parallel) werden in einem späteren Beitrag erläutert.

1) Wicklungsdaten

Im Prinzip kann man einen unipolaren Motor auch bipolar ansteuern, was tatsächlich häufig gemacht wird. Es ist auf den ersten Blick klar, dass sich in diesem Fall der Wicklungswiderstand verdoppelt, da beide Teilwicklungen in Reihe geschaltet sind. Weniger klar ist, dass die Induktivität der Wicklung nicht verdoppelt, sondern vervierfacht wird. Das liegt daran, das die (Teil)-Spulen nicht unabhängig voneinander sind, sondern auf den selben Spulenkörper gewickelt sind. Da die Spulenlänge konstant bleibt, sich die Windungszahl aber verdoppelt (welche quadratisch in die Induktivität eingeht) erhält man die vierfache Induktivität.

2) Strom und Verlustleistung

Die Katalogdaten von Schrittmotoren mit 6 oder 8 Anschlüssen beziehen sich (soweit nicht explizit etwas anderes angegeben wurde) auf den unipolaren Betrieb. Der Motorstrom ist dabei so festgelegt, dass der Motor auch im Dauerbetrieb thermisch nicht überlastet wird. Wird nun ein unipolarer Motor bipolar betrieben, ist die ganze Wicklung bestromt, im unipolaren Betrieb nur eine Hälfte. Die thermische Belastung wird im unteren Drehzahlbereich im Wesentlichen durch die Kupferverluste in der Wicklung bestimmt. Hier gilt P(verlust)=I²*R. Damit im bipolaren Betrieb (bei doppeltem Wicklungswiderstand) die gleiche Verlustleistung anfällt, muss der Strom um den Faktor 1/Wurzel(2)=0,707 reduziert werden.

3) Drehmoment

Die elektrische Wicklungszeitkonstante (t=L/R) ist also bei einem bipolar betriebenen Motor doppelt so hoch wie im unipolaren Betrieb. Das führt letztlich dazu, dass das Drehmoment beim bipolaren Betrieb im oberen Drehzahlbereich schneller abfällt, da beim schnellen Umpolen der Wicklung der Strom nicht so schnell auf- und abgebaut werden kann. Auf der anderen Seite ist das Moment im unteren Drehzahlbereich etwa 30-40% höher, weil die doppelte Anzahl Wicklungen zur Momentbildung beiträgt, gleichzeitig aber der Strom geringer ist. Theoretisch müsste das Haltemoment im bipolaren Betrieb also genau um den Faktor Wurzel(2)=1,414 höher sein als beim unipolaren Betrieb, in der Praxis kommen jedoch zusätzlich noch Sättigungseffekte ins Spiel.

1) Strom und Verlustleistung

Die Katalogdaten von Schrittmotoren mit 6 oder 8 Anschlüssen beziehen sich (soweit nicht explizit etwas anderes angegeben wurde) auf den unipolaren Betrieb. Der Motorstrom ist dabei so festgelegt, dass der Motor auch im Dauerbetrieb thermisch nicht überlastet wird. Wird nun ein unipolarer Motor bipolar betrieben, ist die ganze Wicklung bestromt, im unipolaren Betrieb nur eine Hälfte.