Einer von vier Steppern dreht nicht

Hallo,

ich habe hier ein Problem, bei dem ich echt nicht weiterkommen.

Ich habe ein CNC Shield V3 und von StepperOnline vier 17HE19 Motoren.
Zusammenbau funktioniert auch soweit ganz gut.

Mein Problem ist, dass mit folgendem Beispielcode nur die Motoren Y,Z & A drehen.
X dreht nicht, und ist nicht von Hand drehbar. Ohne Strom allerdings schon.

Ich habe bereits untereinander alles getauscht (Kabel, Stepperdriver, Motor). Es bleibt immer das Gleiche. An jeden der drei anderen Anschlüsse funktioniert alles.

Ich bin jetzt mit meinem beschränken Latein am Ende.

Arduni Uno V3, CNC Shield V3.

#include <AccelStepper.h>
#include <MultiStepper.h>

#define MOTOR_X_ENABLE_PIN 8
#define MOTOR_X_STEP_PIN 2
#define MOTOR_X_DIR_PIN 5

#define MOTOR_Y_ENABLE_PIN 8
#define MOTOR_Y_STEP_PIN 3
#define MOTOR_Y_DIR_PIN 6

#define MOTOR_Z_ENABLE_PIN 8
#define MOTOR_Z_STEP_PIN 4
#define MOTOR_Z_DIR_PIN 7

#define MOTOR_A_ENABLE_PIN 8
#define MOTOR_A_STEP_PIN 12
#define MOTOR_A_DIR_PIN 13

AccelStepper motorX(AccelStepper::FULL4WIRE, MOTOR_X_STEP_PIN, MOTOR_X_DIR_PIN);
AccelStepper motorY(AccelStepper::FULL4WIRE, MOTOR_Y_STEP_PIN, MOTOR_Y_DIR_PIN);
AccelStepper motorZ(AccelStepper::FULL4WIRE, MOTOR_Z_STEP_PIN, MOTOR_Z_DIR_PIN);
AccelStepper motorA(AccelStepper::FULL4WIRE, MOTOR_A_STEP_PIN, MOTOR_A_DIR_PIN);

void setup() {

	pinMode(MOTOR_X_ENABLE_PIN, OUTPUT);
	pinMode(MOTOR_Y_ENABLE_PIN, OUTPUT);
	pinMode(MOTOR_Z_ENABLE_PIN, OUTPUT);
	pinMode(MOTOR_A_ENABLE_PIN, OUTPUT);

       motorX.setEnablePin(MOTOR_X_ENABLE_PIN);
	motorX.setPinsInverted(false, false, true);
	motorX.setAcceleration(1000);
	motorX.setMaxSpeed(2047);
	motorX.setSpeed(1000);
	motorX.enableOutputs();

	motorY.setEnablePin(MOTOR_Y_ENABLE_PIN);
	motorY.setPinsInverted(false, false, true);
	motorY.setAcceleration(1000);
	motorY.setMaxSpeed(2047);
	motorY.setSpeed(1000);
	motorY.enableOutputs();

	motorZ.setEnablePin(MOTOR_Z_ENABLE_PIN);
	motorZ.setPinsInverted(false, false, true);
	motorZ.setAcceleration(1000);
	motorZ.setMaxSpeed(2047);
	motorZ.setSpeed(1000);
	motorZ.enableOutputs();

	motorA.setEnablePin(MOTOR_A_ENABLE_PIN);
	motorA.setPinsInverted(false, false, true);
	motorA.setAcceleration(1000);
	motorA.setMaxSpeed(2047);
	motorA.setSpeed(1000);
	motorA.enableOutputs();


}

void loop() {
	motorX.moveTo(3000);
	motorX.run();
	motorY.moveTo(3000);
	motorY.run();
	motorZ.move(3000);
	motorZ.run();
	motorA.move(3000);
	motorA.run();
}

Interessant zu wissen ob der "faule" Motor immer am selben Port hängt.

Und poste noch ein Link von den Shield.

Das würde die Suche gewaltig eingrenzen.

Gruß

Pucki

Wenn Du das Posting gelesen hättest, statt überflüssige Fragen zu stellen, wäre die Suche auch einfacher.

Ich weiß nicht was du meinst.

Gruß

Pucki

Hi

Geschrieben hatte ich ja, dass X nicht dreht.

Der Motor funktioniert einwandfrei an Y,Z oder A.
Ich hatte ja geschrieben, dass ich alles untereinander ausgetauscht hatte.
Aber egal was ich an X anschließe, der Motor blockiert.

Das Shield ist dieses hier:

Als Treiber habe ich A4988 drauf.

Enable Jumper neben dem Reset Knopf ist gesteckt sowie auch alle drei Jumper für die Schritte bei jedem der vier Ausgänge.

War vielleicht nicht ganz klar wodrauf in hinaus will , Sorry @to

Die Frage ist, das ich vermute das es an den Motor-Port/Anschluss liegt an den X angeschlossen ist. Oder anders ausgedrückt. Läuft Irgendwas an PORT X auf den Shield.

Gruß

Pucki

Hast Du X auch mal auf andere Pins gelegt? Oder sind die fest auf dem Shield zugeordnet?

Du könntest ein Testprogramm schreiben um festzustellen, ob sich die X Pins Hi und Lo setzen lassen.

Und sind die Jumper richtig gesetzt. Die für den Schritt.

Gruß

Pucki

Das ist falsch für deine Anwendung. Du musst
AccelStepper::DRIVER
benutzen.

Es ist keine gute Idee, setEnablePin zu benutzen, da das shield einen gemeinsamen enable für alle stepper hat, AccelStepper aber je einen eigenen Pin pro Stepper erwartet.

Das dürfte aber beides nicht dein aktuelles Problem sein. Bist Du sicher das alle Verkabelungen korrekt sind?

Danke für Eure Hilfe.

Ich hatte zum Glück noch ein anderes Shield in der Schublade.
Mit dem klappt es. Da ist wohl etwas auf dem anderen nicht in Ordnung.

Freut mich doppelt für dich.

Dass es jetzt funktioniert und dein Problem gelöst ist, und das ich anscheinend mit meinem Verdacht recht hatte.

Gruß

Pucki

ps. Markiere es einfach noch als gelöst.

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