Forum: Mikrocontroller und Digitale Elektronik Schrittmotoren in Reihe schalten und mit Arduino ansteuern mit TB6600?


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 Jürgen (Gast)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Hallo,

ich möchte auch Schrittmotoren in Reihe schalten.
Leider laufen sie aktuell nur in eine Richtung... habe irgendwo einen 
gravierenden Fehler

ich habe hier einen TB6600 mit 5A
gesteuert wird alles über einen Arduino Uno

Der TB6600 erhält 24V
der Arduino 9V

Beim TB6600 habe ich folgende Einstellung an den Fip-Schaltern

0,6A
und
1/8 Schritte

Der Arduino Code ist wie folgt
1
#include <AccelStepper.h>
2
3
// defines pins numbers
4
#define stepPin 5 
5
#define dirPin  4 
6
const int enPin = 6; // wird nicht genutzt, ist aber angeschlossen 
7
#define motorInterfaceType 1
8
9
// das sind die Schalter die ich verwenden möchte um den Motor Links oder rechts drehen zu lassen bzw. zu stoppen... wird auch noch nicht genutzt
10
11
const int UpPin = 1; // the number of the pushbutton pin
12
const int StopPin = 2; // the number of the pushbutton pin
13
const int DownPin = 3; // the number of the pushbutton pin
14
15
// Create a new instance of the AccelStepper class:
16
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);
17
18
19
int UpState = 0; // variable for reading the pushbutton status
20
int StopState = 0; // variable for reading the pushbutton status
21
int DownState = 0; // variable for reading the pushbutton status
22
23
void setup() {
24
  stepper.setMaxSpeed(1000);
25
  stepper.setAcceleration(500);
26
  
27
  // Sets the two pins as Outputs
28
  pinMode(stepPin,OUTPUT); 
29
  pinMode(dirPin,OUTPUT);
30
31
  pinMode(enPin,OUTPUT);
32
  digitalWrite(enPin,LOW);
33
34
  pinMode(UpPin, INPUT);
35
  pinMode(StopPin, INPUT);
36
  pinMode(DownPin, INPUT);
37
  
38
}
39
40
41
42
void loop() {
43
   UpState = digitalRead(UpPin);
44
  StopState = digitalRead(StopPin);
45
  DownState = digitalRead(DownPin);
46
  
47
  // Set the target position:
48
  stepper.moveTo(8000);
49
  // Run to target position with set speed and acceleration/deceleration:
50
  stepper.runToPosition();
51
  delay(1000);
52
  // Move back to zero:
53
  stepper.moveTo(0);
54
  stepper.runToPosition();
55
  delay(1000);
56
  
57
}

Sieht jemand das Problem... habe ich die Verkabelung falsch?

ich habe die Motooren 2x12V in Reihe geschaltet deshalb bekommen sie 
auch 24V über den Treiber


Grüße Jürgen

von Gerhard O. (gerhard_)


Bewertung
0 lesenswert
nicht lesenswert
Dann werde ich mich als erster aufs Glatteis wagen. Vorausgesetzt, Dein 
Program funktioniert, würde ich hauptsächlich Motorphysik verdächtigen. 
Da bei Deinem TBB600 der Motorstrom gemessen und kontrolliert wird, 
vermute ich, daß sich durch die Induktivität des 2. Motors die 
Magnetfelder falsch aufbauen und deswegen Schrittmotor Fehlfunktion 
einstellt weil ja die magnetischen Felder zur Rotorbewegung genau ihre 
vorgeschriebene Unterschiede zwischen den Wicklungen einhalten müssen. 
Der zweite Motor verändert die Verhältnisse ungünstig.

Aber. Da der TBB6000 den Strom der Windungen reguliert, würde ich 
vorschlagen nur einen Motor anzuschliessen. Die Spannungsangabe beim 
Motor kannst Du ignorieren. Es kommt auf die korrekte Stromeinstellung 
an. Solange der TBB6000 richtig eingestellt wurde, kann nichts 
passieren. Wenn ein einzelner Motor sich richtig verhält, dann beweist 
das, daß magnetische Fehlfunktion die Ursache Deines Problems ist. 
Ansonsten würde ich vorschlagen, zwei Motortreiber parallel anzusteuern 
und die Motoren wie vorgesehen, einzeln zu betreiben. Magnetisch ist die 
Serienschaltung zweier Motoren nicht elektrisch/physikalisch 
"schmutzig".

Aber vielleicht wissen mehr Erfahrene hier mehr. Ist halt meine Meinung.

: Bearbeitet durch User
von Andreas R. (andir)


Bewertung
0 lesenswert
nicht lesenswert
Jürgen schrieb:
> Sieht jemand das Problem... habe ich die Verkabelung falsch?

Schon mal mit nur einem Motor versucht?

Zumindest bei mir funktioniert dein loop mit einem Motor.

von Magnus M. (magnetus) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Laut deines angehängten Verdrahtungsplanes hast du die "A" Wicklungen 
parallel und die "B" Wicklungen in Reihe geschaltet.

Bei Parallelschaltung sollte der Strom auf 1,2A eingestellt werden.

von Andreas R. (andir)


Bewertung
0 lesenswert
nicht lesenswert
Hmm, du hast lt. deinem Schaltplan halb Serien-, halb Parallel-Schaltung 
gebaut.

Das wird so nicht funktionieren...

von Gerhard O. (gerhard_)


Bewertung
0 lesenswert
nicht lesenswert
Habe ich auch nicht bemerkt - Peinlich!

von Juergen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo
Danke für die Antworten

Mmhh... Muss es zuhause umbauen...wenn ich einen Motor zum laufen bringe 
(links und rechts Rum) Muss ich dann um 2 Motoren zu betreiben diese 
parallel schalten oder wurde auch seriell funktionieren wenn korrekt 
angeschlossen.


?
Grüsse Jürgen

von Helmut -. (dc3yc)


Bewertung
0 lesenswert
nicht lesenswert
Nein, um zwei Motoren zum Laufen zu bringen, brauchst du zwei 
Ansteuerschaltungen. Du kannst zwar die Ausgänge DIR und PUL an beide 
Endstufen parallel anschliessen, aber die Motortreiber können jeweils 
nur einen Motor ansteuern.

von Klaus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Helmut -. schrieb:
> Nein, um zwei Motoren zum Laufen zu bringen, brauchst du zwei
> Ansteuerschaltungen. Du kannst zwar die Ausgänge DIR und PUL an beide
> Endstufen parallel anschliessen, aber die Motortreiber können jeweils
> nur einen Motor ansteuern.

Und für die 12V 0,8A tuns diese Teile

Ebay-Artikel Nr. 392743953062

Da bekommst du 5 Stück für knapp 8€. Da kannst du beim experimentieren 
auch mal einen abbrennen.

MfG Klaus

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
...
ich hab das noch nicht ganz begriffen. (mit dem seriell schon aber 
parallel macht kopfzerbrechen)

wenn ich beide Motoren parallel an  einen Treiber hänge so dachte ich 
das die Motoren es gar nicht merken und der Treiber auch nicht

ich will ja nicht jeden Motor einzeln steuern... ich möchte nur das 
diese einigermaßen parallel laufen also gleichmäßig.

oder geht das rein gar nicht?

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
wenn dem so ist... dann habe ich aber den TB6600 umsonst gekauft oder?
den brauch ich dann nicht mehr.

ich wollte/müsste eigentlich das Teil heute zum laufen bekommen... mist

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
in einem youtube video hatte ich gesehen das jemand 2 schrittmotoren an 
einen TB6600 hängte und diese parallel angeschlossen hat.. nur hat der 
den einen rechts und den anderen links rum laufen lassen..

https://www.youtube.com/watch?v=CkmShoIe0rs

aus diesem Grund dachte ich das müsste ja auch funktionieren wenn beide 
dann rechts rum laufen sollen...

von Magnus M. (magnetus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Jürgen schrieb:
> wenn ich beide Motoren parallel an  einen Treiber hänge so dachte ich
> das die Motoren es gar nicht merken und der Treiber auch nicht

Bei Parallelschaltung teilen sich die beiden Schrittmotoren den Strom 
des Treibers - jeder Motor bekommt nur noch den halben Strom (in Deinem 
Fall sind das dann nur noch 0,3A).

> ich will ja nicht jeden Motor einzeln steuern... ich möchte nur das
> diese einigermaßen parallel laufen also gleichmäßig.
>
> oder geht das rein gar nicht?

Die Lösung mit Parallel- bzw. Reihenschaltung ist in der Tat suboptimal. 
Es sollte besser für jeden Schrittmotor ein eigener Treiber eingesetzt 
werden. Die Steuereingänge der Treiber musst Du dann parallel schalten.

von Andreas R. (andir)


Bewertung
0 lesenswert
nicht lesenswert
Ich bin nicht der Motorspezialist.
Das Thema Serien oder Parallelschaltung kenne ich aus der 3D-Drucker 
Welt.
Dort werden die Z-Motoren öfters in Serie geschaltet.

Bei Parallelschaltung (keine Ahnung ob es funktioniert) musst du 
beachten dass jeder Motor nur mehr den halben Strom abbekommt.

Besser wäre es sicher mit 2 getrennten Treibern.

Aber probiers doch einfach aus bevor du verzweifelst die Klippe 
runterspringst ;)

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
wenn ich sie parallel schalte dreht sich gar nix mehr..  grrr

wie soll dann die serielle Schaltung funktionieren?
die hatte ich ja schon .. hatte aber 2 drähte vom Motor seriell und die 
anderen parallel... ok das ist natürlich mist.. kann ich dann die 
anderen beiden auch seriell schalten

bzw. muss ich

TB6600 A+ ==> Motor1-A+
Motor1 A- ===> Motor2 A+
Motor2 A- ===> TB6600 A-

TB6600 B+ ===> Motor1 B+
Motor1 B- ===> Motor2 B+
Motor2 B- ===> TB6600 B-

?

von Magnus M. (magnetus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Jürgen schrieb:
> wenn ich sie parallel schalte dreht sich gar nix mehr..  grrr

Magnus M. schrieb:
> Bei Parallelschaltung sollte der Strom auf 1,2A eingestellt werden.

Jürgen schrieb:
> wie soll dann die serielle Schaltung funktionieren?

> TB6600 A+ ==> Motor1-A+
> Motor1 A- ===> Motor2 A+
> Motor2 A- ===> TB6600 A-
>
> TB6600 B+ ===> Motor1 B+
> Motor1 B- ===> Motor2 B+
> Motor2 B- ===> TB6600 B-
>
> ?

Das sieht erst mal "vernünftig" aus. Probiere es und berichte vom 
Ergebnis.

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
habe ich jetzt alles zerstört?

ich bin jetzt auf Singlebetrieb gegangen und kein Motor dreht sich mehr

Ich habe also nur einen Motor angeschlossen
wenn ich am Motor drehe (mit der Hand) so dreht er sich sehr schwer...) 
wenn kein Strom drauf ist, ist er leichtgängig...

Das ist nun bei beiden Motoren der Fall... sind nun die Motoren oder der 
TB6600 kaputt?

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Magnus M. schrieb:
> Jürgen schrieb:
>> wenn ich sie parallel schalte dreht sich gar nix mehr..  grrr
>
> Magnus M. schrieb:
>> Bei Parallelschaltung sollte der Strom auf 1,2A eingestellt werden.

habe ich ja eingestellt...
es dreht sich aber keiner mehr

>
> Jürgen schrieb:
>> wie soll dann die serielle Schaltung funktionieren?
>
>> TB6600 A+ ==> Motor1-A+
>> Motor1 A- ===> Motor2 A+
>> Motor2 A- ===> TB6600 A-
>>
>> TB6600 B+ ===> Motor1 B+
>> Motor1 B- ===> Motor2 B+
>> Motor2 B- ===> TB6600 B-
>>
>> ?
>
> Das sieht erst mal "vernünftig" aus. Probiere es und berichte vom
> Ergebnis.
 Bei dem seriellen Betrieb
hatte ich 0,6A eingestellt
beim Parallel Betrieb 1,2A
Bei beiden Schaltungen lies ich die Spannung beim TB6600 auf 24V...

da hier gar nichts mehr ging bin ich zurück zum reinen Singlebetrieb

also 0,6A und nur ein Motor angeschl...
der Motor dreht sich nicht... wenn ich ihn via hand bewegen möchte dann 
geht er sehr schwer... ist alles ausgeschaltet geht der Motor mit der 
Hand gedreht leichtgängig.

irgend was habe ich wohl zerschossen

aber was?

von Magnus M. (magnetus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
1) Überprüfe doch mal die Verkabelung auf der Ansteuerungsseite deines 
TB6600. Womöglich hat sich da was gelockert?

2)Bist du dir sicher dass der TB6600 überhaupt noch (korrekt) 
angesteuert wird?

von Magnus M. (magnetus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

Du hast doch nicht etwa die Motoren umgekabelt während der TB6600 noch 
mit Spannung versorgt wurde?

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Magnus M. schrieb:
> Nachtrag:
>
> Du hast doch nicht etwa die Motoren umgekabelt während der TB6600 noch
> mit Spannung versorgt wurde?

nein das habe ich natürlich nicht

muss mal sehn ob sich da was gelockert hat...
die vom TB6600 abgehenden Kabel waren zumindest korrekt und an der 
Arduino-Seite hatte ich nichts gemacht...
Vielleicht hat sich dort was gelockert

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Jürgen schrieb:
> Magnus M. schrieb:
>> Nachtrag:
>>
>> Du hast doch nicht etwa die Motoren umgekabelt während der TB6600 noch
>> mit Spannung versorgt wurde?
>

ok
im Singlebetrieb geht der eine Motor (anderen habe ich noch nicht 
getestet)
(Ich habe nur den Sketch neu hochgeladen) dann ging es


Was aber auch bei dem einen motor nicht geht ist das er zurück fährt... 
er läuft also nur in eine Richtung (siehe mein Sketch oben)

Am Motor habe ich folgende Farben
die wie folgt angeschlossen sind

Motor-Rot===> TB6600 A+
Motor-Blau===> TB6600 A-
Motor-Grün ===> TB6600 B+
Motor-Schwarz===> TB6600 B-

Die sind auch so in der Reihenfolge am Motor via Stecker dran

Rot, Blau, Grün, Schwarz

habe ich da was falsch gemacht?

von Magnus M. (magnetus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Jürgen schrieb:
> im Singlebetrieb geht der eine Motor (anderen habe ich noch nicht
> getestet)

Und warum testest du den zweiten Motor nicht auf die selbe Weise?

von Magnus M. (magnetus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Noch eine Frage:

Warum hast Du die ENABLE-Eingänge (ENA+/ENA-) nicht angeschlossen?

von Jürgen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Magnus M. schrieb:
> Warum hast Du die ENABLE-Eingänge (ENA+/ENA-) nicht angeschlossen?

die habe ich jetzt angeschlossen im sketch aber auf Low gesetzt (ich 
gehe dabei nur nach Beispiele aus dem Netz)

Ok.. jetzt läuft zumindest der eine Motor korrekt Vor und zurück
es lag an den Kabeln... sorry... ich sah den Wald vor lauter...


Frage.
aktuell läuft er wie im sketch 5000 steps vor und dann zurück auf 0

Ich möchte hier eine Hebeanlage bauen die via Schalter rauf und runter 
fahren soll... ich habe dazu 3 Schalter eingebaut.
Auf, Ab und stop

bis jetzt habe ich nur Beispiele mit Steps gefunden wo diese fix 
definiert sind
weiss jemand wie ich den sketch umschreiben muss das der Motor ständig 
vor oder zurück fährt... wie ich die schalter dann im Programm einbauen 
muss weiss ich...

von Loriot (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>>weiss jemand wie ich den sketch umschreiben muss...

nimm den:
Loriot und der Sketch "Die Nudel"...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.