Arduino Uno Clone - CNC Shield - DRV8825 - NEMA17 - Motor ruckelt / läuft nicht sauber

Hallo zusammen,

den Motor möchte ich mit einem Arduino Uno Clone yourDroid R3 Entwicklungsboard arduino uno kompatibel | Roboter-Bausatz.de samt CNC-Shield UNO CNC Shield V3 für Arduino kompatible Boards | Roboter-Bausatz.de und DRV8825 DRV8825 Schrittmotor Treiber für CNC und 3D-Drucker | Roboter-Bausatz.de betreiben.

Bis von Ali die Linearschiene kommt, habe ich mir für den Versuchsaufbau diesen Steppermotor gekauft: https://www.omc-stepperonline.com/de/e-serie-nema-17-bipolar-59ncm-84oz-in-2a-42x48mm-4draehte-w-1m-kabel-verbinder-17he19-2004s

Diesen Code verwende ich:

#include <AccelStepper.h>

// Definiere die Pins für den Schrittmotor der Z-Achse
#define STEP_PIN_Z 4
#define DIR_PIN_Z 7

#define ENABLE_PIN 8

// Initialisiere den Schrittmotor der Z-Achse
AccelStepper stepperZ(AccelStepper::DRIVER, STEP_PIN_Z, DIR_PIN_Z);

// Definiere die Schritte pro Umdrehung für deinen spezifischen Motor und Treiber
const int STEPS_PER_REVOLUTION = 200;

void setup() {
  // Setze die Pins als Ausgänge
  pinMode(STEP_PIN_Z, OUTPUT);
  pinMode(DIR_PIN_Z, OUTPUT);
  
  pinMode(ENABLE_PIN, OUTPUT);
  digitalWrite(ENABLE_PIN, LOW); // Aktiviere den Treiber

  // Setze die maximale Geschwindigkeit und Beschleunigung der Z-Achse
  stepperZ.setMaxSpeed(1000); // Maximale Geschwindigkeit in Schritten pro Sekunde
  stepperZ.setAcceleration(500); // Beschleunigung in Schritten pro Sekunde^2
}

void loop() {
  // Bewege den Schrittmotor der Z-Achse um eine Umdrehung
  stepperZ.moveTo(STEPS_PER_REVOLUTION);
  stepperZ.runToPosition();
  delay(1000); // Warte 1 Sekunde

  // Bewege den Schrittmotor der Z-Achse um eine Umdrehung in die entgegengesetzte Richtung
  stepperZ.moveTo(-STEPS_PER_REVOLUTION);
  stepperZ.runToPosition();
  delay(1000); // Warte 1 Sekunde
}

Die Referenzspannung habe ich auf 0,7 V gestellt. Der DRV8825 soll wohl nicht mehr vertragen.

Nun ruckelt der Motor. Er reagiert, aber ruckelt.

Die Frage ist nun, woran das liegt. Ich möchte ungern den Treiber zerstören, in dem ich die Referenzspannung zu hoch einstelle.

Hier der Aufbau. Jumper sind keine gesetzt.

Zum Messen habe ich nur ein Billig-Multimeter.

Was wären denn vernünftige Schritte, um herauszufinden, wieso der Motor ruckelt. Passt der Code? Dann könnte man den schon mal ausschließen. Zieht der Motor zu viel Strom? Kann ich kurzfristig die Referenzspannung erhöhen, um zu sehen, ob sich der Motor ruckelfrei dreht? Sollte ich die Microsteps durchgehen? Falls ja, was wäre dabei zu beachten? Das 12V Netzteil mit 300W/25A sollte für den Versuchsaufbau reichen, oder? Der Motor selbst bewegt ja erstmal keine Last.

So wie ich das sehe, sind die Motorspulen nicht richtig angeschlossen. Lt. deinem Link sind jeweils schwarz/blau und grün/rot eine Spule (das passt auch zu dem häufigen 'Cross over' Anschluß am Stepper). Das passt aber nicht zum Anschluß am DRV8825. Da sind die direkt nebeneinanderliegenden Anschlüsse rechts und link jeweils für eine Spule. Die Reihenfolge am DRV8825-Anschluß wäre also schwar/blau/grün/rot. Da sind bei dir die beiden mittleren Drähte vertauscht. Du bräuchtest ein Kabel, wo auf einer Seite die beiden mittleren Drähte überkreuzt sind.

Aber auch das hat doch sicher einen Durchgangsprüfer um die Spulenanschlüsse sicher herausmessen zu können.

Du bist mein Held. Hab grad ausgepint und die Pins neu sortiert. Es funktioniert wunderbar. Vielen Dank. Auf die Idee die Spulenanschlüsse rauszumessen bin ich nicht gekommen, wird jetzt aber nicht mehr vorkommen. Danke nochmal :+1:t2:

Gern geschehen :blush:

Es gibt noch etwas wichtiges zu beachten.

Die Leitungen zu den Motoren sollte man immer nur bei abgeschalteter Versorgungspannung anklemmen / abklemmen.

Beim Abklemmen passiert das auf jeden Fall.
Beim Anklemmen wenn man auch nur einmal den Kontakt unterbricht bis dann "richtig" Kontakt da ist.

Sobald der Stromfluß durch Unterbrechung aufhört macht die Spule eine richtig hohe Spannungsspitze und diese Spannungspitze kann den Schritt-Motortreiber beschädigen.

@ StefanL38 Danke für den Hinweis.

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