ci ho passato una nottata e nn ho risolto un piciu

buongiorno a tutti!
allora ho un serio problema nel manovrare due motori stepper,
sto usando il programma di prova che è sul sito di arduino, io ho solamente aggiunto un motore.
i due motori stepper sono identici con step 7.2 ohm, unipolari con 6 wires, io ne uso solo 4
per il controllo utilizzo la shell di adafruit e la alimento a 12 v
ora, il programma funziona senza problemi con 1 motore ma quando inserisco il secondo il movimento diventa molto scattoso oppure funzionano prima uno e poi un altro e poi dopo il primo ciclo del programma i motori si bloccano facendo quel tipico rumore che gli stepper fanno quando le fasi vengono alimentate in maniera sbagliata.

Questo è il programma base

#include <AFMotor.h>

AF_Stepper motor(48, 2);

void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Stepper test!");

motor.setSpeed(10); // 10 rpm

motor.step(100, FORWARD, SINGLE);
motor.release();
delay(1000);
}

void loop() {
motor.step(100, FORWARD, SINGLE);
motor.step(100, BACKWARD, SINGLE);

motor.step(100, FORWARD, DOUBLE);
motor.step(100, BACKWARD, DOUBLE);

motor.step(100, FORWARD, INTERLEAVE);
motor.step(100, BACKWARD, INTERLEAVE);

motor.step(100, FORWARD, MICROSTEP);
motor.step(100, BACKWARD, MICROSTEP);
}

...e questo è il mio prgramma modificato

#include <AFMotor.h>

AF_Stepper motor1(48, 2);
AF_Stepper motor2(48, 2);

void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Stepper test!");

motor1.setSpeed(100); // 10 rpm
motor2.setSpeed(100); // 10 rpm

motor1.step(100, FORWARD, SINGLE);
motor2.step(100, FORWARD, SINGLE);
//motor.release();
//delay(100);
}

void loop() {
//motor.step(100, FORWARD, SINGLE);
//motor.step(100, BACKWARD, SINGLE);

//motor.step(100, FORWARD, DOUBLE);
//motor.step(100, BACKWARD, DOUBLE);

motor1.step(100, FORWARD, INTERLEAVE);
motor2.step(100, FORWARD, INTERLEAVE);

//motor.step(100, FORWARD, MICROSTEP);
//motor.step(100, BACKWARD, MICROSTEP);
}

grazie per l'aiuto

Credo che il problema sia che quando inizializzi un oggetto AF_Stepper devi indicare a quale motore si riferisce (1 o 2)

il tuo codice inizializza 2 oggetti sullo stesso motore (il 2)

questa riga
AF_Stepper motor1(48, 2);
AF_Stepper motor2(48, 2);
deve essere
AF_Stepper motor1(48, 1);
AF_Stepper motor2(48, 2);

credo

perche non l'ho mai usato e il suo codice non ha un commento manco a pagarla

massimo