NEMA17 mit DRV8825 - Motor tut gar nichts

Hallo, ich habe einen Uno R3 und möchte einen Schrittmotor steuern.
Der Motor ist ein 17HE15-1504S ( https://www.omc-stepperonline.com/de/e-serie-nema-17-bipolar-42ncm-59-49oz-in-1-5a-42x42x38mm-4-draehte-w-1m-kabel-verbinder-17he15-1504s )
und der Treiber ist ein 8825 ( DRV8825 Schrittmotor-Treiber-Modul mit Kühlkörper, z.B. für RAMPS 1.4, )

Wenn ich die Datenblätter richtig verstehe soll der Motor max. 1.5A pro Phase aushalten und über das kleine Dreh-Poti soll ich laut Formel MAX/2 = 0.75V als maximalen Strom einstellen. Mittels Schraubendreher und verbundenem + gegen Masse der Motor-Eingangsspannung gemessen ( Poti gegen GDN neben VMOT) passt das.

Jetzt habe ich mittels AccelStepper-Bibliothek ein Test-Sketch auf den UNO geschoben und es passiert - nichts! AccelStepper deswegen weil ich später weitere Motoren gleichzeitig laufen lassen möchte und die Stepper.h die zwar steuern kann aber nur nacheinander und nicht synchron. ( Nein, ich möchte keine Fräse, Laser, 3D Drucker oder ähnliches bauen. :slight_smile: )

Mein Netzteil ist gibt 12V 1.5A raus.

Verkabelt ist es wie folgt:
VMOT an 12V+ vom Netzteil
GND ( Motor ) an Masse / Netzteil
A1+A2+B1+B2 jeweils an eine Spule ( gemessen über Widerstand damit ich zwei Kabel einer Spule identifizieren konnte.)
FLT - 5V vom Arduino
GND - GND vom Arduino
DIR - an Pin 2
STEP - an Pin 3
Sleep und Reset jeweils mit 5V vom Arduino

Wenn ich dem ganzen Glauben schenken darf muss ENABLE ja nicht mit 5V versorgt werden da der automatisch über einen Widerstand gesetzt wird.

Warum zur Hölle macht der Motor rein gar nichts. Kein Summen, kein Drehen, kein Geräusch ... nichts! Habe schon eine andere Polung von den Spulen A + B versucht - ohne Erfolg.

Kann Jemand weiter helfen?

VG und Danke im Voraus, Steffe

FLT (=nFAULT) ist ein Ausgang, den solltest Du einfach offen lassen.

Kannst Du den Motor per Hand frei drehen, oder blockiert der wenn alle Spannungen eingeschaltet sind.
Ein Schaltplan ist besser als eine verbale Beschreibung.
Zeig mal deinen Sketch ( Code Tags nicht vergessen :wink: ).

Hallo @MicroBahner,

danke für deine Antwort. Den Motor kann ich drehen, ja. Kein größerer Widerstand spürbar ggü. einem nicht angeschlossenen Motor.

Bilder angehängt, der Sketch ist von dieser Seite:
https://starthardware.org/stepper-motor-mit-dem-drv8825-steuern/

#include <AccelStepper.h>
#define dirPin 2
#define stepPin 3
#define motorInterfaceType 1
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);
void setup() {  
  stepper.setMaxSpeed(2000);
  stepper.setAcceleration(200);
  stepper.moveTo(5000);
}
void loop() {
    if (stepper.distanceToGo() == 0)
      stepper.moveTo(-stepper.currentPosition());
    stepper.run();
}


Viele Grüße, Steffe82

Eins kann ich dir schon mal sagen.
Der Elko muss ein Low ESR Elko sein.
Und direkt am Treiber sitzen und nicht 1/2 Meter entfernt.
Noch nicht mal 2cm entfernt.

Ich nehme mal an mit Elko ist ein Elektrolyt-Kondensator gemeint? Der den ich da drin stecken habe ist ein 50V 100µF. Die Frage die sich mir jetzt stellt ist: Warum muss der direkt da dran sitzen? Auf der oben genannten Seite sitzt der auch nicht direkt neben dem Treiber?!

Ich würde mal (grüner Kreis) GND vom Arduino mit GND vom Netzteil verbinden.

Ja!

Ist das ein Low ESR?

Damit seine Low ESR Eigenschaft überhaupt ihre Wirkung entfalten kann.
Denn die ganzen Widerstände auf dem Weg verhindern das wirkungsvoll

Wenn andere über die Klippe springen, springst du mit, egal was dann passiert!
Oder anders: Da kannste mal sehen wie bescheiden so manche Tutorials sind.

Alternativ: (denn du musst ja nicht mir glauben)
Suche nach "CNC Shield" oder "Arduino Stepper Board". Alle die den DRV8825 können, haben den Kondensator direkt dran. Ohne jede Ausnahme. Und das mit guten Grund.

Dann liegt dein Problem erstmal in der Hardware - denn dein Motor wird gar nicht bestromt. Da kann Step und Dir auch nichts bewirken. Das hat auch noch nichts mit dem Kondensator zu tun. Da steckt noch ein grundsätzlicherer Wurm drin.
Ein Schaltbild wäre auch erstmal besser als ein eher unübersichtliches Foto.

Die beiden Gnd Anschlüsse auf dem DRV8825 Board sind normalerweise schon verbunden.
Aber ist da nicht Gnd und 5V vom Arduino falsch angeschlossen? Gnd sollte am untersten Pin sein, und die 5V gehören da gar nicht hin.Wenn ich das richtig erkenne, sind jetzt die 5V vom Arduino mit dem Gnd des DRV8825 verbunden. Keine gute Idee ... wenn @steff82 Pech hat, sind die Step/Dir Pins an Arduino und DRV8825 hinüber.

Die Polung der 5 V scheint mir schon richtig zu sein:
grafik

Ich stimme Dir zu daß die 5V nicht auf !Fault kommen. Also weg damit.
Zur Sicherheit sollte man !Enable mal auf Masse legen.

Andere Frage an den TO
Hast Du die Anschlüsse des Motors gewechselt während der Treiber mit 12V versorgt war?

Eine vertrauenswürdige Anleitung:

Grüße Uwe

laut der Dokumentation von Pololu

Geht der !FALUT Anschluß des DRV8825 nicht direkt an die Pins sondern da ist ein Widerstand dazwischen und ein weiterer Widerstand vom Pin auf !SLEEP.
Darum ist +5V auf FAULT Pin sinnvoll und notwendig.
0J4223.300

Durch diese Schaltung wird der DRV8825 bei einem Fehler (Überstrom, Überhitzung) abgeschaltet.

Laut Datenblatt

Seite 17 letzter Absatz des Kapitels 8.3.6
Note that nRESET and nENABL have internal pulldown resistors of approximately 100 kΩ. The nSLEEP pin has an internal pulldown resistor of 1 MΩ. nSLEEP and nRESET signals need to be driven to logic high for device operation.

Auch wenn nirgens vorgeschlagen würd ich mal !ENABLE auf Masse schalten.
Und wie vorgeschlagen !SLEEP mit !RESET verbinden oder beide auf +5V.
wie in

0J4232.600

bzw; oder auch:

0J4233.600

Grüße Uwe

Auf der UNO Seite schon. Das Problem sehe ich auf der DRV8825 Seite:

Da stecken die 5V im letzten Pin, und das ist der Gnd von DRV8825.

Die hat er ja beide mit 5V verbunden - was aber durch den Fehler am Gnd für den DRV8825 jetzt Gnd ist, und damit ist alles abgeschaltet.
Nur die Step und Dir -Eingänge liegen jetzt an einem UNO-Pin der im Ruhezustand auf UNO Gnd liegt, und das bedeutet für den DRV8825 jetzt eine negative Spannung. Das bekommt weder dem UNO noch dem DRV8825.

Das 2. Bildchen ist einfach eine Variante, die mit dem A4988 kompatibel ist. Wenn man so verdrahtet, funktioniert es mit beiden Varianten. Das 1. Bildchen ist die 'native' DRV8825 Variante.

Wobei man dann nFault und nSleep offen lassen müsste.

Hallo und vielen Dank an Alle die sich bisher dem Thema angenommen haben. Nach zahlreichen versuchen und verschiedenen Messungen hat sich das Problem wie folgt gelöst.

Wenn man am Motor die 6 Pins gegeneinander misst fällt auf, das 1 und 3 sowie 4 und 6 zu je einer Spule gehören. Wenn man sich nun die Pins am Treiber ansieht fällt auf, dass die anders angeordnet sind als die 4 Kabel am Motorkabel. Ich habe also den Dupont-Stecker an den beiden mittleren Kontakten geöffnet und die beiden Kabel vertauscht. Angeschlossen und getestet mit Hilfe der AccelStepper-Library. Es klappt. Ich habe auch schon meine restlichen drei Motoren angeschlossen und konnte alle vier unabhängig voneinander ansteuern. Damit es übersichtlicher ist habe ich mir noch ein CNC Shield V3 besorgt was 4 Stepper einzeln ansteuern kann wenn man die Jumper entsprechen setzt.

Vielen Dank nochmals an alle die versucht haben zu helfen.

Liebe Grüße, Steff82

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.