Antrieb brummt nur dreht aber nicht

Moin zusammen. Folgendes Problem tut sich mir auf. Ich habe so zu Testzwecken mal ein bisschen was gebastelt so ala Staubsaugerroboter. Das ganze Teil ist auf einem runden Sperrholzbrett aufgebaut und soll mit Hilfe von 2 Stück Schrittmotoren 28BYJ-48 in Verbindung mit zwei ULN2003 Treibern funktionieren. Das Teil soll nur einfach im Kreis fahren. Jetzt das Problem. Ich spiele den Sketch ein und nur ein Motor dreht sich. Der andere ruckelt ein bisschen wenn überhaupt. Verdrahtung stimmt alles. Selbst wenn ich den drehenden Motor abklemme ändert sich nichts. Hat irgendeiner eine Idee was es sein könnte? Danke schonmal im Voraus.
Hier der Sketch. Ist echt nichts weltbewegendes.

#include <AccelStepper.h>

// Linker Motor an Pins 2–5
AccelStepper stepperLeft(AccelStepper::HALF4WIRE, 2, 4, 3, 5);

// Rechter Motor an Pins 8-11
AccelStepper stepperRight(AccelStepper::HALF4WIRE, 8, 9, 10, 11);

// Kreis-Parameter
float ratio = 0.67; // Innen/Außen Schrittfrequenz
int baseSpeed = 600; // Schritte pro Sekunde für Außenrad

void setup() {
stepperLeft.setMaxSpeed(2000);
stepperRight.setMaxSpeed(2000);

// Nehmen wir an: Rechtes Rad = Außenrad
stepperRight.setSpeed(baseSpeed);
stepperLeft.setSpeed(baseSpeed * ratio);
}

void loop() {
// Beide Motoren kontinuierlich laufen lassen
stepperLeft.runSpeed();
stepperRight.runSpeed();
}

Da fallen mir zwei Dinge ein:

    1. Die Verkabelung stimmt entgegen Deiner Aussage doch nicht.
    1. Du lässt es so wie es ist und änderst die Zeile
AccelStepper stepperRight(AccelStepper::HALF4WIRE, 8, 9, 10, 11);

in

AccelStepper stepperRight(AccelStepper::HALF4WIRE, 8, 10, 9, 11);

Was im Grunde dem ersten Punkt entspricht, nur das die Software der Verkabelung angepasst wird.

Hallo Kai-R
Vielen lieben Dank. Es funktioniert. Kannst Du mir vielleicht sagen warum das so ist. Es sind doch beides die gleichen Motoren. Bei meiner Version müssten doch im "dümmsten" Fall die Motoren unterschiedlich von der Drehrichtung laufen, oder habe ich da einen Denkfehler. Gruß H.

Die Spulen des Schrittmotors müssen in der richtigen Reihenfolge (Schrittsequenz) bestromt werden, damit er sich überhaupt drehen kann. Darum ist die Reihenfolge, in der die Pins an das Stepperobjekt AccelStepper übergeben werden, wichtig.

Die Drehrichtung ändert sich nur dann, wenn die komplette Sequenz (8,10,9,11) „herumgedreht“ wird (11,9,10,8).

Etwas genauer erklärt ist das z.B. hier

oder auch hier

Ich danke Dir. Ich musste den ersten Motor nämlich auch drehen. Hab die Motoren mal durchgemessen und dann war´s mir auch klar.
Gruß, H.