Die Steppertreiber brauchen doch nur einen Takt. Der Mega2560 hat eine Menge Timer die man verwenden kann. Ob es dafür aber Libs für die Arduino IDE gibt, kann ich nicht sagen. Das muss man wahrscheinlich zu Fuß programmieren.
Druckbare Version
Die Steppertreiber brauchen doch nur einen Takt. Der Mega2560 hat eine Menge Timer die man verwenden kann. Ob es dafür aber Libs für die Arduino IDE gibt, kann ich nicht sagen. Das muss man wahrscheinlich zu Fuß programmieren.
So verstehe ich das auch.Zitat:
Arduino MEGA
|
+-ATTINY 13A-PU >> Driver ULN2003 >> Stepper 28BYJ-48
|
+-ATTINY 13A-PU >> Driver ULN2003 >> Stepper 28BYJ-48
|
:
:
:
|
+-ATTINY 13A-PU >> Driver ULN2003 >> Stepper 28BYJ-48
Sinnvoll wäre das eventuell wenn man einen Motor mit einen Encoder und Drehmoment Ermittlung hat, da man da dann die Regelung für Drehzahlregelung,Positionsregleung und Drehmomentregelung dahin auslagern kann.
Da z.B. mit Marlin (das ja auf einigen 3D-Druckern läuft) bewiesen ist, das bis zu 6 Stepper unter Arduino laufen können und das mit unterschiedlichen und unabhängig voneinander variierenden Drehzahlen, wäre das hier überflüssig.
Es geht tatsächlich nur um die entsprechene Ansteuerung der Stepper.
Bei RAMPS werden die Motortreiber halt nur mit STEP und DIR angesteuert, ENABLE ist meines Wissens fest auf High gelegt. RADDS hat wohl ENABLE zum Ansteuern.
Lad Dir doch einfach mal Marlin runter und schau dir in der IDE die Stepper.h und Stepper.ccp an.
Eventuell bringt das neue Ideen.
Ansonsten mal:
https://github.com/laurb9/StepperDriver
probieren
das ist eine Library für: A4988, DRV8825, DRV8834 und andere DIR/STEP Motor Treiber.
Hallo,
ich werde weiter experimentieren.
Gruß
fredyxx
Hallo,
ich habe nun folgende Lösung gewählt:
für jeden der 6 Motore habe ich eine eigene Funktion, die mit den Parametern für AusgangsPin 1 - 4, der gewünschten Anzahl der Umdrehungen, der Drehgeschwindigkeit und - richtung aufgerufen wird. Ist vielleicht nicht die eleganteste Lösung, aber sie funktioniert.
In diesen Funktionen werden für die Stepperschritte die 4 Ausgänge für die unipolaren Stepper 28BYJ-48 erzeugt. Ich arbeite ohne Interrupt, aber mit der Funktion micros(). Das hat den Nachteil, dass die Drehgeschwindigkeit der Stepper nicht ganz genau ist, da sie in geringem Maße von der Programmzykluszeit abhängt. Das spielt aber für meine Anwendung keine große Rolle. Dafür können aber mehrere Motore gleichzeitig mit verschiedenen Geschwindigkeiten und Drehrichtungen drehen.
Gruß
fredyxx