Hallo Leute, Ich möchte mit einem "myAVR Board MK2" 2 bipolare Schrittmotoren (Schrittmotor PSM42BYGHW603 von Pollin) ansteuern. Programmiert wird das ganze über AVR-Studio 5.1.Die Stromversorgung von 5V und 12V beziehe ich aus einem alten PC-Netzteil. Nach etlicher Recherche hier im Forum ist mir bewusst das ich dafür einen IC brauche. Nun meine Eigentliche Frage: Was für einen IC muss ich verwenden um beide Motoren gleichzeitig zu betreiben? Am besten wäre ein IC an dem ich beide Motoren anschließen kann der aber auf meinem MK2 Board so wenig Ports wie möglich belegt da ich noch Sensoren und Display ansteuern muss. Des weitern ist es mir ein Rätsel wie ich das ganze Programmieren muss(mit Rampe), wenn jemand ein kleines Beispiel hätte wäre ich sehr Dankbar. Da ich keine Elektrotechnische Ausbildung habe bitte ich um Nachsicht ;-) Vielen Dank für eure Hilfe. PS. Wenn es hier im Forum schon eine Lösung für mein Problem gibt, hab ich diese Leider nicht gefunden.
Steffen S. schrieb: > Des weitern ist es mir ein Rätsel wie ich das ganze Programmieren > muss(mit Rampe), wenn jemand ein kleines Beispiel hätte wäre ich sehr > Dankbar. Von Atmel gibt es dazu z.B. die Atmel AppNote AVR446 - Linear speed control of stepper motor http://www.atmel.com/dyn/resources/prod_documents/doc8017.pdf
Kommt auf die Anforderungen an. Wenn du den Weg beider Motoren koordinieren willst, ist der Ansatz aus http://dank.bengler.no/-/page/show/5470_grbl besser geeignet. Treiber-IC - du brauchst bei allen 4 Pins. 2 * step und direktion.
Was mir gerade auffällt, die Motoren haben 12 Volt, 30 Ohm. Normalerweise betreibt man Schrittmotoren mit Strombegrenzung und einem vielfachen der Nennspannung. Das Problem: bei hoher Drehzahl werden Strom und Drehmoment durch die Induktivität begrenzt -- für hohe Drehzahlen braucht man hohe Spannung. Erst mal schauen, ob sich bei diesen Motoren und 12 Volt der Aufwand für Beschleunigungsrampen überhaupt lohnt, oder ob man die eh nur mit Start-Stop Frequenz betreiben kann.
Danke für die schnellen Antworten. Die Motoren werden verwendet um 2 Lineare Bewegungen mittels Trapezgewinde 10x3 zu erzeugen, die Verfahrenswege sind ca. 200mm und 250mm. Da die Positionierung genau erfolgen sollte dachte ich an Inkrementalgeber an den Gewindestangen. Die Drehzahl sollte bei 100 1/min sein.
Noch einer schrieb: > Treiber-IC - du brauchst bei allen 4 Pins. 2 * step und direktion. Mit 4 Pins könnte ich gut auskommen, hätte zur Not noch einen ProtExpander. Noch einer schrieb: > Erst mal schauen, ob sich bei diesen Motoren und 12 Volt der Aufwand für > Beschleunigungsrampen überhaupt lohnt, oder ob man die eh nur mit > Start-Stop Frequenz betreiben kann. Die Rampen sind kein muss, hatte das so Verstanden das die bei Schrittmotoren "gebraucht werden".
Jain. Bei hoher Frequenz summen die nur, laufen aber nicht los. Pollins Datenblatt ist ja etwas dünn. Musst sowieso experimentieren. Schrittmotoren laufen recht ruckelig. Da braucht es einige Zeit, bis man raus hat, wie alles ohne Schwingungen und Aussetzer läuft.
... Inkrementalgeber? Schrittmotoren und Inkrementalgeber passen nicht so recht zusammen. Entweder Servomotoren oder drauf verlassen, dass der Motor genau die Schritte macht, die der Controller vorgibt.
Ok, also keine Rampen und keine Inkrementalgeber. Könnte ich mit dem MK2 Servomotoren betreiben und wenn ja, bekomme ich diese für wenig Geld in dieser Baugröße? Bleibt mein Problem mit dem IC bzw. Shield für beide Motoren und der Programmierung. Hast du dafür zufällig noch eine Idee/Beispiel? Vielen Dank Wenn alles mal Funktioniert werde ich davon ein Video machen und den Link ins Forum posten
:
Bearbeitet durch User
Dieser Treiber sollte für dich ausreichen: http://www.ebay.de/itm/361240280436 Größe: 20x15mm Foto: Beitrag "Re: DRV8825 Steppertreiber treiben mich in den Wahnsinn" Mit dem weißen Poti stellt man den Strom ein. Den Schrittmotor darf man nur dann vom Treiber abstecken/anstecken wenn die Versorgungsspannung vorher entfernt wurde. Diese Treiber können zwar 2.2A liefern, aber wenn man einen geringeren Strom einstellt (wie bei dir 0.4A) werden sie auch nicht so warm. Du brauchst für jeden Motor einen solchen Treiber. Du brauchst aber eine Spannungsquelle die 24V bis 45V liefert und über 1.6A bringt. ------------------------ Methode 1: 24V / 5A Netzteil: http://www.ebay.de/itm/161370350439 14,39€ ------------------------ Methode 2: Du kannst aber auch die 12V aus deinem PC-Netzteil mit einem kleinen StepUp-Wandler auf bis zu 12V bis 38V bringen. http://www.ebay.de/itm/281651213545 Preis: 1.60 Euro Ich würde zwei Stück davon kaufen, für jeden Schrittmotortreiber einen. Du kannst die Spannung dann beliebig bis auf 38V erhöhen bis dein Motor bei der entsprechenden Geschwindigkeit ordentlich läuft. Der "DRV8825" kann bis zu 45V vertragen.
Mike J. schrieb: > Ebay-Artikel Nr. 281651213545 > Preis: 1.60 Euro > Ich würde zwei Stück davon kaufen, für jeden Schrittmotortreiber einen. Und wozu dann den? Um eine genügend hohe Spannung für den Schrittmotor zu erzeugen, bräuchte man einen Step-Up Wandler und keinen Step-Down.
Oh, sorry. Hier ist ein passender StepUp-Wandler der bis zu 35V liefert: http://www.ebay.de/itm/321666376693 Preis: 3,58 Euro
Steffen S. schrieb: > Des weitern ist es mir ein Rätsel wie ich das ganze Programmieren > muss(mit Rampe), wenn jemand ein kleines Beispiel hätte wäre ich sehr > Dankbar. Ein kleines Programm, aber mehr als drei Zeilen muß man schon programmieren: Beitrag "Schrittmotoransteuerung mit A4982 und ATmega328" Hier wird ein Motor mit Rampe über ISR(TIMER1_COMPA_vect) angesteuert. Der 2. Motor kann über ISR(TIMER1_COMPB_vect) angesteuert werden. Um Pins einzusparen, verwendet man vom Motortreiber nur dir DIR- und STEP-Eingänge. Wenn man mehr IO-Pins verwenden kann, wäre der L6219 ein einfacher Treiber für den hochohmigen Motor. Ohne minimale Vorkenntnisse mal eben so zwei Schrittmotore anzusteuern, ist vermutlich nicht so einfach, wie von Dir gedacht.
Wir sollten da mehrere Schritte empfehlen. Erst mal Motoren einbauen. Mit Last läuft ein Schrittmotor viel besser. Dann 2 Treibermodule mit Step und Direction Eingang kaufen. Mal schauen, ob es mit 12 Volt ohne Beschleunigungsrampen klappt. Danach irgendein Beispiel für eine Rampe für einen Motor ausprobieren. Falls 12 Volt nicht genug Drehmoment ergeben, anderes Netzteil oder Stepup kaufen. Danach mit den gesammelten Erfahrungen ein Programmkonzept für die Ansteuerung auswählen.
Eine andere Möglichkeit wäre es DDS https://www.mikrocontroller.net/articles/DDS zur Erzeugung der Schritte zu nehmen. Weil Du nur Rechtecke erzeugen willst ist N=1 und die Lookup-Tabelle entfällt komplett, stattdessen gibst Du das höchstwertige Bit des Phasenakkumulators direkt an einem Portpin aus, als Puls für den Steppertreiber. Die Vorteile wären: 1. Du brauchst nur eine einzige ISR für mehrere Achsen 2. Du hast eine konstante und hochauflösende Zeitbasis und die Ausgangsfrequenz ist direkt proportional zu dem Wert den Du zum Akku addierst, das macht die Berechnung und Erzeugung einer linearen Rampe
zum Kinderspiel, Du kommst komplett ohne Multiplikationen aus.
:
Bearbeitet durch User
Danke für die vielen Antworten. Gibt es noch andere IC/Shields/Treiber an dem ich beide Motoren anschließen kann?(die anzahl der Pins mal auseracht gassen)
steffen_s61 schrieb: > Gibt es noch andere IC/Shields/Treiber an dem ich beide Motoren > anschließen kann?(die anzahl der Pins mal auseracht gassen) Du kannst mal versuchen GRBL zu benutzen. Dafür nimmst Du einen Arduino Uno/Nano und flashst die neueste GRBL 0.9i drauf. Dem Arduino schickst Du dann G-Code Kommandos mit einem anderen MC z.B. irgendeinem ATMega. Hab ich zwar noch nie gemacht, müsste aber funktionieren. Der Vorteil: Du brauchst Dir um die Mathematik von Rampen, Beschleunigungen und dergleichen keine Gedanken zu machen, das erledigt alles GRBL im Arduino für Dich. Am Arduino schliesst Du dann direkt die Schrittmotor-Treiber an. Beispiel für einen zu sendenden G-Code: G90 Absolute Koordinaten F500 Vorschubgeschwindigkeit 500 mm/min G1 X50 Y10 Gehe mit Vorschubgeschw. nach X50 und Y10 Siehe hierzu: https://github.com/grbl/grbl/wiki https://github.com/grbl/grbl/wiki/Connecting-Grbl http://en.wikipedia.org/wiki/G-code Testen kannst Du das auch mit nur dem Arduino und einem Terminal-Programm in dem Du die G-Codes eingibst. Gruss Ulrich Albert
:
Bearbeitet durch User
Also G-Code kenn ich zuhauf, ich darf leider nur das AVR MK2 verwenden. Mit dem Arduino kann ich beide Motoren nacheinander ansteurn. Bin aber wie oben schon gesagt an das AVR MK2 gebuden, mit dem ich die Motoren, ein 2 Zeilen LCD und mehrere Sensoren und 3 Taster steuern muss
steffen_s61 schrieb: > Mit dem Arduino kann ich beide Motoren nacheinander ansteurn Mit GRBL auf dem Arduino kannst Du beide Motoren GLEICHZEITIG ansteuern. steffen_s61 schrieb: > Bin aber > wie oben schon gesagt an das AVR MK2 gebuden, mit dem ich die Motoren, > ein 2 Zeilen LCD und mehrere Sensoren und 3 Taster steuern muss Kannst doch das AVR MK2 zur Ansteuerung des Arduino/GRBL nehmen, wo ist denn da das Problem, ausser dass Du zusätzlich noch den Arduino dazwischen hast?
Die Idee haten wir auch schon in Unserer Projektgruppe, leider hat uns das unser Lehrer nicht genehmigt. Das ganze ist für ein Projekt an der Technikerschule.
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.