Forum: Mikrocontroller und Digitale Elektronik Arduino motor shield r3 Emis Schrittmotor


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Raganout (Gast)


Lesenswert?

Hallo zusammen,

mal eine kleine Geschichte zum Anfang. Wen es nicht interessiert, soll 
gleich zum Ende springen, da fasse ich das ganze Dilemma noch einmal 
zusammen.

Ich habe mir vor einiger Zeit, ein Arduino Uno gekauft und auch schon 
einpaar Sachen zum laufen gebracht. Also hab ich mir gedacht ich spiele 
mal mit ein paar Motoren rum.

Das einfachste für meine ersten Schritte (dachte ich), war, mir ein 
Arduino motor shield r3, einen 12V DC Motor und einen Schrittmotor (EMIS 
E547-52500) zu kaufen.

Fehler 1: Lesen macht Klug. Ich hätte mich vorher informieren sollen, 
was es so an Schrittmotoren gibt und was es damit auf sich hat.

So ab nach Hause, motor shield drauf gesteckt aufs Uno und etwas 
rumprobiert.

Nach ein paar Stunden und etwas Studium in der Arduino Referenz, bekomme 
ich den DC Motor zum laufen.

Fehler 2: Das Glück der Dummen hält nicht ewig.

Mein erster Gedanke war: "Ist doch leicht, mal schauen was ich mit dem 
Schrittmotor mache."

Kurz ins Datenblatt geschaut und gleich mal angeschlossen.

Channel A: + Blau
           - Orange
Channel B: + Gelb
           - Rot

Schwarz und weiß bleiben lose.

Fehler 3: Das Glück der Dummen hält wirklich nicht ewig.

Ein paar Stunden und einige Zahn abdrücke im Tisch später läuft der 
Schrittmotor.

Fehler 4: Zu früh gefreut.

Er dreh sich links, er dreht sich rechts und ich drehe vor Freude mit.

Dann der Schreck. Ich schaue auf das Labornetzteil und sehe das der 
Motor 3A zieht und noch immer nicht genug hat. zur Kontrolle schließe 
ich alles ab und greife auf den Motor.

Erstaunlicherweise hab ich mir nicht die Finger verbrannt (war aber nah 
dran).

Also die Verkabelung gecheckt, auf einen Kurzschluss. Nichts.
Programm gecheckt, auf irgendetwas. Nichts.
Datenblatt gecheckt auf irgendetwas. Nichts.

Nach einigem Suchen und lesen, hab ich heraus gefunden, das ich 
möglicherweise einen bipolaren Kandidaten vor mir habe und dass es da 
einige Probleme gibt(die ich nicht verstehe).

Fehler 5: Zuwenig, zuspät gelesen.

Auf der Suche nach Erkenntnis, bin ich jetzt irgendwie in einer 
Sackgasse gelandet.

------------------------------------------------------------------------ 
--

So und jetzt zum Punkt.

Ich habe:

1 x Arduino Uno
1 x Motor shield r3
1 x EMIS E547-52500 
http://www.conrad.at/ce/de/product/198398/Emis-Schrittmotor-E547-52500-12-VDC-Halte-Moment-025-Nm-Phasen-Strom-max-06-A-Wellen-5-mm?queryFromSuggest=true

1 x Code
1
#include <Stepper.h>
2
 
3
 const int stepsPerRevolution = 48;  // change this to fit the number of steps per revolution
4
                          // for your motor
5
 
6
 // initialize the stepper library on the motor shield
7
 Stepper myStepper(stepsPerRevolution, 12,13);     
8
 
9
 // give the motor control pins names:
10
 const int pwmA = 3;
11
 const int pwmB = 11;
12
 const int brakeA = 9;
13
 const int brakeB = 8;
14
 const int dirA = 12;
15
 const int dirB = 13;
16
 
17
 int x = 0;
18
void setup() {
19
 Serial.begin(9600);
20
 // set the PWM and brake pins so that the direction pins  // can be used to control the motor:
21
pinMode(pwmA, OUTPUT);
22
 pinMode(pwmB, OUTPUT);
23
 pinMode(brakeA, OUTPUT);
24
 pinMode(brakeB, OUTPUT);
25
 digitalWrite(pwmA, HIGH);
26
 digitalWrite(pwmB, HIGH);
27
 digitalWrite(brakeA, LOW);
28
 digitalWrite(brakeB, LOW);
29
 
30
 // initialize the serial port:
31
 Serial.begin(9600);
32
 // set the motor speed (for multiple steps only):
33
 myStepper.setSpeed(2);
34
 }
35
36
 
37
 void loop() {
38
 
39
  myStepper.step(48);
40
  myStepper.step(-48);
41
42
  delay(2000);
43
44
 }

Anschluss des Motors:

Channel A: + Blau
           - Orange
Channel B: + Gelb
           - Rot

Schwarz und weiß bleiben lose.

Die Frage ist nun, wo ist der Fehler (oder die Fehler).

Kann mir bitte jemand sagen was da nicht passt und warum?

Ich vermute mal das es entweder, irgendetwas Triviales ist, oder ich die 
Grundlagen nicht Verstanden habe.

Ich hoffe mal ich habe alle wichtigen Informationen mit reingepackt 
(wenn nicht bitte nicht schlagen).

von spess53 (Gast)


Lesenswert?

Hi

>Ich hoffe mal ich habe alle wichtigen Informationen mit reingepackt

Mit welcher Spannung hast du Motor/Shield betrieben?

MfG Spess

von Raganout (Gast)


Lesenswert?

Eingestellt waren 12 V, aber wegen des hohen Verbrauch und meiner 
eingestellten Begrenzung auf 3 A, hat es sich auf ca. 6 V eingependelt.

von amateur (Gast)


Lesenswert?

Mit welcher PWM-Frequenz arbeitest Du?
Wird diese zu hoch angesetzt, so wandelst Du den Motor in ein 
Heizelement um.

von spess53 (Gast)


Lesenswert?

Hi

>Eingestellt waren 12 V, aber wegen des hohen Verbrauch und meiner
>eingestellten Begrenzung auf 3 A, hat es sich auf ca. 6 V eingependelt.

Also die Angabe: 0,7A/Phase im Datenblatt einfach ignoriert. Und da 
wunderst du dich noch, das der heiß wird? Möglicherweise hast du ihn 
schon dauerhaft geschädigt.

Man kann Motor/Treiber mit höheren Spannunungen betreiben. Dazu muss man 
aber die Sense-Ausgänge auswerten und den Treiber entsprechend 
ansteuern.

MfG Spess

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


Lesenswert?

Ich kenne mich mit dem Arduino Motor-Shield nicht aus. Nach Überfliegen 
der Beschreibung scheint das Board aber keinen Stromregler in Hardware 
zu enthalten. Offenbar muss man das selbst in Hard- oder Software 
realisieren, oder eben die Versorgungsspannung der Brücke an den Motor 
anpassen...

Mit freundlichen Grüßen
Thorsten Ostermann

von spess53 (Gast)


Lesenswert?

Hi

> Nach Überfliegen
>der Beschreibung scheint das Board aber keinen Stromregler in Hardware
>zu enthalten.

Es sind die Sense-Widerstände (0R15) und ein OpAmp zur Verstärkung 
enthalten. Das wars.

MfG Spess

von Raganout (Gast)


Lesenswert?

Ok kurz mal zusammen gefasst, ich muß mir eine Strom abhängige Steuerung 
in Software zusammen basteln?

Gibt's da eigentlich einen speziellen Grund dafür, das sowas nicht über 
den Spulenwiederstand gemacht wird (wie beim DC Motor)?

von Spess53 (Gast)


Lesenswert?

Hi

>Gibt's da eigentlich einen speziellen Grund dafür, das sowas nicht über
>den Spulenwiederstand gemacht wird (wie beim DC Motor)?

Weil bei einer höheren Spannung die Stromanstiegsgeschwindigkeit in den 
Spulen größer ist. Das macht sich in höherer Leitung und höheren 
möglichen Schrittgeschwindigkeiten bemerkbar.

>Ok kurz mal zusammen gefasst, ich muß mir eine Strom abhängige Steuerung
>in Software zusammen basteln?

Ich rate dir zu einem vernünftigen Treiber. Der L298P ist ein Veteran 
der Schrittmotortreiber.

Die 0,7A schafft ein L6219 gerade noch. Leistungsfähiger sind z.B. L6205 
oder L6208. Alle mit integrierter Choppersteuerung. Es gibt aber noch 
wesentlich mehr z.B. von Trinamic.

Wenn du den L298 unbedingt weiter verwenden willst, kannst du ihm einen 
L297 spendieren. Der wird zwischen Controller und L298 geschaltet und 
übernimmt die Choppersteuerung.

MfG Spess

von Raganout (Gast)


Lesenswert?

Danke für die Hilfe. Ich werd es mal so probieren und wenn funktioniert 
werd ich mir den Rat von Spess zu Gemüt führen und mir den L298 
besorgen.

Danke

von Spess53 (Gast)


Lesenswert?

Hi

>Danke für die Hilfe. Ich werd es mal so probieren

Was willst du probieren? Software-Chopper? Übliche Chopperfrequenzen 
liegen im zweistelligen kHz-Bereich. Bei 15kSps des ADC ist das sehr eng 
zumal Arduinos nicht gerade mit schnellem Code glänzen. Außerdem sind 
Softwarelösungen in dem Bereich kritisch. Wenn der Controller hängt 
bekommt der Motor die volle Ladung ab.

>und mir den L298 besorgen.

Nimm einen L297. sonst hast du zwei L298.

MfG Spess

von Raganout (Gast)


Lesenswert?

Ich sollte keine Beiträge in der Pause schreiben.

Ich will herausfinden, wie das mit dem Software Chopper funktioniert, 
weil ich grad sowas von keinem Plan hab, wie der funktionieren soll, 
dass es schon wieder Interessant ist.

Und ich werd beide (L297 und L298) besorgen und mir mal selber eine 
Steuerung für Schrittmotoren aufbauen.

von Robert (Gast)


Lesenswert?

Hallo kann mir jemanden helfen ich hab da ein arduino Mega 2560 und ein 
sidle Motor r3 ich bringe da den Motor einfach nicht zu laufen hab da 
ein stepp mit 4 trat  bitte um Hilfe danke im voraus
 Robert

von Robert (Gast)


Lesenswert?

a noch was der Stepper mit 5 trad. Der leuift io der eine trad auf Minus

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


Lesenswert?

Ich würde dir empfehlen
- für neue Fragen einen neuen Thread zu eröffnen
- Deine Fragen in leserlichem Deutsch oder Englisch zu stellen. So 
versteht doch niemand, was eigentlich dein Problem ist.

Mit freundlichen Grüßen
Thorsten Ostermann

von spess53 (Gast)


Lesenswert?

Hi

>a noch was der Stepper mit 5 trad. Der leuift io der eine trad auf Minus

Gibt es den Satz auch irgendwo in Deutsch?

MfG Spess

von Robert (Gast)


Lesenswert?

Hallo
Arduino Motor Shield r3 auf Arduino Uno stecken  Bipolarmotor anschließe 
12v dc fertig der Zauber noch kurz ein Demo Laden  fertig. Und es geht 
nichts nur ein zucken des Motors was ist da los ?????
Und wenn du was gegen mein Deusch hast Must du ja nicht Antworten ok
 Gruß
Robert

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.