Hallo, im Rahmen eines Uni Projektes haben wir einen RoboterArm mit Schrittmotoren (2Phasen, 6 Anschlüsse) gebaut. Als Steuerung verwenden wir einen Arduino mit Adafruit Motortreibern. Im Laufe des Projekt haben wir festgestellt, dass die Leistung der Motertreiber nicht ausreichend ist, um die Schrittmotoren zu versorgen. Gibt es eine Möglichkeit das Signal, welches aus dem Motortreibern kommt, nachträglich mit einer externen Stromquelle zu verstärken bevor es in die Schrittmotoren gelangt? Sowas in der Art wie ein Audio-Verstärker? Z. B. durch Transistoren? Wie ihr merkt, bin ich als Maschinenbauer nicht sonderlich fit in diesem Thema, daher bitte ich um eine leicht verständliche Antwort :) Vielen Dank
:
Bearbeitet durch User
Der Arduino wird für jeden Motor Takt- und Richtungssignale 'rausgeben. Damit kannst du fast jede Schrittmotor Endstufe ansteuern. Die zu schwachen Treiber fallen dann weg.
Edgar K. schrieb: > dass die Leistung der Motertreiber nicht ausreichend > ist, um die Schrittmotoren zu versorgen. Gibt es eine Möglichkeit das > Signal, welches aus dem Motortreibern kommt, nachträglich mit einer > externen Stromquelle zu verstärken bevor es in die Schrittmotoren > gelangt? Das macht keinen Sinn, nimm einen leistungsfähigeren Schrittmotortreiber. Insbesondere wenn der Schrittmototreiber mit Stromregelung und Mikroschritt arbeitet, will er den Strom auch messen können.
das Problem ist, dass der Adafruit Motortreiber eigene Befehle zur Motorsteuerung hat (wie zb. Stepper1.Moveto(15), die wir auch verwendet haben. Der Code für die gesamte Robotersteuerung wurde ein halbes Jahr lang entwickelt und ist auch schon fertig. Ein neuer Motortreiber würde einen komplett neuen Code bedeuten da diese Befehle dann wegfallen oder sich ändern. Um dies zu vermeiden, dachte ich, man könnte einen Verstärker nachschalten. Theoretisch müsste es doch nicht so schwer sein? Als Ausgang aus dem Treiber kommt ein Analog Signal, dieses müsste bloß mit einer passenden Schaltung mit eigener Stromquelle verstärkt werden oder denke ich zu einfach?
:
Bearbeitet durch User
Edgar K. schrieb: > Theoretisch müsste es doch nicht so schwer sein? Theoretisch wäre es auch nicht schwer, den Namen des von euch verwendeten Motortreibers zu nennen, aber trotzdem kommt ihr nicht auf die Idee, weil es ja in der ganzen Welt nur eine einzigen gibt. Herr wirf Hirn. Selbst wenn es ein "shield" mit eigener Intelligenz wäre (gShield oder TinyG ist es aber nicht) sind auf dem Motortreiberchips mit CLK und DIR Eingänge n und es wäre erheblich einfacher, diese auf einer externen Platine gegeneigene, kräftigere zu ersetzen. Trinamic Chiops gibt es unter Arduino eher nicht. Vermutlich sind es also sowieso bloss dumme Treiber und euer Stepper1.Moveto(15) stammt bloss aus der Arduino Software und ihr seit nicht in der Lage, Software und Hardware intellektuell zu trennen.
Edgar K. schrieb: > Als Ausgang aus dem Treiber kommt ein Analog Signal, dieses müsste > bloß mit einer passenden Schaltung mit eigener Stromquelle verstärkt > werden oder denke ich zu einfach? Ein analoges Signal bei einem Schrittmotor?
Michael B. schrieb: > Michael Bertrandt 1. Ich habe den Namen bereits genannt. "Adafruit Motorhield". Warscheinlich bist du eher nicht in der Lage zu lesen. http://www.adafruit.com/products/1438 2. Stammen die Befehle aus dem Motorshield und sind definitiv keine Standard Arduino Befehle
1. Du hattest den Namen nicht genannt. Also vorsichtig bezüglich Leseschwäche. Du willst hier von uns etwas. Da ist Zurückhaltung zielführender. 2. Der (primitive) Motortreiber hat keine Intelligenz. Die Verarbeitung der Befehle erfolgt über die Library im Arduino. Es gibt nichteinmal Takt- und Richtungssignale. Du kannst also einfach eine leistungsfähige Motorbrücke nehmen.
Edgar K. schrieb: > Als Steuerung verwenden > wir einen Arduino mit Adafruit Motortreibern. Es gibt nur einen von Adafruit. Von daher habe ich ihn genannt. Das ist auch überhaupt nicht meien Art. Aber wer hier so hochwertige Antworten wie Michael B. schrieb: > Herr wirf Hirn. Michael B. schrieb: > ihr seit > nicht in der Lage, Software und Hardware intellektuell zu trennen. Der hat den Sinn eines Forums nicht verstanden. Danke Einhart P. schrieb: > Es gibt nichteinmal > Takt- und Richtungssignale. Du kannst also einfach eine leistungsfähige > Motorbrücke nehmen. Nochmal bitte für einen Maschinenbauer. Wir sollen also einen anderen Motortreiber nehmen. Was ist dann mit den Befehlen die wir als durch die Library eingebunden haben? https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino/library-reference
Hallo, Kurzfassung? Stärkeres Motor-Shield suchen. Die dazugehörige Library anschauen, welche Funktionen diese bietet, mit den von Euch genutzten Funktionen der aktuellen Lib vergleichen. Die neu einbinden und die Funktionsaufrufe anpassen. Oder kommt hier der Fluch des Arduino zum Tragen: ich habe keine Ahnung, was wir da machen, wir stecken nur zusammen und kopieren die Sketche zusammen? Was ist eigentlich Euer Problem? Das Shield hat wohl den TB6612 als Treiber, 1.2A pro Kanal,3A peak. Was nutzt Ihr für Motore? Seit Ihr an der Grenze der möglichen Ströme bei welcher Betriebsspannung oder wollt Ihr die Motore auch tauschen? Gruß aus Berlin Michael
Edgar K. schrieb: > Es gibt nur einen von Adafruit. https://learn.adafruit.com/all-about-stepper-motors/driving-a-stepper
Der Link war nötig. Unter "Adafruit Motorhield" hab ich was gänzlich anderes gefunden. Meine Aussage gilt nicht für den verlinkten Typ. Eben Nachgeschaut: Der TB6612 ist auch nur eine simple Brücke - kein spezieller Schrittmotortreiber.
:
Bearbeitet durch User
die da noch abgebildet sind, sind nicht von Adafruit sondern von synthetos wie man dem Text entnehmen kann und heißen auch nicht "Adafruit Motorshield" https://synthetos.myshopify.com/ Wir möchten auch die Motoren austauschen. Zurzeit liefert das Adafruit 1,2 A bei 12V. Die Motoren brauchen ebenfalls 0,6A Pro Phase (2Phasen=1,2A) und sind mit 12V angegeben. Laut http://rn-wissen.de/wiki/index.php?title=Schrittmotoren Abschnitt: "Fehler, die bei der Motorwahl oft gemacht werden", werden Schrittmotoren jedoch mit sogenannten "Chopper"-Schaltungen mit wesentlich mehr Spannung bei konstantem Strom betrieben um die volle Leistungsentfaltung zu bekommen. An sowas habe ich bei meiner Frage hier gedacht.
:
Bearbeitet durch User
Eine 12 V Motorbrücke ist nicht gut. Schrittmotortreiber laufen mit höheren Spannungen. Das ermöglicht einen schnelleren Stromanstieg und damit eine bessere Beschleunigung / höhere Maximaldrehzahl. Ihr solltet in den sauren Apfel beißen und eine richtige Schrittmotorsteuerung benutzen. Libraries wird es dafür sicher geben. Wenn der Motor vom Drehmoment ausrecht, dann müsst ihr den nicht tauschen.
:
Bearbeitet durch User
Leider reicht das Drehmoment nicht aus, daher suchen wir nach Möglichkeiten. Danke für die Antwort
Hoffentlich habt ihr Platz für größere Motoren. Sätze mit Treibern und Motoren gibt es günstig in China. Viele der ganz billigen 3/4 Kanal Treiber sind aber falsch aufgebaut und können Probleme machen bzw. schnell sterben.
Da adafruit keine Schaltbilder liefert, kann ich nur meine Glaskugel befragen: Auf dem Board befindet sich ein Microcontroller, der die Umsetzung von I2C zu Puls macht. Der steuert zwei Motortreiber. Leistungsfähigere Motortreiber können dies sein: http://www.ebay.de/itm/5x-Pololu-A4988-Stepper-Treiber-3D-Drucker-Printer-Ramps-Reprap-Nema-17-DRV8825-/331667391982?hash=item4d38eac5ee:g:Ip4AAOSwT6pVntMd Du mußt dafür an Deinem Shield die Leiterbahnen für Puls und Richtung und Standby herausfinden, darauf dünne Drähtchen anlöten, und diese dann auf 2 der hier angegebenen Boards führen. Bitte teile uns mit, ob das Löten für Euch eine Option ist. Wenn nein, gibt es keine Lösung. Wenn ja, dann helfen wir gern weiter.
Eine Lösung, die auch professionellen Ansprüchen genügen sollte: http://www.ebay.de/itm/German-Free-Ship-3axis-Nema34-stepper-motor1600-oz-in-Driver-DM860A-LONGS-/151650309747 Die geht natürlich in's Geld.
abc.def schrieb: > Leistungsfähigere Motortreiber können dies sein: > Ebay-Artikel Nr. 331667391982 Kopfschüttel
Von den Anschlussmaßen dürfen sich die Motoren nicht ändern (56x56mm) In der Länge ist es jedoch völlig egal in unserer Konstruktion. Gerade eingebaut sind folgende: http://www.conrad.de/ce/de/product/198320/Emis-Schrittmotor-SM12056-12-VDC-Halte-Moment-06-Nm-Phasen-Strom-max-06-A-Wellen-635-mm?ref=searchDetail (0,6Nm max) Ich dachte an einen wie diesen: http://www.emisgmbh.de/antriebs/sm/dl/pk56_4.pdf Modell: PK268-02A (1,7 Nm max) Dieser ist mit 1,4A bei 6,3V angegeben.
:
Bearbeitet durch User
@ Edgar Karsten (itsunreal)
>Leider reicht das Drehmoment nicht aus,
Statisch beim Halten oder dynamisch bei Bewegungen?
Wenn es schon ersteres ist, muss man prüfen, in wie weit der aktuelle
Motorstrom an der Grenze des Motors liegt. Viel mehr geht auf Dauer
nicht, denn dann überhitzt er.
Dynamisch kann man so einen Motor auch mal kurzzeitig überfahren, denn
die Bewegung ist ja meist nicht dauerhaft. Hier kann man mit höherer
Versorgungsspannung und einer höheren Einstellung des Motorstroms am
Treiber mehr Leistung rausholen. Aber diesen hohen Motorstrom muss man
in den Haltephasen wieder vermindern!
@ falk: Beim Roboterarm braucht es auch ein hohes Haltemoment. Viel absenken kann man da wahrscheinlich nicht. Vom gleichen ebay Lieferanten gibt's etwas passendes: http://www.ebay.de/itm/4axis-Nema23-Stepper-Motor-272oz-in-23HS8430-Driver-DM542A-Power-CNC-Kit-/151416080239
:
Bearbeitet durch User
Bastler schrieb: > Kopfschüttel So, wie ich das verstanden habe, ist der TO auf das proprietäre adafruit-Board angewiesen. Dieses kommuniziert mit dem Controller über I2C. Wenn dieses nicht der Fall wäre, gäbe es sehr viele Lösungsmöglichkeiten. Aber da er sich so festgelegt hat, bleibt nur das Löten. Natürlich kann man auch andere Schrittmotortreiber an_löten_. Leider hat der Bastler gar keine Idee, nicht mal diese.
Falk B. schrieb: > Dynamisch kann man so einen Motor auch mal kurzzeitig überfahren das ist mit dem vorhandenen Board nicht möglich, da gibt es keine variable Stromeinstellung. Bitte vergeßt nicht, daß ein Schrittmotor keinen Winkelgeber hat (normalerweise, und speziell im Arduino-Betrieb). Wenn Schritte verloren gehen, paßt die mechanische Position nicht mehr, und die Steuerung weiß es nicht. Wenn man Strom Drehmomentabhängig regeln muß (aus thermischen Gründen) und sich knapp am Limit durchhangelt, dann ist die Auslegung grundsätzlich falsch. Hilft aber alles nix, wenn die Anlage fast fertig ist. Bei Neu-Auslegung hat man mehr Möglichkeiten, aber das ist nun vorbei.
So - jetzt habe ich den Schaltplan für die Version 2.2 gefunden. Das Ding wird wirklich über I2C angesteuert. Wenn der Baustein auf der Karte (Bezeichnung kann ich nicht erkennen) ein Microcontroller sein sollte, der die ganze Positionierung incl. Rampe vornimmt, dann sieht es wirklich etwas düster aus.
>Da adafruit keine Schaltbilder liefert, kann ich nur meine Glaskugel >befragen: doch tun Sie in gut lesbarer Qualität: https://learn.adafruit.com/system/assets/assets/000/009/536/original/adafruit_products_mshieldv2schem.png?1396892649 in eigener Sache: Inzwischen hat der TO sicher gelernt das es nett gewesen währe gleich zu sagen was für ein Motor, mit link aufs Datenblatt, was für eine Endstufe, mit link, was für ein Netzeil,... ein Bild vom Aufbau und was er bisher gemessen oder beobachtet hat, und was er als Folge daraus ableitet. Er gibt sich Mühe, bleibt beim Thema und ist weitgehend freundlich also seit nett zu unserem Gast. Wenn es nun wirklich an der Endstufe liegen sollte spricht doch eigentlich nichts dagegen die Mootrklemmen also die Ausgänge des TB6612 zu nehmen und auf einen starken Treiber zu legen. Der kann ja sogar selbstgestickt sein mit mehr Spannung usw. Gemessen und geregelt wird da im Moment eh nichts. Da läuft rein gesteuert einfach das programmierte Pulsmuster ab. viel Erfolg hauspapa
:
Bearbeitet durch User
Ganz so einfach ist das nicht. Die stärkere Brücke müsste mit hoher Spannung betrieben werden und einen eigenen Chopper besitzen damit der Strom auf den verwendeten Motor begrenzt wird. Wenn die PWM bei der jetzigen Software zum Einsatz kommt, dann wird's ganz haarig. Ich denke das überfordert einen Maschinenbauer dann wirklich. Hier wäre vor Beginn des Projekts eine Diskussion hilfreich gewesen. Der verwendete Shield ist ein Universalteil. Für DC Motoren gut geeignet. Zum Drehen von Schrittmotoren gehts auch - ist aber alles andere als optimal.
:
Bearbeitet durch User
Ich würde als erstes mal die 12V Versorgung auf sauber gestützte 15V hochdrehen. Die verwendenten Komponenten können das ab. Dann schweigt sich Adafruit über das Kommando void setPWM(uint8_t pin, uint16_t val); komplett aus. Währe interessant was das genau macht. Dürfte für einen Maschinenbauer aber zu viel des Guten sein. Ich nehme nicht an das Du mit einem Oszilloskop umgehen kannst? schönes Wochenende hauspapa
Was gehen könnte: Integrierte Brücke >= 40V >= 3A suchen und den Strom mit Widerständen begrenzen. Das sollte wenigstens laufen (und auch die Bude heizen)
Ich selbst habe ein Oszilloskop mal im Grundlagenlabor benutzt, würde jetzt aber nicht behaupten, dass ich eine Schaltung damit durchchecken könnte. Evtl. könnte ich einen Kommilitonen dafür anhauen. Löten kann ich jedoch gut, sofern ich nichts an einer Leiterbahn in einer Mikroschaltung anlöten muss. Hier mal kleines Video unseres Roboters, damit ihr euch mehr davon vorstellen könnt. https://www.youtube.com/watch?v=3FG-mNuYEPs Falk B. schrieb: > Statisch beim Halten oder dynamisch bei Bewegungen? Sowohl als auch.
:
Bearbeitet durch User
Eine Lösung "out of the box" sehe ich für euer Problem nicht. Wenn ihr die Software nicht ändern wollt, dann braucht ihr ein neues Shield. Da muss der I2C PWM (PCA9685) Controller drauf, zwei leistungsfähigere Brücken z.B. http://toshiba.semicon-storage.com/info/lookup.jsp?pid=TB67H302HG&lang=en_us®ion=ncsa und Hochlastwiderstände zur Strombegrenzung. Die Platine müßte ein Elektroniker bauen - vielleicht eine Studienarbeit - wenn dafür genug Zeit wäre.
@ Einhart Pape (einhart) >und Hochlastwiderstände zur Strombegrenzung. Quark. Jeder zurechnungsfähige Schrittmotortreiber hat einen Chopper. Das konnte schon das Urzeitduo L297 + L293!
Jau Falk, das macht die Schaltung dann noch aufwändiger. Die Brücken, die ich gefunden habe, brauchen externe Bauteile für den Chopperbetrieb. Wir reden nicht von Schrittmotortreibern - die würden die Sache erheblich einfacher machen - sind aber nicht kompatibel zum verwendeten Shield. Wahrscheinlich nutzt die Library auch noch den PWM Eingang der Brücke. Dann hast du die PWM und den Chopper obendrauf. Ob das funktioniert?
:
Bearbeitet durch User
@ Edgar Karsten Wenn es mechanisch passt (oder einfach mit je 4 Distanzhülsen passend machen) ist die einfachste Lösung für euer Drehmoment Problem das hier: 5:1 Planetary Gearbox High Torque Nema 17 Stepper Motor 1.68A http://www.ebay.de/itm/DE-Ship-5-1-Planetary-Gearbox-High-Torque-Nema-17-Stepper-Motor-1-68A-DIY-CNC/231657714940?_trksid=p2047675.c100005.m1851&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D1%26asc%3D33847%26meid%3D0379638fbc444720be86e68e41195bbc%26pid%3D100005%26rk%3D5%26rkt%3D6%26sd%3D231657760339 Durch das Untersetzungsgetriebe hat der Stepper Motor satte 2 Nm Holding Torque. In eurer Software müsstest ihr dann einfach nur den Faktor 5,18 des Getriebes berücksichtigen. Die Versorgungsspannung würde ich von 12 V auf mind. 24 V hochsetzen.
:
Bearbeitet durch User
Einhart P. schrieb: > Albert M. schrieb: >> mind. 24 V hochsetzen > > Ab 15 V stirbt der Treiberchip. Was für ein Schrott-Driver :)
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.