Forum: Mikrocontroller und Digitale Elektronik Bipolar 2_Phase Schrittmotor mit L298N betreiben.


von berni_13 (Gast)


Lesenswert?

Basisdaten:
Steuerung: Arduino Mikrokontroller
Motordriver: MotoMama Shield - basiert an L298N
Antrieb: Motor von Conrad (NEMA 24 Bipolar 2P).

Ablauf:
Ich lasse den Motor jeder 2 sek. eine 360° Umdrehung machen.

Problem:
Der Schrittmotor dreht sehr unregelmäßig.
oft nur halbe Umdrehung bzw. bleibt einfach blockiert stehen. 
Stromaufnahme am Externen Akku gemessen 0,335 A.

Hier der Code:
Stepper stepper(200, In1, In2, In3, In4);

void setup() {
pinMode(EnA, OUTPUT);
pinMode(EnB, OUTPUT);
stepper.setSpeed(80);
}

void loop() {
digitalWrite(EnA, HIGH);
digitalWrite(EnB, HIGH);

stepper.step(200);

digitalWrite(EnA, LOW);
digitalWrite(EnB, LOW);
delay(2000);
}

Wo kann es liegen???

LG
Berni

von MaWin (Gast)


Lesenswert?

> Wo kann es liegen???

Fehlende Resonanzverhinderung (/Bremsresonatorplatte).
Zu schnelle Beschleunigung oder Schrittgeschwindigkeit.
Zu niedriger Motorstrom.
Zu niedriges Drehmoment bei der gewünschten Geschwindigkeit.

> Antrieb: Motor von Conrad* (NEMA 24 Bipolar 2P).

Geil wie man so viele Worte verlieren kann ohne was substantielles 
auszusagen.

http://www.stepper-motors.net/schrittmotor/high_torque_schrittmotor_nema_24_hs.htm

> Stromaufnahme am Externen Akku gemessen 0,335 A.

Klingt nach viel zu wenig.

von berni_13 (Gast)


Lesenswert?

Also, ich schalte jetzt den Motor (NEMA 24 = 2.8A, 110 Ncm) direkt mit 
Halbschritten.
Nach jedem Schritt lasse es 1200 Microseconds pausieren.

Der Schrittmotor dreht jetzt Regelmassig hat aber keine Kraft (kann 
diesen mit zwei Fingern anhalten).
Strom am Akku immer noch zu niedrig ca. 350 mA.

// Hier die Halbschritt Ansteuerung

EnA bzw. EnB auf HIGH setzen

for(int i=0; i<50; i++) {            // 50 ergibt eine 360° Umdrehung

         In4 | In3 | In2 | In1
Step 1 =  1     0     0     1
delay
Step 2 =  1     0     0     0
delay
Step 3 =  1     0     0     1
delay
Step 4 =  0     0     0     1
delay
Step 5 =  0     1     0     1
delay
Step 6 =  0     1     0     0
delay
Step 7 =  0     1     1     0
delay
Step 8 =  0     0     1     0
delay
}

EnA bzw. EnB auf LOW setzen
//------------------------------------------


Fragen:
1)  Ist vielleicht der IC L298N defekt?
2)  Wie ermittelt man die Pause zwischen den einzelnen Schritten

LG
Berni

von Michael (Gast)


Lesenswert?

berni_13 schrieb:
> 1)  Ist vielleicht der IC L298N defekt?

Was steht im Datenblatt des Motor zu Strom und Spannung (Link?).
Miß mal den Strom bei einer Schrittdauer von 10 ms.
Welche Spannung hat dein Akku.

> 2)  Wie ermittelt man die Pause zwischen den einzelnen Schritten
Die ist abhängig von der Drehzahl/Schrittfrequenz und ändert sich 
zwischen Ruhe und Maximalgeschwindigkeit (-> 
Beschleunigungs-/Bremsrampe)

von MaWin (Gast)


Lesenswert?

> den Motor (NEMA 24 = 2.8A

Für einen L298 ist das jedenfalls zu viel,
falls du ihn nicht mit Stromregelung betreibst.

von spess53 (Gast)


Lesenswert?

Hi

Deine Schrittfolge sieht sehr komisch aus:

Step 1 =  1     0     0     1
...
Step 3 =  1     0     0     1

Step 8 =  0     0     1     0
...
Step 1 =  1     0     0     1

MfG Spess

von Berni_13 (Gast)


Lesenswert?

>>Was steht im Datenblatt des Motor zu Strom und Spannung (Link?).
Laut Conrad-ELektronik - Technische Daten für QSH6018-45-28-110:
- Betriebsspannung = 0 - 84 V/DC
- Max. Phasen-Strom = 2.8 A


>> Welche Spannung hat dein Akku.
12V 6Ah

>> Für einen L298 ist das jedenfalls zu viel,
ich denke fürs Test ohne Motor Belastung musste es reichen

>> Deine Schrittfolge sieht sehr komisch aus:
Sorry war Schreibfehler. Sollte so lauten:

Step 1 = 1010
Step 2 = 1000
Step 3 = 1001
Step 4 = 0001
Step 5 = 0101
Step 6 = 0100
Step 7 = 0110
Step 8 = 0010


Ich glaube die Betriebsspannung 12V ist zu niedrig!

Berni

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.