Schlagwort-Archive: Schrittmotor

  1. Step by Step: Video Stepper Motor Basics

    Hinterlasse einen Kommentar

    11.08.2015 von plaintron

    In den letzten Beiträgen der Serie „Step by Step“ habe ich einige Grundlagen der Schrittmotor-Ansteuerung erklärt. Ein Video von STMicroelectronics geht hier noch etwas mehr in die Tiefe, zeigt mathematische Zusammenhänge und illustriert verschiedene Optimierungsmöglichkeiten:

    Stepper motor basics (ePresentation) STMicroelectronics (39:31)

  2. Step by Step: Ansteuerung

    Hinterlasse einen Kommentar

    05.08.2015 von plaintron

    Im letzten Beitrag dieser Serie ging es um den Leistungsteil der Schrittmotorsteuerung. Nun fehlt noch das passende Signal, um die Endstufen im richtigen Takt so umzupolen, dass daraus ein Drehfeld für den Motor resultiert.

    Die Grafik mit den Spannungsverläufen habe ich hier auf acht Takte gekürzt und jeweils eine 1 für V+ und eine 0 für GND eingetragen.

    signale_c

    Nun lässt sich für jeden Takt ein Wert in Form einer Binärzahl mit 4 Bit darstellen:

    1: 1000h-bridge
    2: 1001
    3: 0001
    4: 0101
    5: 0100
    6: 0110
    7: 0010
    8: 1010

    Nochmal zur Verdeutlichung: Die Endstufe hat 4 Anschlüsse. Je H-Brücke existiert ein Anschluss für „positiv“ (A und C) und ein Anschluss für „negativ“ (B und D). In unserem Beispiel soll jeweils am gerade aktiven Anschluss eine Spannung von +5V anliegen, ansonsten 0V. Das sieht also nach einem idealen Job für einen kleinen 8-Bit-Mikrocontroller aus. Wir nehmen uns einfach einen Port und verbinden die unteren 4 Bit mit dem Schrittmotortreiber. Die oberen 4 Bit bleiben ungenutzt oder werden durch logische Verknüpfung anderweitig genutzt.

    Was noch fehlt, ist das passende Programm. Wir könnten uns jetzt einen wahnsinnig raffinierten Algorithmus ausdenken, um die oben gezeigten Bitfolgen zu generieren. Wir können aber auch einfach ein 8-Byte-Array spendieren und die Werte dort ablegen. Das spart Rechenleistung, die wir für andere Aufgaben sinnvoller nutzen können.

    Die Zahlenfolge für dieses Beispiel lautet 8,9,1,5,4,6,2,10.

    Hexadezimal sieht das dann in C stark vereinfacht dann so aus:

    char states[8] = {0x08, 0x09, 0x01, 0x05, 0x04, 0x06, 0x02, 0x0A};

     

    Mit einer einfachen Schleife werden diese Werte nun nacheinander auf einen Port geschrieben:

    int step = 0;
    
    while (step < 8){
      PORTA = states[step];
      step ++;
      if ( step > 7 ) step = 0;
    }

     

    Natürlich fehlt hier noch eine Menge, etwa Initialisierungen und eine Verzögerung in der Schleife für die korrekte Drehgeschwindigkeit. Außerdem soll die Drehzahl variabel und auch die Drehrichtung umkehrbar sein. Um das Grundprinzip zu erklären genügt das aber und es gibt natürlich fertige Controller, die diese Aufgabe komfortabel erledigen. Das wird dann Thema des folgenden Artikels dieser Serie.

  3. Step by Step: Die H-Brücke

    1

    02.08.2015 von plaintron

    signale_exp

    Im dritten Teil meiner Schrittmotor-Serie wollen wir eine Schaltung herleiten, die in der Lage ist, den Motor mit einem Leistungssignal zu versorgen. Das Bild oben entspricht im Prinzip dem Graph aus dem vorherigen Beitrag, allerdings ist die Darstellung etwas anders gewählt.

    Wir betrachten hier jeden Anschluss des Schrittmotors einzeln: A und B für die blaue Wicklung, C und D für die gelbe Wicklung. Wie wir sehen, wird jeder Anschluss in einem bestimmten Takt zwischen Masse und Betriebsspannung hin und her geschaltet. Liegt Anschluss A auf Betriebsspannung und B auf Masse, fließt der Strom in positiver Richtung durch die Wicklung. B auf Betriebsspannung und A auf Masse sorgt für die umgekehrte Stromrichtung. Liegen beide Anschlüsse auf Masse oder auf Betriebsspannung, fließt kein Strom.

    Wir benötigen also ein Bauteil, das einen Punkt der Schaltung zwischen Betriebsspannung und Masse hin- und herschalten kann. Grundsätzlich können wir das mit zwei einfachen Transistoren in Reihe erledigen und unseren Wicklungsanschluss zwischen die beiden Transistoren hängen. Stark vereinfacht sieht das so aus:gegentakt_exp

    Wer sich schon mal mit Transistorschaltungen beschäftigt hat, erkennt sofort die Gegentaktschaltung, wie sie auch in Audio-Verstärkern zum Einsatz kommt. Dieser Aufbau lässt sich spiegeln, um eine Brückenschaltung herzustellen. Die Motorwicklung hängt dann zwischen den beiden Gegentaktschaltungen, was an den Buchstaben „H“ erinnert. Das Ergebnis wird dann auch H-Brücke genannt. Mit einer H-Brücke können wir einen normalen Elektromotor steuern. Je nach Eingangssignal dreht dieser sich dann links oder rechts herum bzw. überhaupt nicht.

    Für unseren Schrittmotor, der ja über zwei Wicklungen verfügt, benötigen wir zwei H-Brücken, also eine Doppel-H-Brücke. Diese Schaltung hat nun insgesamt vier Steuereingänge, 4 Ausgänge für die Spulen und sieht so aus (Prinzipschaltung L298 von ST):

    L298_block

    Wir sehen hier einige Logik-Bausteine in der Schaltung. Die sind in der Praxis aufwändiger als hier dargestellt und müssen nebenbei auch noch dafür sorgen, dass nie zwei in Reihe liegende Transistoren gleichzeitig schalten. Das würde nämlich dazu führen, dass der magische Rauch aus dem Bauteil entweicht und es nicht mehr funktioniert 😉 Außerdem wird der Ausgangsstrom getaktet, um ihn lastabhängig verändern zu können.

    Mit den Eingangssignalen In1 bis In4 wird der Motortakt gesteuert. Wie das geht und wie diese Signale aussehen müssen, zeige ich im nächsten Artikel dieser Serie.

  4. Step by Step: Erste Schritte

    2

    01.08.2015 von plaintron

    Gestern habe ich eine kurze Einführung zum Thema Schrittmotoren geschrieben. Eine genauere Betrachtung soll zeigen, was zu welchem Zeitpunkt in den Wicklungen geschieht.

    Der grundsätzliche Aufbau eines bipolaren Schrittmotors sieht so aus:

     

    bipolar_expDer Permamentmagnet im Rotor richtet sich nach den Magnetfeldern der beiden Statorspulen aus. Im Bild fließt ein Strom durch die blaue Spule zwischen den Anschlüssen A und B. Wird nun zusätzlich ein Strom durch die gelbe Spule geschickt, dreht sich der Anker um 45 Grad nach links oder nach rechts, je nach Stromrichtung.

    Wird der Strom in der blauen Spule nun unterbrochen, erfolgt eine weitere Drehung um 45 Grad und der Anker richtet sich nach der gelben Spule aus. Für die nächsten 45 Grad muss wieder die blaue Spule durchströmt werden, aber in entgegengesetzter Richtung wie zuvor.

    Es ergibt sich also folgende Schaltsequenz (B für blau, G für gelb, + und – für die Stromrichtungen bzw. 0 für Strom aus):

    G0 -> G+ -> B0 -> B- -> G0 -> G- -> B0 -> B+ -> (G0 …)

    drehung_exp

    Im grauen Diagramm sehen wir die Signalverläufe der beiden Spulenströme. Jeder Spulenstrom kann drei Zustände annehmen: Positiv, negativ und aus. Im oben gezeigten Halbschrittbetrieb ergeben sich so also acht Positionen für eine volle Drehung. Jede Flanke führt zu einem Positionswechsel. Um die Spulen richtig ansteuern zu können benötigen wir also ein Bauteil, das pro Spule zwei Umschalter mit Aus-Stellung beinhaltet:

    dpdt_exp

    Dieser Schalter muss natürlich elektronisch gesteuert werden, damit das Timing genau stimmt. Ein solches Bauteil ist der Schrittmotortreiber, den ich im nächsten Beitrag genauer erkläre.

     

  5. Step by Step: Der Schrittmotor

    2

    31.07.2015 von plaintron

    Plötzlich und unerwartet ist ein halbes Jahr vergangen, ohne dass es hier neue Beiträge gab. Wenn andere Baustellen rufen, bleibt ein Blog leider schnell mal legen.

    In einem früheren Beitrag habe ich über Schrittmotortreiber geschrieben und warum ich mit diesen Bauteilen so gerne arbeite. Nun möchte ich etwas mehr in die Grundlagen schauen: Warum braucht man diese Treiber? Was ist überhaupt die Besonderheit eines Schrittmotors? Was kann ich damit anstellen?

    370px-AnkerdeEinfache DC-Motoren (Asynchron-Motoren) bestehen aus einem Stator, einem Rotor und einem Kommutator. Der Stator ist meistens das äußere Teil, also ein Gehäuse mit Permamentmagneten. Der Rotor besteht im Prinzip aus mehreren Elektromagneten, die abwechselnd von Strom durchflossen werden und so mit den äußeren Permamentmagneten über das Magnetfeld interagieren, um die Drehung auszulösen. Der Kommutator sorgt dafür, dass die einzelnen Magnetspulen abwechselnd mit Strom versorgt werden. Bei Motoren mit nur einer einzelnen Spule wird jeweils die Stromrichtung umgepolt.

    Bürstenlose Motoren (“Brushless”) haben keinen Kommutator, deshalb muss das Drehfeld außerhalb des Motors elektronisch erzeugt werden (Synchron-Motor). Die Spulen werden dann einzeln angesteuert, wobei die Frequenz der angelegten Wechselspannung (gewöhnlich 3 Phasen) die Drehzahl bestimmt.

    Der Schrittmotor ist im Prinzip ein Synchron-Motor, muss also mit einem bestimmten Signal von außen angesteuert werden. Einige Bastler haben vielleicht schon mal einen kleinen Schrittmotor aus einem CD-Laufwerk, einem Drucker oder Scanner ausgebaut und festgestellt, dass sich nichts dreht, wenn man eine Spannung anlegt. Höchstens ein kleiner Ruck ist zu beobachten, wenn eine der Spulen ein Magnetfeld aufbaut.

    Betrachten wir zunächst einen sehr einfach aufgebauten Schrittmotor: Die vier Spulen liegen außen im Gehäuse, der Rotor ist mit einem Permamentmagneten bestückt. Jede Spule kann einzeln angesteuert werden. Nehmen wir an, die Wicklung auf 6-Uhr-Position, wie in der Grafik gezeigt, ist gerade eingeschaltet. Wird nun die 9-Uhr-Wicklung unter Strom gesetzt und gleichzeitig die vorherige Verbindung geöffnet, dreht sich der Rotor um genau 90 Grad nach rechts. Wird dieser Vorgang nun Schritt für Schritt im Uhrzeigersinn wiederholt, erhalten wir eine ständige Rechtsdrehung.

    Ein großer Vorteil bei dieser Vorgehensweise ist nun, dass wir nicht nur eine Drehung des Motors erreichen, sondern zu jedem Zeitpunkt auch die volle Kontrolle darüber haben, in welcher Position sich der Anker gerade befindet. Treibt dieser Motor etwa den Sensorschlitten eines Scanners an, wissen wir genau, auf welcher Höhe des Papiers gerade ein Linienbild aufgenommen wird, weil die Anzahl der Impulse mitgezählt wird. In Verbindung mit einer Mikrocontrollerschaltung erhalten wir also ein zusammengesetztes Bild aus vielen einzelnen Linien, das schrittweise in einen Speicher eingelesen werden kann.

    StepmotschemeDurch eine feinere Aufteilung des Rotors in mehrere einzelne Magnete lässt sich der Schrittwinkel des Motors verkleinern. Schrittmotoren für CNC-Anwendungen arbeiten gewöhnlich mit 200 Schritten pro Umdrehung, wobei durch Zwischenschritte mit zwei gleichzeitig aktivierten Wicklungen 400 Einzelschritte erreicht werden. Die Auflösung lässt sich weiter erhöhen, indem ungleiche Ströme durch zwei Wicklungen geschickt werden (Microstepping).

    So weit zur grundlegenden Funktionsweise eines Schrittmotors. Zu den Feinheiten der Schrittmotortechnik und der Ansteuerungs-Varianten schreibe ich morgen mehr.

  6. Schrittmotortreiber

    1

    19.12.2014 von plaintron

    Ich muss gestehen, dass Schrittmotortreiber eine gewisse Faszination auf mich ausüben. Klingt komisch, ist aber so, und aus leistungselektronischer Sichtweise auch nachvollziehbar: Schrittmotoren bewegen oft riesige Maschinen auf weniger als einen Hundertstelmillimeter genau. Dazu sind hohe Leistungen notwendig, gleichzeitig ist aber Präzisionsarbeit angesagt, die von winzigen digitalen und analogen Schaltkreisen übernommen wird.

    DRV8825

    45V, 2,2A auf kleinster Fläche:
    DRV8825 von Texas Instruments

    Nanometerdünne Silizium-Strukturen müssen auf einer Fläche von wenigen Quadratmillimetern neben riesigen Spannungsspitzen und großen Ströme zuverlässig funktionieren. Aktuelle, extrem niederohmige MOSFET-Endstufen schaufeln einige Hundert Watt durch die Motoren und erwärmen sich dabei nur geringfügig. Moderne Motortreiber benötigen nicht mal einen separaten Kühlkörper sondern geben ihre überschüssige Wärme über die Kupferleiterbahnen der Platine ab.

    Im letzten Beitrag habe ich einen solchen Baustein abgebildet, es ist der TB6600HG von Toshiba. Dieser Treiber ist extrem weit verbreitet, befindet sich in den meisten billigen China-Endstufen für Fräsmaschinen und bringt alles mit, was man braucht. Nur wenige externe Bauteile sind notwendig. Die Steuerung von Drehrichtung und Geschwindigkeit der Motors erfolgt über zwei Leitungen (Takt, Richtung), außerdem kann per Microstepping eine fast sinusförmige Ausgangsspannung erzeugt werden, was die Motoren sehr leise und gleichmäßig laufen lässt. In den MOSFET-Endstufen sind außerdem Dioden eingebaut, die induktive Spannungsspitzen der Motorwicklungen abfangen.

    Die 13 Jahre alte Kombi von STMicroelectronics aus L297 und L298

    Die 13 Jahre alte Kombi von STMicroelectronics:
    Controller L297 und Endstufe L298

    Nun ist der TB6600HG schon in die Jahre gekommen. Ich habe noch ein paar hier liegen, die ich nicht mehr benötige und demnächst bei eBay einstelle, deshalb auch das Foto. Ursprünglich wollte ich meine CNC-Fräse damit umbauen und die Treiber direkt in die Motorgehäuse setzen, um möglichst wenige Leistungskabel verlegen zu müssen. Aber die TB6600HG haben auch ein paar Nachteile: Sie sind groß, nicht für Oberflächenmontage (SMD) geeignet und sie werden relativ warm, müssen also gekühlt werden. Leider gibt es nicht viele Alternativen, die mit 48 Volt und 3-4 Ampere zuverlässig arbeiten. Die alte Kombination aus L298 als Treiber und L297 als Controller (beide von ST) gibt es zwar im SMD-Format, aber dann müssen wieder acht externe Leerlauf-Dioden eingebaut werden und außerdem kommen nur Rechteck-Signal aus der Endstufe, weil kein Microstepping möglich ist.

    Danach wird die Luft auch schon dünn. Es gibt zwar noch eine Menge weiterer Bauteile in der Leistungsklasse, aber die brauchen entweder einen externen Controller, zusätzliche Leistungs-MOSFETs oder haben nur einen Brückenausgang statt zwei, was dann also die doppelte Anzahl von Endstufen erfordert.

    Habe ich etwas übersehen? Gibt es einen Treiberbaustein, den ich noch nicht kenne? Über Hinweise freue ich mich.

    Dann, Mitte letzten Jahres, tauchten plötzlich Pressemeldungen von Toshiba im Netz auf: Den TB6600 soll es jetzt auch im Flatpack-Gehäuse (HQFP64) als FG-Ausführung geben. Und eine neue Treiberserie ist auch im Anmarsch, TB67S10xA, wobei das ‘x’ für unterschiedliche Typen steht. Da kommt tatsächlich eine Reihe von eierlegenden Wollmilchtreibern auf uns zu, die einfach alles können, und das perfekt, wenn man der Ankündigung glauben darf.

    Was davon nach über einem Jahr übrig geblieben ist, erzähle ich im nächsten Teil dieses Beitrags.

Blogverzeichnis - Bloggerei.de