Es ist zwar nicht so lange her, aber ich möchte meinen Post über den Easydriver nicht aus der Tiefe holen. Jetzt geht's ja auch um den DRV8825, welcher mir - hier - empfohlen wurde.
Die Treiber sind heute angekommen, ich hab sie mir größer vorgestellt:
Frage: Schließe ich den genau so an, wie den Easydriver? Ich habe bisher noch keine vernünftige deutsche Anleitung gefunden.
GND - GND am Arduino
FLT - 5V am Arduino
2A - Schrittmotor Spule A
1A - Schrittmotor Spule A
1B - Schrittmotor Spule B
2B - Schrittmotor Spule B
GND - Minuspol am Netzteil
VMOT - Pluspol am Netzteil
Die GNDs von Arduino und Netzteil sind dann ja verbunden, das habe ich auf einem Bild gesehen. Aber ist das möglich? Und würde der restliche Anschluss so passen?
RST und SLEEP müssen auf High. Diese Pins haben interne Pulldowns, so dass der Chip erst mal deaktiviert ist.
M0 bis M2 können unbelegt sein weil auch da Pulldowns vorhanden sind.
FLT - 5V am Arduino
FLT = Fault. Das ist ein Ausgang! Der einzige Grund weshalb man da High anschließen kann ist dass der Pin einen 1,5k Schutzwiderstand hat und über 10k mit Sleep verbunden ist. Das geht also, aber mach die 5V besser an Sleep. Dann ist klar was gemeint ist.
Siehe:
The resolution (step size) selector inputs (MODE0, MODE1, and MODE2) enable selection from the six step resolutions according to the table below. All three selector inputs have internal 100kΩ pull-down resistors, so leaving these three microstep selection pins disconnected results in full-step mode
The chip has three different inputs for controlling its power states: RESET, SLEEP, and ENBL. For details about these power states, see the datasheet. Please note that the driver pulls the SLEEP pin low through an internal 1MΩ pull-down resistor, and it pulls the RESET and ENBL pins low through internal 100kΩ pull-down resistors. These default RESET and SLEEP states are ones that prevent the driver from operating; both of these pins must be high to enable the driver (they can be connected directly to a logic “high” voltage between 2.2 and 5.25 V, or they can be dynamically controlled via connections to digital outputs of an MCU). The default state of the ENBL pin is to enable the driver, so this pin can be left disconnected.
Fototobi94:
Das heißt, wenn die M1-M3 unbelegt sind, wird der Schrittmotor im Normalbetrieb (ohne Microstepping) betrieben ...
Ja.
Fototobi94:
... mit 200 Steps/rev?
Nein, das ist ein Wert Deines Motors, den der Treiber nicht kennt, den aber Dein Sketch mit Programmbibliothek kennen sollte, damit Du beispielsweise gezielt 90°=50 Schritte bewegen kannst. Der Sketch sagt mit STP, mache einen Schritt. Wieviel Grad der Motor dabei dreht, weiß der Treiber nicht, muß er auch nicht.
Ich hab schon wieder Mist gebaut. Ich bin einfach zu dämlich dafür.
Ich habe das Board genau so wie oben beschrieben angeschlossen. Die beiden GNDs noch über eine Brücke verbunden. Ich habe die 12V Spannung ganz zum Schluss angelegt, dann hat's kurz gefunkt und rauch vom DRV8825 stieg auf.
Der Fehler muss doch dann an der Spannungsquelle liegen, oder? Ist der Strom zu hoch?
Ich benutze momentan dieses Netzteil, welches ich auf 12V gestellt und mit Klinkenstecker und Klinkenbuchse an das Breadboard angesteckt habe.
Die Klinkenbuchse, ich messe an den Kontakten knapp 12V:
Ich bin etwas ratlos. Bei dem von Dir bereits produzierten Elektronikschrott solltest Du gedanklich einen Schritt zurücktreten und ganz grundsätzlich beginnen. Also den Widerstand der Wicklungen des Motors (20 Ohm) messen, auch gegeneinander, wo man unendlich erwartet. Ist die Spannung des Netzteils richtig gepolt. Was macht das Netzteil bei Belastung (Widerstand). Welche Spannungen gibt der Arduino ab?
Ich wünsche Dir dabei den erlösenden Aha-Effekt! Es ist irgendwas, an das Du nicht denkst.
Ergänzung: Wechselspannungsanteil des Netzteils; Kabelbruch, alle Kabel durchpiepsen.
Kann es sein dass du bei der Steckverbindung die 12V nach außen gelegt hast wo eigentlich Masse hingehört? Das sieht nach einem dieser Adapter-Stecker aus den man herumdrehen kann um die Polung zu ändern. Schau da mal genau drauf. Da sind normal eine Markierung (z.B. ein Pfeil) die zeigt wie herum + und - sind.
Wicklungen Motor A: 6 Ohm
Wicklungen Motor B: 6 Ohm
Wicklungen gegeneinander: unendlich
Spannung des Netzteils: 12.18V
Spannung am Arduino (USB Versorgung) zwischen 5V und GND: 4.93V
Wo genau soll ich alle Leitungen durchpiepsen? An Netzteil und Motor kann ein Kabelbruch ja ausgeschlossen werden.
Der Stecker ist am Universalnetzteil wie folgt angeschlossen:
Das Piktogramm am Stecker zeigt, dass die 12V auf dem Ring liegen und GND auf der Spitze. Die an die Buchse (ist eigentlich 3 polig) habe ich zwei Drähte angelötet. Der Abnehmer für die Spitze befindet sich unten links, der für den Ring oben rechts. So habe ich die Buchse auch auf dem Breadboard stecken (sieht man in diesem Bild aus dem vorigen Post noch, auch dass das schwarze Kabel auch wirklich auf GND geht)
Ich zerbreche mir wirklich den Kopf, ich habe überhaupt keine Ahnung, was der Fehler sein könnte. Aber ich, wenn ich es weiß, AHA schreien werde.
Fototobi94:
Wo genau soll ich alle leitungen durchpiepsen?
Den Widerstand jedes verwendeten Kabels messen, mit Ohmmeter oder Durchgangsprüfer (Piepser).
Der letzte von mir produzierte Rauch hatte einen Kabelbruch in der Masseleitung als Ursache. Daher habe ich dann alle Breadboard-Kabel einer Qualitätskontrolle unterzogen.
12V /6 Ohm = 2 A Das ist deutlich verschieden von den 650 mA.
Habs nochmal nachgemessen. Mit meiner dritten Hand hab ich dann ein Bild gemacht. Wenn die Polung verkehrtherum ist, würden da doch -12V stehen, oder?
Die Leitungen, die ich gestern benutzt habe, habe ich eben auf Durchgang überprüft. Alle ok.
Ich wollte den Widerstand der Motorwicklungen nochmal messen. Dabei ist mir aufgefallen, dass ich dort evt. DOCH Kabelbrüche haben könnte. Beim hin- und herbewegen der Leitungen stieg der Widerstand auf bis zu 190 Ohm und war auch kurzzeitig unendlich.
Brennt der Treiber durch, wenn der Motor vom Treiber getrennt wird?
Warning: Connecting or disconnecting a stepper motor while the driver is powered can destroy the driver. (More generally, rewiring anything while it is powered is asking for trouble.)
Selbst mußte ich damit noch keine Erfahrungen machen und irgendwie paßt es auch nicht zu Deiner Fehlerbeschreibung.
Fototobi94:
Was würde dies jetzt bedeuten? Dass der Motor 2A braucht? Oder dass dort etwas nicht stimmt?
Das weiß ich auch nicht.
Zum Vergleich und zur Bestätigung, daß meine Überlegungen richtig sind: Ich habe einen Motor 12 V / 350 mA (=34 Ohm) und messe 32 Ohm, damit bin ich zufrieden.
Auf welchen maximalen Strom hast Du den Treiber eingestellt?
Fototobi94:
Du meinst dieses kleine Poti? Daran habe ich noch nichts verstellt. Den Strom stellt man doch erst im Betrieb ein, oder nicht?
Nö, vorher, bei Dir auf 325 mV. Current Limit = VREF × 2
Ich habe mir dazu aufgeschrieben:
Die Spannungsversorgung des Motors VMOT erzeugt im IC die Spannung V3P3OUT für die Referenzspannung VREF der Strombegrenzung. Die Referenzspannung VREF kann also nur eingestellt werden, wenn eine Spannung an VMOT anliegt! Außerdem muß SLEEP auf 5 V.