Schrittmotor bewegt sich nicht
|
18.11.2020, 16:46
(Dieser Beitrag wurde zuletzt bearbeitet: 18.11.2020 16:59 von DerMaschbaustudent.)
Beitrag #41
|
|||
|
|||
RE: Schrittmotor bewegt sich nicht
Ich habe jetzt mal ein kleines Beispiel programmiert:
Code: #include <MobaTools.h> Nach meinem Verständnis müsste sich der Motor mit 8 U/min um 180° (eine halbe Umdrehung) drehen. Das tut er auch. Wenn ich aber jetzt den Winkel ändere (z. Bsp. auf 90°) und dann das Skript hochlade, ändert sich nichts, sondern er verfährt weiter um 180°?! ![]() Liebe Grüße, Maxi |
|||
18.11.2020, 17:15
(Dieser Beitrag wurde zuletzt bearbeitet: 18.11.2020 17:16 von MicroBahner.)
Beitrag #42
|
|||
|
|||
RE: Schrittmotor bewegt sich nicht
Der Sketch kann gar nicht funktionieren, da das attach(stepPin,dirPin) für den Motor fehlt. MoToStepper weis also gar nicht wo der Treiber angeschlossen ist.
Wenn man das noch einfügt, funktioniert das bei mir. Gruß, Franz-Peter |
|||
19.11.2020, 13:32
Beitrag #43
|
|||
|
|||
RE: Schrittmotor bewegt sich nicht
(18.11.2020 17:15)MicroBahner schrieb: Der Sketch kann gar nicht funktionieren, da das attach(stepPin,dirPin) für den Motor fehlt. MoToStepper weis also gar nicht wo der Treiber angeschlossen ist. Hallo Microbahner ![]() Ich finde es sehr cool, was du auf die Beine gestellt hast ![]() Wenn ich das oben gezeigt Skript verfahren lasse (iclusive der Einbindung von step und dir durch mystepper.attach(...); ) verfährt mein Motor eine halbe Umdrehung mit langsamer Geschwindigkeit (schätzungsweise die angegebene) und verfährt dann noch eine komplette Umdrehung mich schnellerer Geschwindigkeit (cirka 60U/min). Des Weiteren verfährt er nicht nicht sofort in die angegebene Richtung, sondern verfährt erst ein Stück rückwärts. Wie kann das sein? LAngsam habe ich den Schrittmotor im Verdacht, dass der vielleicht einen Schaden hat, auch wenn ich mich frage, wodurch das kommen soll. Meine Schaltung ist komplett unverändert. |
|||
19.11.2020, 14:04
Beitrag #44
|
|||
|
|||
RE: Schrittmotor bewegt sich nicht
Hallo Maxi,
leider kann ich das Verhalten nicht nachvollziehen. Zeig doch nochmal den kompletten Sketch und ein aussagefähiges Bild von deinem Aufbau. Gruß, Franz-Peter |
|||
19.11.2020, 14:20
Beitrag #45
|
|||
|
|||
RE: Schrittmotor bewegt sich nicht
Das ist mein komplettes Skript mit dem MoBa-Tools:
Code: #include <MobaTools.h> Im Anhang sind Bilder meines Aufbaus Mit dem Code (ohne MoBa-Tools) Code: int stepCounter; läuft er interessanterweise einwandfrei. Er dreht sich eine Umdrehung in die eine Richtung und danach eine Umdrehnung in die andere. Mit freundlichen Grüßen, Maxi |
|||
19.11.2020, 14:59
(Dieser Beitrag wurde zuletzt bearbeitet: 19.11.2020 15:10 von MicroBahner.)
Beitrag #46
|
|||
|
|||
RE: Schrittmotor bewegt sich nicht
(19.11.2020 14:20)DerMaschbaustudent schrieb:Warum schreibst Du jetzt auf einmal FULLSTEP als Mode? Das passt doch nicht zu deinem Stepper - da muss STEPDIR hin. Das hatten wir doch schon. Wenn es vergleichbar zu deinem anderen Sketch sein soll, darfst Du auch das attachEnable nicht verwenden, sondern musst den Enable Pin fest auf LOW setzen. setZero brauchst Du im setup auch nicht. Nach Reset ist die aktuelle Position immer der Nullpunkt. Edit: das sollte das gleiche machen wie dein Sketch ohne MobaTools: Code: #include <MobaTools.h> Gruß, Franz-Peter |
|||
23.11.2020, 14:36
Beitrag #47
|
|||
|
|||
RE: Schrittmotor bewegt sich nicht
@Microbahner
Hallo Franz-Peter, danke für deine Hilfe. ![]() Des weiteren möchte ich einen Kraftaufnehmer in Form eines Analogsensors einbinden, welcher per if-Schleife zu einem Zurückfahren des Lnearantribes führt, wenn eine Maximalkraft erreicht ist, damit keine Schrittfehler auftauchen. Da die Maximalkraft ja jederzeit auftauchen kann würde ich gerne die Schleife so aufziehen, dass der Motor den Linearantrieb zurückfahrt, sobald an Sensor ein Kraftabfall zu verzeichnen ist, welcher länger als eine Sekunde dauert. Edit: Besteht die Möglichkeit eine Verzögerung (delay) einzurichten, ohne delay zu benutzen? Delay pausiert ja leider das komplette Programm, wodurch momentan der Motor in der Aufnahmetaktung des Senspors verfährt. Er bleibt also jedes mal stehen, wenn eine Snesorabfrage kommt. |
|||
23.11.2020, 15:37
Beitrag #48
|
|||
|
|||
RE: Schrittmotor bewegt sich nicht
(23.11.2020 14:36)DerMaschbaustudent schrieb: Ist der Winkel im mystepper.write BEfehl abhängig vom eingestellten Stepmodus. also müsste ich bei einem Microstepping mit 400 Schritten pro Umdrehung softawreseitig um 720° verfahren für eine komplette Umdrehung?Du musst ihm beim Anlegen des Objektes sagen wieviele Schritte der Motor für eine Umdrehung braucht. Bei 400 Schritten also: Code: MoToStepper myStepper(400, STEPDIR);// 400 Schritte/Umdrehung (23.11.2020 14:36)DerMaschbaustudent schrieb: Des weiteren möchte ich einen Kraftaufnehmer in Form eines Analogsensors einbinden, welcher per if-Schleife zu einem Zurückfahren des Lnearantribes führt, wenn eine Maximalkraft erreicht ist, damit keine Schrittfehler auftauchen.Es gibt keine if-Schleifen. 'if' ist eine einfache Abfrage. (23.11.2020 14:36)DerMaschbaustudent schrieb: Da die Maximalkraft ja jederzeit auftauchen kann würde ich gerne die Schleife so aufziehen, dass der Motor den Linearantrieb zurückfahrt, sobald an Sensor ein Kraftabfall zu verzeichnen ist, welcher länger als eine Sekunde dauert.Wichtig ist, dass Du blockadefrei programmierst, also keine delay verwendest. Nur dann kann er jederzeit auf deinen Sensor regieren. (23.11.2020 14:36)DerMaschbaustudent schrieb: Edit: Besteht die Möglichkeit eine Verzögerung (delay) einzurichten, ohne delay zu benutzen? Delay pausiert ja leider das komplette Programm, wodurch momentan der Motor in der Aufnahmetaktung des Senspors verfährt. Er bleibt also jedes mal stehen, wenn eine Snesorabfrage kommt.Wie schon geschrieben darfst Du delay() nicht verwenden. Die MobaTools enthalten auch Timerfunktionen um Zeitabfragen und Verzögerungen ohne delay realiseren zu können. Schau dir halt mal die Beispiele dazu an. Wenn Du dazu dann noch Fragen hast, können wir das gerne hier klären. Grundsätzlich solltest Du dich mit dem Thema 'endlicher Automat' oder 'Zustandsautomat' beschäftigen. Mit dieser Programmiertechnik kann man solche Automatisierungsaufgaben sehr elegant und effizient lösen. Gruß, Franz-Peter |
|||
|
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste