INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Schrittmotor bewegt sich nicht
23.11.2020, 15:54 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2020 16:07 von DerMaschbaustudent.)
Beitrag #49
RE: Schrittmotor bewegt sich nicht
(23.11.2020 15:37)MicroBahner schrieb:  
(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
Dann sind 360° wieder eine 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.

Mein absolute Verständnisproblematik besteht darin, dass ich den Anlogsensor softwareseitig so einbinden muss, dass die Ifabfrage dazzu führt, dass der Linearantrieb erst zurückfährt, wenn ein MAximalwert aufgetaucht ist und dieser wieder unterschritten wird. Ich möchte dadruch einen Steuerkreis implimentieren, welcher die Zerstörung der Maschine und auch Schrittfehler verhindert.

Als kleines Anschlauliches Beispiel:
Wenn ich meinen Schrittmotor mit Linearachse verfahre, dann wird ab den Zeitpunkt des Aufsetzens auf ein Gegenlager die Kraft aufgezeichnet. Der Maximalwert der dabei erreicht wird ist unbekannt und damit variabel. Wenn der höchste Wert aufgezeichnet wurde, also der Sensor zu einem Zeitpunkt x wieder niedrigere Werte aufzeichnet, soll der Motor automatisch die Drehrichtung wechseln und den Linearantrieb zurückziehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2020, 22:36
Beitrag #50
RE: Schrittmotor bewegt sich nicht
(23.11.2020 15:54)DerMaschbaustudent schrieb:  Ich möchte dadruch einen Steuerkreis implimentieren, welcher die Zerstörung der Maschine und auch Schrittfehler verhindert.
Eine Zerstörung der Maschine? Ich denke, dass sollte so ausgelegt sein, dass das auch bei einem Fehler in der Software nicht passieren kann.
Vielleicht erklärst Du mal, was das Ganze am Ende werden soll.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2020, 23:28
Beitrag #51
RE: Schrittmotor bewegt sich nicht
Hallo,

"zerstören" passiert bei kleinen Schrittmotoren nie, bei größeren dauert es Minuten oder länger. (Bei kleinen Motoren bestimmt alleine der Wicklungswiderstand den Strom.)

Warum die Kraftmessung am Umkehrpunkt? Das ist doch der Witz bei Schrittmotoren, dass man auch ohne Sensor alleine aus der der Ansteuerung die genaue Position kennt. Bei Systemstart fährt man so lange Richtung null, wie die gesamte Strecke dauert, dann setzt man einen Schrittzähler auf null. Dann steuerst Du im Betrieb immer einige Schritte über das Maximum hinaus und auf etwas negaitive Werte, dann bist Du immer sicher am Poller.

Gruß
GuaAck
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2020, 17:09
Beitrag #52
RE: Schrittmotor bewegt sich nicht
(23.11.2020 22:36)MicroBahner schrieb:  
(23.11.2020 15:54)DerMaschbaustudent schrieb:  Ich möchte dadruch einen Steuerkreis implimentieren, welcher die Zerstörung der Maschine und auch Schrittfehler verhindert.
Eine Zerstörung der Maschine? Ich denke, dass sollte so ausgelegt sein, dass das auch bei einem Fehler in der Software nicht passieren kann.
Vielleicht erklärst Du mal, was das Ganze am Ende werden soll.
Es soll um Bruchversuche für dünne Proben aus Zucker gehen.
Der Schrittmotor treibt ein Übersetzungsgetriebe an zur Momentenerhöhung. An der letzen Getriebestufe ist eine Zahnstange angebracht einseitig mit einem Drucksensor bestückt ist.

Der Schrittmotor setzt die Zahnstange auf die Probe auf und verfährt weiter, um sie zu brechen. Dabei wird die Kraft über den Drucksensor aufgezeichnet. Wenn die höchste Kraft erreicht ist, dann soll der Schrittmotor auf die Ausgangsposition zurückfahren.


Mit freundlichen Grüßen,

Maxi

Edit:

@Microbahner

Eigentlich sind ja drei Variablen Steps/Umdrehung, Umdrehungsgeschwindigkeit und Verfahrwinkel unabhängig voneinander. Jedoch beobachte ich, dass eine Verdoppelung der Steprate (z. Bsp von 200 auf 400) auch zu einer Verdoppelung des Verfahrwinkel führt.

Wenn ich es so ausführe, dann dreht er sich eine Umdrehung weit mit 4U/min.
Code:
#include <MobaTools.h>
const byte dirPin       = 0;
const byte stepPin      = 2;
const byte enaPin       = 4;
byte mode;
int rpm10;
long angle;
MoToStepper myStepper(200, STEPDIR );  // 200 Steps/ Umdrehung




void setup()
{ myStepper.attach( stepPin, dirPin );
  pinMode(enaPin, OUTPUT);        // Enable Pin aktivieren ( LOW=aktiv )
  digitalWrite(enaPin, LOW);
  myStepper.setSpeed(40);
  myStepper.write(360);
  while (myStepper.moving());
  }
void loop() {
  

}


Wenn ich es so ausführe, dann dreht ersich zwei Umdrehungen weit bei 4U/min.

Code:
#include <MobaTools.h>
const byte dirPin       = 0;
const byte stepPin      = 2;
const byte enaPin       = 4;
byte mode;
int rpm10;
long angle;
MoToStepper myStepper(400, STEPDIR );  // 200 Steps/ Umdrehung




void setup()
{ myStepper.attach( stepPin, dirPin );
  pinMode(enaPin, OUTPUT);        // Enable Pin aktivieren ( LOW=aktiv )
  digitalWrite(enaPin, LOW);
  myStepper.setSpeed(40);
  myStepper.write(360);
  while (myStepper.moving());
  }
void loop() {
  

}

Wie kann das sein?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2020, 17:33 (Dieser Beitrag wurde zuletzt bearbeitet: 25.11.2020 17:35 von MicroBahner.)
Beitrag #53
RE: Schrittmotor bewegt sich nicht
(25.11.2020 17:09)DerMaschbaustudent schrieb:  Eigentlich sind ja drei Variablen Steps/Umdrehung, Umdrehungsgeschwindigkeit und Verfahrwinkel unabhängig voneinander.
Nein, ganz im Gegenteil. Das hängt alles voneinander ab.
Steps/Umdrehung: Der Wert ist nicht einfach frei wählbar, sondern muss den tatsächlichen Gegebenheiten entsprechen. Das muss also die Zahl der Steps sein, die dein Motor tatsächlich für eine Umdrehung braucht. Daraus werden dann die anderen Werte intern berechnet. Wenn dieser Wert nicht den tatsächlichen Gegebenheiten entspricht, stimmen Umdrehungsgeschwindigkeit und Verfahrwinkel nicht.

Edit: Dass das so eine Art Bruchprüfung wird habe ich mir schon gedacht. Ist der Weg bis zum Prüfobjekt immer gleich, oder kann das auch unterschiedlich sein, und muss über den Drucksensor ermittelt werden?

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2020, 17:46
Beitrag #54
RE: Schrittmotor bewegt sich nicht
(25.11.2020 17:33)MicroBahner schrieb:  
(25.11.2020 17:09)DerMaschbaustudent schrieb:  Eigentlich sind ja drei Variablen Steps/Umdrehung, Umdrehungsgeschwindigkeit und Verfahrwinkel unabhängig voneinander.
Nein, ganz im Gegenteil. Das hängt alles voneinander ab.
Steps/Umdrehung: Der Wert ist nicht einfach frei wählbar, sondern muss den tatsächlichen Gegebenheiten entsprechen. Das muss also die Zahl der Steps sein, die dein Motor tatsächlich für eine Umdrehung braucht. Daraus werden dann die anderen Werte intern berechnet. Wenn dieser Wert nicht den tatsächlichen Gegebenheiten entspricht, stimmen Umdrehungsgeschwindigkeit und Verfahrwinkel nicht.

Edit: Dass das so eine Art Bruchprüfung wird habe ich mir schon gedacht. Ist der Weg bis zum Prüfobjekt immer gleich, oder kann das auch unterschiedlich sein, und muss über den Drucksensor ermittelt werden?

Der Verfahrweg bis zum Aufsetzen auf dem Prüfling ist immer absolut identisch.

Dann weiss ich jetzt wo der Fehler lag. Ich habe gedacht, dass das Microstepping auch rein softwareseitig ausgelöst werden kann.#

Code:
#include <MobaTools.h>

const byte dirPin       = 0;
const byte stepPin      = 2;
const byte enaPin       = 4;
const byte MS1          = 6;
const byte MS2          = 8;
const byte MS3          = 10;
byte mode;
int rpm10;
long angle;
MoToStepper myStepper(200, STEPDIR );  // 400 Steps/ Umdrehung




void setup()
{ myStepper.attach(MS1);
  myStepper.attach(MS2);
  myStepper.attach(MS3);
  myStepper.attach( stepPin, dirPin );
  pinMode(enaPin, OUTPUT);        // Enable Pin aktivieren ( LOW=aktiv )
  pinMode(MS1, OUTPUT);
  pinMode(MS2, OUTPUT);
  pinMode(MS3, OUTPUT);
  digitalWrite(enaPin, LOW);
  digitalWrite(MS1, HIGH);
  digitalWrite(MS2, HIGH);
  digitalWrite(MS3, LOW);
  myStepper.setSpeed(100);
  myStepper.write(45);
  while (myStepper.moving());
  }
void loop() {
  

}

Habe jetzt das Microstepping über die MS-Pins des A4988 eingebunden.
Nur mag der Motor kleine Drehzahlen überhauüpt nicht. Bei jegliche Drehzahlen unter 5 U/min fängt er an Schritt zu vergessen bzw fährt zitterig an und verfährt dann erst die 45° mit einer konstanten Geschwindigkeit.


Mit freundlichen Grüßen,

Maxi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2020, 17:56 (Dieser Beitrag wurde zuletzt bearbeitet: 25.11.2020 17:57 von MicroBahner.)
Beitrag #55
RE: Schrittmotor bewegt sich nicht
(25.11.2020 17:46)DerMaschbaustudent schrieb:  
Code:
{ myStepper.attach(MS1);
  myStepper.attach(MS2);
  myStepper.attach(MS3);

Habe jetzt das Microstepping über die MS-Pins des A4988 eingebunden.
Hallo Maxi,
das geht so nicht. Die MobaTools wissen nichts vom Microstepping ( das ist ja auch bei jedem Treiber anders ), die wollen nur wissen vieviel Steps/Umdrehung der Stepper braucht. Diesen Wert musst Du entsprechend deiner Microstep-Einstellung anpassen.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.11.2020, 18:04
Beitrag #56
RE: Schrittmotor bewegt sich nicht
(25.11.2020 17:56)MicroBahner schrieb:  
(25.11.2020 17:46)DerMaschbaustudent schrieb:  
Code:
{ myStepper.attach(MS1);
  myStepper.attach(MS2);
  myStepper.attach(MS3);

Habe jetzt das Microstepping über die MS-Pins des A4988 eingebunden.
Hallo Maxi,
das geht so nicht. Die MobaTools wissen nichts vom Microstepping ( das ist ja auch bei jedem Treiber anders ), die wollen nur wissen vieviel Steps/Umdrehung der Stepper braucht. Diesen Wert musst Du entsprechend deiner Microstep-Einstellung anpassen.


Okay, also kann ich es doch softwareseitig lösen?!
Also geht es doch über
Code:
MoToStepper myStepper(3200, STEPDIR );
?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Bootloader will sich nicht auf Mini Pro installieren lassen Foto-Ralf 27 3.012 09.06.2021 07:15
Letzter Beitrag: SpaghettiCode
  Tisch der sich selbst ins Wasser bringt ludino 28 4.185 28.05.2021 21:29
Letzter Beitrag: Franz54
  Arduino Mega wird nicht erkannt Gian-Luca 61 17.884 27.05.2021 23:21
Letzter Beitrag: Hurz
  SchrittMotor Nema 17- HANPOSE HPV2 Linear Guide 3D Drücker Salvo1969 1 615 13.05.2021 11:05
Letzter Beitrag: GuaAck
  Arduino startet nicht kpc 14 2.352 27.04.2021 22:24
Letzter Beitrag: hotsystems
  Schrittmotor mit Endschalter MättyEifel 11 2.072 13.04.2021 13:46
Letzter Beitrag: MicroBahner
  MKR1200 läuft nicht bei Batteriebetrieb kpc 24 4.753 05.04.2021 22:59
Letzter Beitrag: kpc
  Einfaches Projekt funktioniert am USB Anschluss, aber nicht mit Akkus PurpleLightning 3 856 05.04.2021 12:07
Letzter Beitrag: hotsystems
  Sketche lassen sich aus IDE nicht mehr hochladen Steinspiel 9 2.152 19.03.2021 19:11
Letzter Beitrag: Chopp
  Sketches lassen sich nicht mehr hochladen. Was kann ich noch tun? Tonio 3 1.036 19.03.2021 15:32
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste