Forum: Mikrocontroller und Digitale Elektronik Schrittmotor mit Arduino


von Marvin G. (marvin23)


Lesenswert?

Hallo zusammen,

wir möchten einen Schrittmotor Nema34 mit einem Motortreiber HB860H über 
einen Arduino ansteuern. Die Stromversorgung erfolgt über ein 400W 
Netzteil.

Ohne Last im Leerlauf funktioniert die Ansteuerung ohne weitere 
Probleme. Sobald er allerdings in der Anlage verbaut ist, funktioniert 
es entweder nur mit starkem Ruckeln, oder der Motortreiber geht sofort 
in Störung nach dem Starten. Dabei kommt für 3 Sekunden allerdings erst 
noch ein kurzes Geräusch vom Motor. Manchmal taucht die Störung auch 
erst nach einigen Durchläufen auf.

Es handelt sich um einen Sägeanschlag. Die Referenzfahrt funktioniert 
hierbei nur beim Starten im hinteren Drittel. Im vorderen Bereich 
funktioniert es nur mit manueller Anschieb-Hilfe.

Wir sind etwas verwirrt, da es im Leerlauf funktioniert, und erst unter 
leichtgängiger / meiner Meinung nach vernachlässigbarer Last zu diesen 
Problemen kommt.

Was könnte eurer Meinung nach die Ursache dafür sein?

Nachfolgend das Arduino-Programm:
1
#include <Keypad.h>
2
#include <LiquidCrystal.h>
3
#include <AccelStepper.h>
4
5
//--- Pin-Belegungen
6
7
const int rs = 0, en = 1, d4 = 2, d5 = 3, d6 = 4, d7 = 5; //Pin-Belegung für LCD
8
const int puls = 9, direct = 8;                           //Pin-Belegung für Motor
9
const int bremse = 6;                                     //Pin-Belegung für Bremse
10
const int referenzSensor = 7;                             //Pin-Belegung für Referenzsensor
11
const int saegeSensor = 10;                               //Pin-Belegung für Sägemotor
12
const int schraubstockSensor = 11;                        //Pin-Belegung für Schraubstock
13
const byte ROWS = 4;
14
const byte COLS = 4;
15
byte rowPins[ROWS] = {A0, A1, A2, A3};                    //Pin-Belegung für Keypad (1-4, von links nach rechts)
16
byte colPins[COLS] = {A4, A5, 12, 13};                    //Pin-Belegung für Keypad (5-8, von links nach rechts)
17
18
//--- Konstanten
19
20
const float lengthPerStep = 0.11f;                        //Länge pro Schritt
21
const float referenz = 3093;                              //Referenzposition nach der Referenzfahrt
22
const float extraLaenge = 10;                             //Extra-Länge bei der Schleifenfahrt
23
const float motorSpeed = 800;
24
25
//--- ab hier Programm ---
26
27
int mode = 0;
28
char eingabe[16];
29
long stelle = 0;
30
float laengeEingabe = 0;
31
float difLaenge = 0;
32
float pos = 0;
33
char posAnzeige[16];
34
long stepsNeeded = 0;
35
boolean saegeOff;
36
37
AccelStepper stepper(AccelStepper::DRIVER, puls, direct);
38
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
39
40
41
char keys[ROWS][COLS] = {   //Zu entsprechende Tasten vom Keypad (* wurde bereits mit . ausgetauscht)
42
  {'1', '2', '3', 'A'},
43
  {'4', '5', '6', 'B'},
44
  {'7', '8', '9', 'C'},
45
  {'.', '0', '#', 'D'}
46
};
47
48
49
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
50
51
void setup() {
52
  pinMode(bremse, OUTPUT);
53
  pinMode(referenzSensor, INPUT);
54
  pinMode(saegeSensor, INPUT);
55
  pinMode(schraubstockSensor, INPUT);
56
57
  
58
  lcd.begin(16, 2);
59
60
  lcd.print("Referenzfahrt");
61
62
  stepper.setSpeed(100);
63
  stepper.setAcceleration(750);
64
65
  referenzfahrt();
66
67
  stepper.setSpeed(motorSpeed);
68
69
  lcd.clear();
70
  lcd.print("Eingabe:");
71
  lcd.setCursor(0, 1);
72
  mode = 1;
73
}
74
75
void loop() {
76
  char key = keypad.getKey();
77
78
  if (digitalRead(saegeSensor) == LOW) {
79
    saegeOff = true;
80
  }
81
82
  if (digitalRead(saegeSensor) == HIGH && mode != 4 && saegeOff) {
83
    saegeOff = false;
84
    mode = 4;
85
    lcd.clear();
86
    lcd.print("Freifahrt");
87
88
    digitalWrite(bremse, HIGH);
89
    stepper.move(lengthToSteps(40));
90
    stepper.runToPosition();
91
    digitalWrite(bremse, LOW);
92
  }
93
94
  if (digitalRead(schraubstockSensor) == HIGH && mode == 4 && mode != 5) {
95
    mode = 5;
96
    lcd.clear();
97
    lcd.print("Zurückfahren");
98
99
    digitalWrite(bremse, HIGH);
100
    stepper.move(lengthToSteps(-40));
101
    stepper.runToPosition();
102
    digitalWrite(bremse, LOW);
103
104
    lcd.clear();
105
    lcd.print("Eingabe:");
106
    lcd.setCursor(0, 1);
107
    memset(eingabe, 0, sizeof eingabe);
108
    stelle = 0;
109
    mode = 1;
110
  }
111
112
113
  if (mode == 1 && key != '\0') {
114
    if (key != 'A' && key != 'B' && key != 'C' && key != 'D' && key != '#' && stelle < 15) {    
115
      lcd.print(key);
116
      eingabe[stelle] = key;
117
      stelle++;
118
    }
119
120
    if (key == 'B') {    
121
        dtostrf(pos, 9, 4, posAnzeige);
122
    
123
        lcd.clear();
124
        lcd.print("Position:");
125
        lcd.setCursor(0, 1);
126
        lcd.print(posAnzeige);
127
        delay (2000);
128
        lcd.clear();
129
        lcd.print("Eingabe:");
130
        lcd.setCursor(0, 1);
131
        memset(eingabe, 0, sizeof eingabe);
132
        stelle = 0;
133
        mode = 1;
134
    }
135
136
    if (key == '#' && stelle > 0) {
137
      eingabe[stelle] = NULL;
138
      stelle--;
139
      lcd.setCursor(stelle,1);
140
      lcd.print(' ');
141
      lcd.setCursor(stelle,1);
142
    }
143
144
    if (key == 'D' && stelle > 0) {     
145
      laengeEingabe = atof(eingabe);
146
147
      if (laengeEingabe < 400 || laengeEingabe > 3100) {
148
        lcd.clear();
149
        lcd.print("Nur 400 - 3100");
150
        delay (2000);
151
        lcd.clear();
152
        lcd.print("Eingabe:");
153
        lcd.setCursor(0, 1);
154
        memset(eingabe, 0, sizeof eingabe);
155
        stelle = 0;
156
        mode = 1;
157
      }
158
      else {
159
        difLaenge = pos - laengeEingabe;
160
        mode = 2;
161
      }
162
163
    }
164
  }
165
166
  if (mode == 2) {
167
    if (difLaenge > 0) {
168
      stepsNeeded = lengthToSteps(difLaenge);
169
      digitalWrite(bremse, HIGH);
170
      stepper.move(stepsNeeded);
171
      stepper.runToPosition();
172
      digitalWrite(bremse, LOW);
173
      //stepper.step(stepsNeeded);
174
      /*for (int i = 0; i < stepsNeeded; i++) {
175
        stepper.step(1);          //ANPASSEN
176
      }*/
177
178
      pos = pos - stepsToLength(stepsNeeded);
179
    }
180
181
    if (difLaenge < 0) {
182
      stepsNeeded = lengthToSteps(-difLaenge);
183
      long extraSteps = lengthToSteps(extraLaenge);
184
      digitalWrite(bremse, HIGH);
185
      stepper.move(-(stepsNeeded + extraSteps));
186
      stepper.runToPosition();
187
      stepper.move(extraSteps);
188
      stepper.runToPosition();
189
      digitalWrite(bremse, LOW);
190
191
      pos = pos + stepsToLength(stepsNeeded);
192
    }
193
194
    dtostrf(pos, 9, 4, posAnzeige);
195
196
    lcd.clear();
197
    lcd.print("Position:");
198
    lcd.setCursor(0, 1);
199
    lcd.print(posAnzeige);
200
    mode = 3;
201
  }
202
203
  if (mode == 3 && key == 'A') {
204
    lcd.clear();
205
    lcd.print("Eingabe:");
206
    lcd.setCursor(0, 1);
207
    memset(eingabe, 0, sizeof eingabe);
208
    stelle = 0;
209
    mode = 1;
210
  }
211
}
212
213
void referenzfahrt() {
214
  digitalWrite(bremse, HIGH);
215
  while (digitalRead(referenzSensor) == LOW) {
216
    stepper.move(-500);
217
    stepper.runSpeedToPosition();
218
  }
219
  /*stepper.move(200);        //Testweise rauskommentiert
220
  stepper.runToPosition();
221
222
223
  stepper.setSpeed(50);
224
  while (digitalRead(referenzSensor) == LOW) {
225
    stepper.move(-500);
226
    stepper.runSpeedToPosition();
227
  }*/
228
  stepper.setCurrentPosition(0);
229
  digitalWrite(bremse, LOW);
230
  
231
  pos = referenz;
232
}
233
234
long lengthToSteps(float laenge) {
235
  long steps = laenge / lengthPerStep;
236
  return steps;
237
}
238
239
float stepsToLength(long steps) {
240
  float laenge = steps * lengthPerStep;
241
  return laenge;
242
}

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Marvin G. schrieb:
> Nachfolgend das Arduino-Programm:
Was ist denn so schwer verständlich an dem Text über jeder Eingabebox?
1
Antwort schreiben
2
Wichtige Regeln - erst lesen, dann posten!
3
   - Groß- und Kleinschreibung verwenden
4
   - Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Marvin G. schrieb:
> Was könnte eurer Meinung nach die Ursache dafür sein?
Schlechte oder falsche Verkabelung und ungünstige Masseführung. Zeig mal 
einen Schaltplan mit den verwendeten Bauteilen und ein paar Fotos vom 
Aufbau.

von Schlaumaier (Gast)


Lesenswert?

Marvin G. schrieb:
> Es handelt sich um einen Sägeanschlag. Die Referenzfahrt funktioniert
> hierbei nur beim Starten im hinteren Drittel. Im vorderen Bereich
> funktioniert es nur mit manueller Anschieb-Hilfe.

Da würde ich mal frech behaupten, das Teil ist ein bisschen schwach auf 
der Brust. Besonders wenn es OHNE Last, sauber seinen Job macht.

Wie stark ist denn das Teilchen lt. Datenblatt.

Manuelle Anschiebehilfe bedeutet IMMER : Das der Anzugsmoment des Motors 
zu schwach ist.

Ist wie wenn du ein Auto im 3 Gang an fährst. Das läuft auch erst wenn 
du es anschiebst. ;)

Mein Tipp : Tausche den Motor. Und berechne VORHER welche Kraft du 
benötigst.  Es gibt da den Trick mit den Gewicht am Faden als 
Notfallalternative.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Marvin G. schrieb:
> meiner Meinung nach vernachlässigbarer Last
Wird da dann per Handzeichen abgestimmt ob die Last vernachlässigbar ist 
oder nicht? Oder hast du mal das nötige Drehmoment einfach mal 
gemessen? Denn nur, wenn du weißt, was du anzusteuern hast, kannst du 
auch die Hardware dafür aufbauen. Eh' klar.

> Was könnte eurer Meinung nach die Ursache dafür sein?
Du hast evtl. auch nur deinen Schrittmotortreiber falsch konfiguriert. 
Miss doch mal, wieviel Drehmoment/Haltemoment der Schrittmotor 
zusammenbringt. Davon ziehst du dann das Moment ab, das die wie gemeint 
leichtgängige Mechanik braucht, und dann muss unbedingt ein positiver 
Wert herauskommen.

> Es handelt sich um einen Sägeanschlag.
Da war doch letzhin im 
Beitrag "Re: Bandsäge ansteuern" auch schon was in 
der Art. Ich würde dir so einen Scheibenwischermotor und einen Drehgeber 
zur Positionserfassung empfehlen. Mit dem geht das.

Schlaumaier schrieb:
> Ist wie wenn du ein Auto im 3 Gang an fährst. Das läuft auch erst wenn
> du es anschiebst. ;)
Ich kann das auch ohne Anschieben...  ;-)

: Bearbeitet durch Moderator
von EAF (Gast)


Lesenswert?

Marvin G. schrieb:
> 400W
Spannung/Strom ist egal?

Marvin G. schrieb:
> Nema34
Womit zumindest das Lagerschild/Befestigung des Motors definiert sind.
Die elektrischen Werte sind egal?

von Schlaumaier (Gast)


Lesenswert?

Lothar M. schrieb:
> Ich kann das auch ohne Anschieben...  ;-)

armes kleines Getriebe. ;))

Zum Motor :

https://www.reichelt.de/schrittmotor-nema-34-1-8-5-a-9-v-nema34-01-p269228.html

Das Teil ist ein 9 Volt-Motor falls ich den richtigen erwischt habe. 
Damit würde ich vielleicht ein 3D-Drucker steuern, aber kaum mehr.

Mich würde echt mal interessieren was der ziehen SOLL.

von Marvin G. (marvin23)



Lesenswert?

Danke für die schnellen Antworten!

Anbei noch ein kurzes Video von der Referenzfahrt und einer 
Positionierung sowie der Schaltplan und Bilder des Aufbaus und die 
Datenblätter des Motors.

Spannungsversorgung vom Netzteil:
Spannung 70V
Strom 5.7A

Haltemoment des Motors ist stark genug, man muss sehr viel Kraft 
aufwenden um das Haltemoment zu überwinden.

Hat einer Erfahrungen bzgl. der Anpassung der Parameter des 
Motortreibers HB860H? Möglicherweise lässt sich durch die Anpassung 
derer noch etwas rausholen.

von Joe (Gast)


Lesenswert?

Probiere den Motor mal mit halber Geschwindigkeit laufen zu lassen.
Hast du eine Beschleunigungsrampe programmiert?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Schlaumaier schrieb:
> Lothar M. schrieb:
>> Ich kann das auch ohne Anschieben...  ;-)
> armes kleines Getriebe. ;))
Die Kupplung ist es, der es warm wird...

Schlaumaier schrieb:
> Mich würde echt mal interessieren was der ziehen SOLL.
Naja, mit einem Haltemoment von 1100 Ncm könnte man immerhin 1kg am Ende 
einer 1m langen Stange halten. Das kann man ja leicht ausprobieren.

Und das kann man jetzt ja mal gegen die Mechanik vergleichen. Aber die 
fühlt sich bei 10Nm sicher nicht "leichtgängig" an...

Joe schrieb:
> Hast du eine Beschleunigungsrampe programmiert?
Offenbar schon, wenn auch anhand der MagicNumbers gefühlt recht knackig:
1
  stepper.setSpeed(100);
2
  stepper.setAcceleration(750);
Aber das ist vermutlich sowieso nicht nötig, weil damit nur eine Spindel 
angetrieben und nichts großartig beschleunigt wird.

Marvin G. schrieb:
> Spannungsversorgung vom Netzteil:
> Spannung 70V
> Strom 5.7A
Über die beiden mickrigen Drähtchen?
Ich tippe wieder auf ein Problem bei der Masse- und/oder 
Versorgungsführung.

> Spannungsversorgung vom Netzteil:
> Spannung 70V
Gratulation, super gewählt, passt ja tadellos zu den 3V vom 
Schrittmotor.
[/ironie]
Der Stromregler kriegt ja einen Vogel, weil er gleich nach dem 
Einschalten wieder Abschalten muss.

: Bearbeitet durch Moderator
von Marvin G. (marvin23)


Lesenswert?

Joe schrieb:
> Probiere den Motor mal mit halber Geschwindigkeit laufen zu lassen.
> Hast du eine Beschleunigungsrampe programmiert?

Ich habe die AccelStepper-Bibliothek verwendet.
Geschwindigkeit hatten wir schon immer mal geändert, leider trotzdem 
noch die gleichen Phänomene.

Die Referenzfahrt verläuft ohne Beschleunigung, und dort treten die 
Phänomene wie beschrieben auch auf.

Man kann auch eine Rampe im Motortreiber als Parameter hinterlegen, aber 
die Parameter haben wir wie gesagt bisher nicht angefasst.

von Moko (Gast)


Lesenswert?

Hier gibts auch  schon einige Antworten: 
https://forum.arduino.cc/t/schrittmotor-mit-arduino/900939

von Xaver M. (priapos)


Lesenswert?

Nema34 sagt über den Motor nur die Schutzklasse aus, analog zur 
europäischen IPXX
Ich würde mal die Stromaufnahme messen, damit man mal weis woher das 
Problem überhaupt kommt.
Außerdem liefert das Netzteil 5,7 A und der Motor braucht 6 A lt 
Datenblatt, damit sollte das Netzteil mindesten 3 mal soviel liefern wie 
der Motor braucht, damit du überhaupt ordentlich anfahren kannst, also 
mindest. ein 20 A Netzteil.

von Walter T. (nicolas)


Lesenswert?

Xaver M. schrieb:
> Nema34 sagt über den Motor nur die Schutzklasse aus, analog zur
> europäischen IPXX

Xaver M. schrieb:
> damit sollte das Netzteil mindesten 3 mal soviel liefern

Ungefähr alles in diesem Beitrag ist sachlich falsch. Schrittmotor und 
Treiber arbeiten hier als Abwärtswandler. NemaXXX ist das Flanschmaß.

Lothar M. schrieb:
>> Spannungsversorgung vom Netzteil:
>> Spannung 70V
> Gratulation, super gewählt, passt ja tadellos zu den 3V vom
> Schrittmotor.
> [/ironie]

Das passt eigentlich ganz gut. Die Mikroschritt-Endstufen mögen gerne 
viel Freiraum zum regeln.

Was mir gerade aber nicht klar ist: Das ist eine Closed-Loop-Endstufe. 
Wie ist denn der Drehgeber angebunden?

: Bearbeitet durch User
von Xaver M. (priapos)


Lesenswert?

Walter T. schrieb:
> Ungefähr alles in diesem Beitrag ist sachlich falsch.

Dieter Nuhr hat Zitate für dich, bis dahin kannst du mal hier gucken:
https://www.elektro-kahlhorn.de/stromaufnahme:_:450.html

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Xaver M. schrieb:
> Dieter Nuhr hat Zitate für dich,

Ich nehme an, Du meinst "Man kommt ja zu nix."

Ansonsten guckste mal auf die Überschrift Deines Dokuments.

von Xaver M. (priapos)


Lesenswert?

Walter T. schrieb:
> NemaXXX ist das Flanschmaß.
vielleicht das der Tomaten die du auf den Augen hast
https://www.rittal.com/de-de/Services/Knowledge-Base/Schutzarten

von Xaver M. (priapos)


Lesenswert?

Walter T. schrieb:
> Ansonsten guckste mal auf die Überschrift Deines Dokuments.

Ich habe sogar weiter gelesen ...

Diese Tabelle ist ausschließlich als Orientierungshilfe zu betrachten.

von Walter T. (nicolas)


Lesenswert?

Xaver M. schrieb:
> Ich habe sogar weiter gelesen ...

...nur offensichtlich nicht bis zum Wort "Drehstrommotoren". Meine Güte, 
was ist heute los? Wir haben doch keinen Vollmond?

Edit: Ich habe sicherheitshalber nochmal recherchiert, damit ich hier 
keinen Unsinn schreibe: Der nächste Neumond ist in 7 Tagen.


@TO: Welche Spindelsteigung hast Du denn? Die 
Motor-Endstufen-Kombination müsste eigentlich bei der Spannung Kraft 
haben wie ein Büffel.

Und vielleicht die Hintergrundmusik wegmachen. Ansonsten gibt es noch 
irgendwann Ärger mit den Erben von Maggie Reilly. Die ist schließlich 
auch schon Mitte Sechzig.

: Bearbeitet durch User
von Xaver M. (priapos)


Lesenswert?

Walter T. schrieb:
> Edit: Ich habe sicherheitshalber nochmal recherchiert, damit ich hier
> keinen Unsinn schreiber: Der nächste Neumond ist in 7 Tagen.

Bemerkenswert, ich nehme an den Bezug zum Eingangsthema lieferst du noch 
nach?
Natürlich ist die Tabelle für Drehstrommotoren, wer allerdings 
aufmerksam liest stellt fest, das die ANlaufströme IMMER deutlich höher 
sind, womit sich die Schlußfolgerung ergibt, sich damit im speziellen 
nochmals zu beschäftigen, ggf. kannst du ihm den genauen Wert ja 
ausrechnen oder überzeugst dich hier:
https://de.wikipedia.org/wiki/Einschaltstrom
das dieses Netzteil nicht passt, ups, jetzt sind es Asynchronmotoren ... 
verdammt, und auch hier ein erhöhter Anlaufstrom, mindestens 4.fach 
verhext ... echt.

Ich Zitiere nochmal deine Aussage:
Ungefähr alles in diesem Beitrag ist sachlich falsch.

von Walter T. (nicolas)


Lesenswert?

Im letzten Post ist ein Satz richtig. Der hier:

Xaver M. schrieb:
> Ungefähr alles in diesem Beitrag ist sachlich falsch.


Und wenn Du Dich nicht weiter blamieren magst, schau Dir mal an, wie 
Schrittmotoren heutzutage betrieben werden. Es handelt sich um ein 
relativ modernes Closed-Loop-Schrittmotor-System, und so ziemlich alles, 
was einen Asynchronmotor ausmacht, trifft hier nicht zu. Schon allein 
deswegen nicht, weil hier Stromregelung betrieben wird.

Deswegen ist hier die angegebene Spannung eine Mindestspannung und der 
Strom ein Höchststrom *) durch die Motorwindungen, wobei die 
Motor-Induktivität genutzt wird, dass das System als Abwärtswandler 
arbeitet.


*) thermisch bedingter Effektivwert

Und nach allem, was ich gesehen habe, passen Netzteil, Endstufe und 
Motor auch gut zusammen. Bleibt also noch der Drehgeber und der 
Spindeltrieb als fragliche Komponente. Nicht dass irgendwas Unpassendes 
gemacht wurde und der Drehgeber mit Spiel oder einer flexiblen Kopplung 
angetrieben wird.

: Bearbeitet durch User
von Xaver M. (priapos)


Lesenswert?

Walter T. schrieb:
> Und wenn Du Dich nicht weiter blamieren magst,

doch, mag ich, auch weil du noch nichts zu Nema/IPxx/den Flanschmaßen 
gesagt hast, sei so nett, der Vollständigkeit halber, nicht das bei 
ungefähr alles die Hälfte noch zurückbleibt.

von Felix (Gast)


Lesenswert?

Walter T. schrieb:

>
> Das passt eigentlich ganz gut. Die Mikroschritt-Endstufen mögen gerne
> viel Freiraum zum regeln.
>
> Was mir gerade aber nicht klar ist: Das ist eine Closed-Loop-Endstufe.
> Wie ist denn der Drehgeber angebunden?

Der Schrittmotor hat einen integrierten Encoder, welcher direkt auf den 
Motortreiber geklemmt wird.

Walter T. schrieb:

>
> @TO: Welche Spindelsteigung hast Du denn? Die
> Motor-Endstufen-Kombination müsste eigentlich bei der Spannung Kraft
> haben wie ein Büffel.

Angetrieben wird das ganze über einen Zahnriementrieb und nicht über 
eine Spindel. Ich weiß nicht mehr die genaue Teilung, aber eine 
Umdrehung entsprechen 176mm Verfahrweg.
Es gab beim Testen eine Fehlersituation in der der Motor mit Vollschub 
gefahren ist. Weit schneller als das was wir angesetzt haben. Spätestens 
damit war mir klar, dass der Motor genug Kraft haben muss.

Walter T. schrieb:

>
> Und nach allem, was ich gesehen habe, passen Netzteil, Endstufe und
> Motor auch gut zusammen. Bleibt also noch der Drehgeber und der
> Spindeltrieb als fragliche Komponente. Nicht dass irgendwas Unpassendes
> gemacht wurde und der Drehgeber mit Spiel oder einer flexiblen Kopplung
> angetrieben wird.


Wie bereits angemerkt befindet sich der Encoder im Motor selbst. Ich 
werde morgen auch nochmal mit einem Oszi schauen, was aus dem Arduino 
als Pulssignal herauskommt, sowie nachsehen was mit der Netzteilspannung 
passiert.

mfg Felix

von Johannes S. (Gast)


Lesenswert?

https://de.wikipedia.org/wiki/Schrittmotor#Baugr%C3%B6%C3%9Fe

Das man NEMA im Zusammenhang mit Schrittmotoren für Schutzklassen 
verwendet habe ich noch nie gesehen, und ich habe auch schon viel mit 
Schrittmotoren gemacht.
Die 6A sind bei 3V gerade mal 18 Watt statisch, mal zwei keine 40 Watt. 
Das man bei SM mit höheren Spannungen arbeitet um das Magnetfeld schnell 
aufzubauen sollte sich auch schon rumgesprochen haben. Das Netzteil ist 
gut, bis auf die Tatsache das man vielleicht bei sicheren 48 V bleiben 
sollte wenn man den Motor nicht bis aufs letzte ausreizen muss.

Und dann der Schlaumeier der so einen Klopper für 3D Drucker verwenden 
würde, ja nee, is klar. 12,5 Nm quetschen dir locker einen Finger ab 
wenn du damit eine Spindel antreibst.

Neben den Dupontkabeln in einem Industriegerät (ein No Go) gefällt mir 
das Arduinoprogramm am wenigsten. Entweder das verwenden was dafür 
entwickelt wurde: eine SPS, oder wenigstens das Kapitel Schrittketten / 
Statemachine verinnerlichen.
Die Bremse wird z.B. nicht in 0 ms lösen, wenn der SM dann schon laufen 
soll verliert er Schritte oder die Steuerung mit CL geht in die Störung.

von Walter T. (nicolas)


Lesenswert?

Xaver M. schrieb:
> Nema/IPxx/den Flanschmaßen

Ich bin kein Freund von "Such mal bei Google!!!!", aber die Stichworte 
"Nema" und "Flanschmaß" sind tatsächlich ergiebig.

Felix schrieb:
> aber eine
> Umdrehung entsprechen 176mm Verfahrweg.

Ui! Das ist viel! Bei mir an der Drehbank hat ein Motor mit 6 Nm 
2mm/Umdrehung. Das habe ich sehr konservatv gewählt, da 
Trapezgewindespindel.

Bekomnt ihr mit einem kleineren Übersetzungsverhältnis nicht mehr auf 
die geforderte Geschwindigkeit?

: Bearbeitet durch User
von Felix (Gast)


Lesenswert?

Johannes S. schrieb:
> https://de.wikipedia.org/wiki/Schrittmotor#Baugr%C3%B6%C3%9Fe
>
> Das man NEMA im Zusammenhang mit Schrittmotoren für Schutzklassen
> verwendet habe ich noch nie gesehen, und ich habe auch schon viel mit
> Schrittmotoren gemacht.
> Die 6A sind bei 3V gerade mal 18 Watt statisch, mal zwei keine 40 Watt.
> Das man bei SM mit höheren Spannungen arbeitet um das Magnetfeld schnell
> aufzubauen sollte sich auch schon rumgesprochen haben. Das Netzteil ist
> gut, bis auf die Tatsache das man vielleicht bei sicheren 48 V bleiben
> sollte wenn man den Motor nicht bis aufs letzte ausreizen muss.

Der Treiber war glaube ich bis 100V oder 120V DC angegeben, daher hatte 
ich die 70V ausgewählt...

> Und dann der Schlaumeier der so einen Klopper für 3D Drucker verwenden
> würde, ja nee, is klar. 12,5 Nm quetschen dir locker einen Finger ab
> wenn du damit eine Spindel antreibst.

:D :D

> Neben den Dupontkabeln in einem Industriegerät (ein No Go) gefällt mir
> das Arduinoprogramm am wenigsten. Entweder das verwenden was dafür
> entwickelt wurde: eine SPS, oder wenigstens das Kapitel Schrittketten /
> Statemachine verinnerlichen.
> Die Bremse wird z.B. nicht in 0 ms lösen, wenn der SM dann schon laufen
> soll verliert er Schritte oder die Steuerung mit CL geht in die Störung.

Ja, dass die Kabel nicht der Hit sind nehme ich an. Stimme ich zu. Die 
Bremse ist derzeit nicht aktiv bzw verbaut. Der Fehler derzeit liegt 
auch ohne Bremse an.

Walter T. schrieb:

> Ui! Das ist viel! Bei mir an der Drehbank hat ein Motor mit 6 Nm
> 2mm/Umdrehung. Das habe ich etwas konservatv gewählt, da
> Trapezgewindespindel.
>
> Bekomnt ihr mit einem kleineren Übersetzungsverhältnis nicht mehr auf
> die geforderte Geschwindigkeit?

Doch mit Sicherheit schon. Müsste aber eben dann mit einem Getriebe am 
SM realisiert werden, da Riemenscheibe kann nicht wirklich kleiner 
gewählt werden...

Mfg

von Johannes S. (Gast)


Lesenswert?

Felix schrieb:
> Ja, dass die Kabel nicht der Hit sind nehme ich an.

halte an die weiblichen Stecker mal einen Magneten, die billigen sind 
oft Eisenhaltig und leiern aus und fallen bei ein bisschen Vibration von 
alleine ab.

Für die SM gibt es meist passende Planetengetriebe, aber auch da muss 
man ein passendes für das hohe Drehmoment finden.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Xaver,

Xaver M. schrieb:
> Walter T. schrieb:
>> NemaXXX ist das Flanschmaß.
> vielleicht das der Tomaten die du auf den Augen hast
> https://www.rittal.com/de-de/Services/Knowledge-Base/Schutzarten

NEMA steht für “National Electrical Manufacturers Association” und ist 
eine amerikanische Normungsorganisation, ähnlich dem deutschen DIN 
Institut oder der ISO (International Standard Organisation). Für 
Schrittmotoren ist die NEMA-Norm ICS 16-2001 „Motion/Position Control 
Motors, Controls and Feedback Devices“ der relevante Standard. Und da 
geht es eben nicht um IP-Rating, sondern um Baugrößen [1].

Mit freundlichen Grüßen
Thorsten Ostermann

[1] 
http://www.schrittmotor-blog.de/nema-schrittmotor-was-ist-das-eigentlich/

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Ich denke der Hinweis auf den Closed-Loop Treiber dürfte hilfreich sein. 
Da musst du mal schauen, ob man den auf Open-Loop Betrieb 
umkonfigurieren kann. Sonst hast du entweder den falschen Treiber oder 
den falschen Motor gekauft. Ich halte den Motor außerdem für deutlich 
überdimensioniert.

Mit freundlichen Grüßen
Thorsten Ostermann

von Felix (Gast)


Lesenswert?

Thorsten O. schrieb:
> Ich denke der Hinweis auf den Closed-Loop Treiber dürfte hilfreich
> sein. Da musst du mal schauen, ob man den auf Open-Loop Betrieb
> umkonfigurieren kann. Sonst hast du entweder den falschen Treiber oder
> den falschen Motor gekauft. Ich halte den Motor außerdem für deutlich
> überdimensioniert.
> Mit freundlichen Grüßen
> Thorsten Ostermann

Hallo, habe den Motor mit Treiber als Set gekauft, daher denke ich doch, 
dass das passen müsste...

Ja man kann ohne Encoder fahren, allerdings fährt er dann gar nicht 
vernünftig. Denke dass evtl irgendwas in der Ansteuerung nicht passt 
weshalb der Encoder das einzige ist was das irgendwie korrigiert...

Und der Motor lieber zu groß als zu klein oder?

MfG felix

von Wolfgang (Gast)


Lesenswert?

Felix schrieb:
> Ja man kann ohne Encoder fahren, allerdings fährt er dann gar nicht
> vernünftig.

Ein passend dimensionierter Schrittmotor muss bei richtiger Ansteuerung 
ohne Encoder vernünftig laufen. Wenn das nicht klappt, stimmt etwas im 
System nicht.

von Walter T. (nicolas)


Lesenswert?

Felix schrieb:
> Der Schrittmotor hat einen integrierten Encoder, welcher direkt auf den
> Motortreiber geklemmt wird.

Das hatte ich dem Datenblatt nicht entnehmen können.

Wolfgang schrieb:
> Ein passend dimensionierter Schrittmotor muss bei richtiger Ansteuerung
> ohne Encoder vernünftig laufen.

Das stimmt aber auch.

Was Ärger machen kann, ist wenn der Encoder nicht fest sitzt.

Felix schrieb:
> Doch mit Sicherheit schon. Müsste aber eben dann mit einem Getriebe am
> SM realisiert werden, da Riemenscheibe kann nicht wirklich kleiner
> gewählt werden...

Ja, wahrscheinlich. Es bietet sich ein Riementrieb an. Bei HTD 5 x 15 
bist Du ritzelseitg schon ab 13...15 Zähnen dabei. Ich würde die 
Übersetzung so wählen, dass die Maximaldrehzahl, wo die 
Drehmomentkennlinie einen Knick macht, der gewünschten 
Verstellgeschwindigkeit entspricht. Wenn der Motor dann bei langsamem 
Verfahren zu kräftig ist (Quetschgefahr), kann man ja immer noch mit dem 
Strom runtergehen.

Johannes S. schrieb:
> Neben den Dupontkabeln in einem Industriegerät [...]

Ich habe es mir verkniffen, aber ich stimme Dir inhaltlich zu.

Das Gute an einem Schrittmotorantrieb ist, dass er bei einem 
abgefallenen Kabel nicht durchgehen kann. Nur kaputt.

: Bearbeitet durch User
von Xaver M. (priapos)


Lesenswert?

Thorsten O. schrieb:
> Hallo Xaver,
>
> NEMA steht für “National Electrical Manufacturers Association” und ist
> eine amerikanische Normungsorganisation, ähnlich dem deutschen DIN
> Institut oder der ISO (International Standard Organisation). Für
> Schrittmotoren ist die NEMA-Norm ICS 16-2001 „Motion/Position Control
> Motors, Controls and Feedback Devices“ der relevante Standard. Und da
> geht es eben nicht um IP-Rating, sondern um Baugrößen [1].
>
> Mit freundlichen Grüßen
> Thorsten Ostermann
>
> [1]
> http://www.schrittmotor-blog.de/nema-schrittmotor-was-ist-das-eigentlich/

Besten Dank für die Info, scheint als wäre das Thema noch komplexer als 
ich beim ersten mal gelesen habe, da wurde der IPXX Zusammenhang 
dargestellt.

von Wolfgang (Gast)


Lesenswert?

Xaver M. schrieb:
> ... da wurde der IPXX Zusammenhang dargestellt.

Was ist ein "IPXX Zusammenhang"?

von Felix (Gast)


Lesenswert?

> Felix schrieb:
>> Doch mit Sicherheit schon. Müsste aber eben dann mit einem Getriebe am
>> SM realisiert werden, da Riemenscheibe kann nicht wirklich kleiner
>> gewählt werden...
>
> Ja, wahrscheinlich. Es bietet sich ein Riementrieb an. Bei HTD 5 x 15
> bist Du ritzelseitg schon ab 13...15 Zähnen dabei. Ich würde die
> Übersetzung so wählen, dass die Maximaldrehzahl, wo die
> Drehmomentkennlinie einen Knick macht, der gewünschten
> Verstellgeschwindigkeit entspricht. Wenn der Motor dann bei langsamem
> Verfahren zu kräftig ist (Quetschgefahr), kann man ja immer noch mit dem
> Strom runtergehen.


Also schlussfolgere ich daraus, dass die Masseträgheit beim anfahren zu 
hoch ist bei dieser Übersetzung? Wobei wie gesagt, es trat ein 
Fehlerfall auf, bei welchem das Teil 2m Verfahrweg in einer Sekunde 
zurückgelegt hat aus dem Stillstand ohne, dass der Treiber oder Netzteil 
in Störung gegangen ist, also Kraft hat er schon. Sicher wäre es 
sinnvoll auch wegen der höheren Genauigkeit die Übersetzung abzuändern. 
Wir wären derzeit bei 1600 Microsteps bei 0,11mm pro Step, was bei 
diesem Zweck völlig ausreichend wäre.

von Walter T. (nicolas)


Lesenswert?

Bei der Diskussion haben wir allerdings einen Punkt außen vor gelassen, 
der nicht im "Schaltplan" eingezeichnet ist: Den Stützkondensator. Was 
ist da eigentlich verbaut? Der Teil ist ja schon bei den 
Original-Meanwell-Netzteilen etwas knifflig, weil die keine kapazitive 
Last vertragen. Ich weiß nicht, wie es bei den Klonen aussieht.

von Felix (Gast)


Lesenswert?

Walter T. schrieb:
> Bei der Diskussion haben wir allerdings einen Punkt außen vor
> gelassen, der nicht im "Schaltplan" eingezeichnet ist: Den
> Stützkondensator. Was ist da eigentlich verbaut? Der Teil ist ja schon
> bei den Original-Meanwell-Netzteilen etwas knifflig, weil die keine
> kapazitive Last vertragen. Ich weiß nicht, wie es bei den Klonen
> aussieht.

Welcher Stützkondensator? Ich habe keinen verbaut oder befindet sich 
einer im Treiber?

von Walter T. (nicolas)


Lesenswert?

Felix schrieb:
> Welcher Stützkondensator? Ich habe keinen verbaut

Nicht schlimm. Hauptsache Marvin hat einen verbaut.

Felix schrieb:
> oder befindet sich
> einer im Treiber?

Meistens nicht groß genug. Die Endstufen ziehen ordentlich Spitzenstrom. 
Es sind ja Abwärtswandler.

von Felix (Gast)


Lesenswert?

Walter T. schrieb:
> Felix schrieb:
>
>> Welcher Stützkondensator? Ich habe keinen verbaut
>
> Nicht schlimm. Hauptsache Marvin hat einen verbaut.
> Felix schrieb:
>
>> oder befindet sich
>> einer im Treiber?
>
> Meistens nicht groß genug. Die Endstufen ziehen ordentlich Spitzenstrom.
> Es sind ja Abwärtswandler.

Hardware ist dann doch eher mein Part :D also sollte ich da was 
nachrüsten...Von welcher Größenordnung sprechen wir hier als 
Stützkondensator? Bzw. ich werde heute mal die Spannung mit dem Oszi 
betrachten und schauen was da passiert...

von Walter T. (nicolas)


Lesenswert?

Felix schrieb:
> Von welcher Größenordnung sprechen wir hier als
> Stützkondensator?

Da kann ich Dir keinen Rat geben, da das von der Schaltfrequenz abhängt. 
Ich habe bei mir für drei Endstufen 10000µF verbaut, aber meine 
Endstufen sind etwas älter und haben wahrscheinlich eine niedrigere 
Schaltfrequenz.

Das das Netzteil spezifikationsgemäß bei der Ausgangskapazität verrückt 
gespielt hat, war dann noch ein Soft-Start mit NTC und Relais fällig.

Aber vielleicht ist das bei euch nicht nötig.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Walter T. schrieb:
> Aber vielleicht ist das bei euch nicht nötig.
Man könnte mal die Versorgungsspannung messen: wie sieht die am Netzteil 
aus und wie an der Endstufe? Am Besten misst man das mit einem 
Oszilloskop. Und dann wird man die dünnen 1mm² (oder noch weniger) 
Sicherungsdrähte gegen welche mit halbwegs brauchbarem Querschnitt 
tauschen.

Walter T. schrieb:
> Die Endstufen ziehen ordentlich Spitzenstrom.
> Es sind ja Abwärtswandler.
Weil es Abwärtswandler sind, fließt in der "Ein" Phase durch die 
Kondensatoren genau der selbe Strom wie durch den Motor. Und auch den 
kann man messen.

BTW: ich würde übrigens die Drähte der Versorgung (und die zum Motor, 
und auch die zum angesprochenen Stützkondensator) ganz eng beieinander 
führen oder gar verdrillen. Das sorgt dafür, dass du keinen Störsender 
baust, der fröhlich in der Gegend herumfunkt. Stichworte dazu sind: 
Leiterschleife, Störungen, Antenne

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
Noch kein Account? Hier anmelden.