Schlagwort-Archive: Schrittmotortreiber

  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. Mobiler Platinenbelichter

    7

    03.08.2015 von plaintron

    gehaeuse-esposa

    Im letzten #BlogBlick hatte ich es schon angedeutet: Eines meiner bestimmt bald irgendwann fertigen Projekte ist ein UV-Platinenbelichter. Bisher belichte ich meine Platinen mit einem umgebauten Flachbettscanner, in den ich eine Lochraster-Platine voller UV-LEDs gebaut habe. Die Zeitsteuerung übernimmt eine externe mechanische Eieruhr und die Ergebnisse sind OK genug für Testplatinen.

    Dann aber ergab es sich, dass mir ein seltsamer Koffer von einem längst entsorgten Aldi-Elektroschrauber in die Hände fiel:

    koffer-esposa

    Irgendwas Nützliches muss daraus werden, und so kam mir die Idee, einen mobilen Belichter zu bauen. Größer als eine Eurokarte (160×100) sind meine Platinen üblicherweise nicht. Etwas Reserve kann aber nicht schaden. Also habe ich das Gehäuse erst mal in Sketchup skizziert, um zu schauen, ob ich alle Bauteile darin unterbringe. Außerdem sollte er beidseitig belichten können und vielleicht noch ein Vakuum-System haben.

    sketchup-belichter-esposa

    In dem Gehäuse ist sogar genug Raum für zwei Eurokarten, zwei kleine Luftpumpen und die zugehörige Elektronik. Also habe ich eine Platine in Target3001 entworfen.

    3d_target_esposa

    Die Anzahl der LEDs ist höher als eigentlich notwendig. Aber in den Elektronik-Foren wird oft berichtet, dass diese LEDs bei hoher Leistung schnell degenerieren und der UV-Anteil sinkt. Also nehme ich mehr LEDs, die kosten nicht viel, und betreibe sie mit etwa 2/3 Leistung über einen PWM-Dimmer. Die gelben LEDs sind als Beleuchtung zum Positionieren der Filme gedacht und ebenfalls dimmbar. Um Platz und Leiterbahnen zu sparen hängen die LEDs an der selben Leitung, sind aber entgegengesetzt gepolt. Durch Umpolen der Betriebsspannung kann ich also zwischen Gelblicht und UV umschalten. Gelbes Licht liegt in einem Wellenlängenbereich, der weit von 400nm entfernt ist, ich kann also in Ruhe positionieren, ohne dass die UV-Schicht belichtet wird.

    Der Einfachheit halber habe ich mit Streifenraster-Platinen gearbeitet, die gerade in der passenden Größe bei Pollin herumlagen. Für die professionelle Optik und als Bestückungshilfe habe ich das Bestückungslayout auf selbstklebende Folie gedruckt und auf die Platine geklebt.

    gehaeuse-esposa

    Bis es dann so aussah, waren noch ein paar Arbeitsschritte notwendig. Den Rahmen aus Aluminium, Holz und Plexiglas habe ich mit Hilfe der CNC-Fräse wirklich sehr exakt hinbekommen. Was noch fehlt ist die Glasplatte. Da gab es einen kleinen Rückschlag: Ich hatte zwei Scanner-Gläser, die ich zuschneiden wollte. Glas schneiden kann ich, das sollte nicht das Problem sein. Anritzen klappte auch prima, aber das Glas wollte nicht durchknacken. Mehr Druck, eine Abbrech-Vorrichtung, Handschuhe an, zur Sicherheit, und Schutzbrille auf, mehr Kraft – und Peng! – zersprang die Scheibe in viele tausend Stücke. Inzwischen weiß ich, dass in Scannern gehärtetes Sicherheitsglas verwendet wird, das sich nicht schneiden lässt 😉

    Der Plexiglas-Rahmen mit der Glasscheibe soll die Lichtkammer luftdicht abschließen. Im Griffbereich des Koffers sitzen zwei kleine Luftpumpen, die das Gehäuse evakuieren. Der Rahmen enthält einige Löcher (noch nicht gebohrt), durch die die Luft zwischen der oberen und der unteren Glasplatte abgesaugt werden soll.

    rahmen-esposa

    Zur Ansteuerung der LEDs verwende ich einen – wer hätte das gedacht – Schrittmotortreiber mit Doppel-H-Brücke. Der eigenet sich prima dafür, weil er auf zwei Kanälen die Spannung umpolen kann und bereits ein PWM-Modul eingebaut hat. Für die Ansteuerung sind dann pro Seite (also oben und unten) nur zwei Leitungen notwendig, die über einen Mikrocontroller angesteuert werden (wahrscheinlich ein AVR mit Arduino-Bootloader).

    Das Bedienteil findet im oberen Deckelteil Platz. Ein günstiges und superdünnes LCD habe ich bei Pollin eingepackt, die Bedienung soll über Sensortasten laufen oder vielleicht auch über einen Mini-Joystickschalter, oder beides, mal sehen.

    esposa_lcd_start_screen_03Das Pollin-Display ist grafikfähig, hat 96 x 32 Pixel und lässt sich mit einer modifizierten GLCD-Bibliothek betreiben. Erste Tests damit habe ich schon gemacht, aber die Menüführung wird wohl einigen Aufwand verursachen. Immerhin existiert schon der Startbildschirm (und ja, ich geben meinen Projekten immer Namen bevor sie fertig sind).

    Wann es mit dem Belichter weiter geht weiß ich noch nicht. Im Moment sind ein paar andere Sachen wichtig, aber bis Ende des Jahres wäre ich gerne damit durch.

     

  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