Hallo zusammen, vorweg, ich bin was programmieren angeht nicht wirklich fit und habe dort noch meine Schwierigkeiten, also bitte nicht zu streng sein :) Für mein kleines Projekt möchte ich gerne einen Schrittmotor mit konstanter Drehzahl zum laufen bringen. Ich habe mir dazu folgende Komponenten angeschafft: -Schrittmotor Nema 23 (Datenblatt dazu im Anhang) -Schrittmotortreiber DRV8825 -Ramps 1.4 Board mit Arduino Mega 2560 -Netzteil (Ausgang 12V) Nach reichlicher Recherche und Probieren, bin ich auf folgenden Code gestoßen: #define X_STEP_PIN 54 #define X_DIR_PIN 55 #define X_ENABLE_PIN 38 #include "AccelStepper.h" AccelStepper stepper(1, X_STEP_PIN, X_DIR_PIN); void setup() { stepper.setEnablePin(X_ENABLE_PIN); stepper.setPinsInverted(false, false, true); //invert logic of enable pin stepper.enableOutputs(); // Alternativ müssten die folgenden Zeilen auch funktionieren, weis nur nicht sicher was mehr Sinn macht!! //pinMode(X_ENABLE_PIN , OUTPUT); //digitalWrite(X_ENABLE_PIN , LOW); stepper.setMaxSpeed(400*128); stepper.setSpeed(100*128); stepper.setAcceleration(1000); } void loop() { stepper.runSpeed(); } Außerdem habe ich noch diesen Code gefunden: #include "AccelStepper.h" AccelStepper stepper(1, 54, 55); int pos = 100000; void setup() { stepper.setMaxSpeed(100); stepper.setAcceleration(1000); stepper.setEnablePin(38); stepper.setPinsInverted(false, false, true); //invert logic of enable pin stepper.enableOutputs(); } void loop() { stepper.move(pos); stepper.runSpeed(); } Nun zu meinem Problem: Bei beiden Codes vibriert der Motor nur und macht keine Umdrehungen. Die Motorwelle dreht sich so gut wie gar nicht, nur der ganze Motor vibriert. Mein Motor hat einen Schrittwinkel von 0,039°, muss ich deshalb noch etwas am Programmcode anpassen? Weiß zufällig jemand, wieso der Motor nur vibriert und keine Umdrehungen macht? Ich kann durch das Belegen von Jumper auf dem Ramps 1.4 Board die Schritte wie folgt ändern: jumper Yes/No step size 1 2 3 no no no full step yes no no half step no yes no 1/4 step yes yes no 1/8 step no no yes 1/16 step yes no yes 1/32 step no yes yes 1/64 step yes yes yes 1/128 step Ich habe auch schon am Treiber DRV8825 den Strom verstellt, leider hat das auch kein UNterschied gemacht, bis dass bei zu geringem Strom, der Motor auch nicht mehr vibriert. Durch weiteres probieren und googeln komme ich leider nicht weiter und wende mich deshalb hier an die Community, in der Hoffnung, dass mir jemand weiterhelfen kann. Über jede hilfreiche Antwort wäre ich sehr dankbar! Danke schonmal für jede konstruktive Antwort. Grüße, Luis
Luis, Den Code habe ich jetzt noch nicht verinnerlicht, denn Stepper sind ein unglaublich komplexes Thema und es gibt ZIG Problemstellen und Aufgaben also erstmal dies: a) BEIDE Spulen sind korrekt angeschlossen und haben Kontakt? "NUR VIBRIEREN" wird der Stepper auch wenn eine Spule oder zugehörige Treiberseite ausgefallen wäre. Leitungen innerhalb einer Spule zu vertauschen schadet aber nicht, er dreht dann halt "andersrum". Nebenbei: DRV8825 können sterben falls ohne Stepper betrieben. b) Starte erstmal mit FULLSTEP und GANZ LANGSAM und OHNE LAST. So, daß Du mitzählen kannst 4-5 Steps/Sekunde damit Du testest ob es grundsätzlich klappt, Klebeband-Fahne an der Achse hilft. Halte ALLE Steuersignale (ENABLE/DIR/ETC.) auf definiertem Potential und NICHT einfach "in der Luft". ERST DANACH: c) WELCHE Geschwindigkeit möchtest Du erreichen und welche Last? d) DU weißt, das Stepper langsam hochgefahren werden müssen (Rampe)? Soweit für den Anfang...
:
Bearbeitet durch User
Luis schrieb: > Danke schonmal für jede konstruktive Antwort. Läuft der Motor mit den mit der Library mitgelieferten Beispielen?
@Luis, es wäre auch sinnvoll sich den Strom durch die Spulen an einem Oszilloskop anzusehen mithilfe kleiner Widerstände in den Leitungen zu den Spulen. Eventuell gibt es die bereits auch auf dem Treiber. Strom deshalb, um das Oszi durch unsachgemäße Handhabung der Schaltung nicht durch die induzierten Spannungsspitzen zu killen, es sei denn man verwendet 10:1 oder 100:1 Tastköpfe. (Frequenz und TP-Verhalten bei der zulässigen Spannung der TK beachten!) Bei dieser Vorgehensweise stochert man nicht im Trüben, was die Ansteuerung des Steppers angeht. Markus
Luis schrieb: > Nema 23 Kleiner Hinweis dazu: Das ist keine Produktbezeichnung, sondern bezieht sich auf die Abmessungen der Montagelöcher. Also für die Diskussion ziemlich nutzlos. > Mein Motor hat einen Schrittwinkel von 0,039° Hinter dem Getriebe! Der Motor hat 1,8° Schritte, also 200 Schritte pro Umdrehung. Jochen schrieb: > 4-5 Steps/Sekunde ... , Klebeband-Fahne an der Achse hilft Wegen dem Getriebe wird man dann nicht viel sehen. Dennoch würde ich ebenfalls erst mal so langsam testen und die Spannungen an den Motorspulen kontrollieren. Man kann sie z.B. mit zweifarbigen LEDs anzeigen, die je nach Polung rot oder grün leuchten:
1 | 1kΩ |
2 | BLK o-----[===]----(LED)----o GRN |
3 | |
4 | RED o-----[===]----(LED)----o BLU |
Außerdem würde ich die Steuersignale am Eingang des DRV Chips mit LEDs sichtbar machen. Dort reichen normale LEDs mit Vorwiderstand.
Hallo zusammen, vielen Dank für die zahlreichen Rückmeldungen! Ich habe nun herausgefunden, dass der Motor sogar dreht, jedoch nur ganz ganz langsam. Das Vibrieren ist immer noch vorhanden. Man sieht jedoch kaum, dass sich der Motor dreht. Ich habe zum besseren Verständnis dazu auch mal ein Video hochgeladen. Kann man dadurch gewisse Fehlerquellen ausschließen? Hat da zufällig jemand eine Idee? Bevor ich jetzt alles wild durchprobiere, dachte ich, dass das evtl. noch hilfreich wäre, da man dadurch vielleicht gewisse Fehlerquellen ausschließen kann. Vielen Dank und viele Grüße Luis
Vielen herzlichen Dank für die umfangreiche Rückmeldung! Also ich habe die Spulenanschlüsse vom Motor getestet, das sollte passen. Ich habe interessehalber auch mal die Anschlüsse vertauscht, dann hat sich der Motor auch nicht mehr minimal gedreht, also vondaher gehe ich aus, dass das passen sollte oder? Ich betreibe den Motor ohne Last und habe auf dem Ramps Board keien Jumper gesetzt, sodass der Motor sich in FULLSTEPS drehen sollte. Was müsste ich beispielsweise am Code verändern, damit ich 4-5 Steps/ Sekunde habe. Vielen Dank und viele Grüße Luis
Luis schrieb: > Was müsste ich .. du könntest z.B. auf die erwähnten Hinweise und Vorschläge (bezüglich LED) eingehen, und darauf antworten.
Luis schrieb: > Was > müsste ich beispielsweise am Code verändern, damit ich 4-5 Steps/ > Sekunde habe. bei einer Getriebe-Übersetzung von 1:50 und 1,8° pro Schritt hättest du also eine Rotationsgeschwindigkeit von ... ziemlich klein. 4 Schritte * 1.8° / 50 (Übersetzung) ergibt 0,14° pro Sekunde. ergibt immerhin 8,6° pro Minute. Da musst du aber lange drauf starren, um Rotation mit dem Auge zu sehen. Oder wolltest du die Schritte (deren Ansteuerung) mit LED oder Oszi ansehen?
:
Bearbeitet durch User
Wegstaben V. schrieb: > Luis schrieb: >> Was müsste ich .. > > du könntest z.B. auf die erwähnten Hinweise und Vorschläge (bezüglich > LED) eingehen, und darauf antworten. Da bin ich gerade dabei, wollte noch warten, bis ich soweit bin um euch über das Ergebnis zu informieren.
Wegstaben V. schrieb: > Luis schrieb: >> Was >> müsste ich beispielsweise am Code verändern, damit ich 4-5 Steps/ >> Sekunde habe. > > bei einer Getriebe-Übersetzung von 1:50 und 1,8° pro Schritt hättest du > also eine Rotationsgeschwindigkeit von ... ziemlich klein. > > 4 Schritte * 1.8° / 50 (Übersetzung) ergibt > 0,14° pro Sekunde. ergibt immerhin 8,6° pro Minute. > > Da musst du aber lange drauf starren, um Rotation mit dem Auge zu sehen. > Oder wolltest du die Schritte (deren Ansteuerung) mit LED oder Oszi > ansehen? Mein Motor hat eine Übersetzung von 1:47 und einen Schrittwinkel von 0,039° nach dem Getriebe. Alleridngs hat mich darauf ja @monk netterweise daraufhingewiesen, dass er vor dem Getriebe 1,8° Schrittwinkel hat. Da haben Sie recht, dass das sehr schwierig wird, um dort was mit dem Auge erkennen zu können. Das erklärt auch, warum der Motor so langsam läuft. Erklärt das auch, wieso der Motor so vibriert? Bzw. was müsste ich am Code ändern, damit ich dieses Problem umgehen kann und mehr Umdrehungen pro Minute schaffe? Vielen Dank im Voraus!
Luis schrieb: > Erklärt das auch, wieso der Motor so vibriert? Schrittmotore schütteln sich! u.a. Darum montiert man sie auch fest an irgendwelchen Trägern. Mach den mal fest. Schrittmotore sind nicht für Drehzahlen, sondern zum positionieren(grob gesagt) Wenn man richtig Drehzahlen will, nimmt man Bürsten Motore oder BLCD.
:
Bearbeitet durch User
Der Schrittmotor macht Schritte, also ruckartige Bewegungen. Erst durch die Massenträgheit etc. wird dadurch eine scheinbar flüssige Bewegung.
:
Bearbeitet durch User
Luis schrieb: > Erklärt das auch, wieso der Motor so vibriert? Ein nicht fest montierter Motor schafft die besten Voraussetzungen, um im Vollschrittbetrieb möglichst viele Vibrationen zu erzeugen. Vielleicht kommt noch eine Resonanz dazu.
Rainer W. schrieb: > viele Vibrationen Gar Harmonien!?! Siehe z.B.: https://www.youtube.com/watch?v=oGfkPCZYfFw
Beitrag #7707909 wurde von einem Moderator gelöscht.
Monk schrieb im Beitrag #7707909: > Luis schrieb: >> Ich habe nun herausgefunden, dass der Motor sogar dreht, jedoch nur ganz >> ganz langsam > > Schnell kann er auch nicht, wegen dem Getriebe. Danke! Musste gerade dran denken, das ich schon längere Zeit nicht mehr in die Zwiebelfisch-Archive des Herrn Bastian Sick geschaut habe. ;-)
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.