motore passo passo con potenziometro: come aggiungo un altro?

Salve a tutti,

ho trovato questo sketch, è un semplice stepper comandato da un potenziometro e due pulsanti (per la direzione).
Vorrei aggiungere un altro motore passo passo, non avendo le conoscenze, e più che altro senza comprare un altro arduino (che per me sarebbe la cosa + facile!) chi mi aiuta a modificare lo sketch?

#include <Stepper.h>

int forward = 2;
int reverse = 3;

Stepper motor(200, 10,11,12,13);            

void setup() {
  pinMode(forward,INPUT);
  pinMode(reverse,INPUT);
    Serial.begin(9600);
}

void loop() {
  int Speed = analogRead(A0);
  int RPM = map(Speed, 0, 1023, 0, 100);
  int f = digitalRead(forward);
  int r = digitalRead(reverse);
  if(f == 1 && r == 0 && RPM > 1){
  motor.step(1);
    motor.setSpeed(RPM);
    delay(.01);
  }
  if(r == 1 && f== 0  && RPM > 1){
    motor.step(-1);
    motor.setSpeed(RPM);
        delay(.01);
  }
  delay(5);
    Serial.println(RPM);
}

Comprare un'altro arduino sarebbe la cosa più stupida da fare ...sarebbe come comprarsi un'altra ps3 solo per avere 2 controller....cmq io per pilotare i motori passo passo non uso il tuo stesso skech... ho seguito questa guida, magari ti può aiutare anche a te. Per ora possiedo solo un motore passo passo, ma a giorni mi dovrebbe arrivare l'altro e ti potrò dire se è possibile pilotarli facilmente... http://www.mauroalfieri.it/elettronica/motori-passo-passo-bipolari-con-arduino-controlla-la-velocita.html

Certo conosco quel link! Ma quello che ho trovato io funziona bene, e per me l' utilizzo dei pulsanti è fondamentale!

Brutalmente, raddoppia le tue variabili e chiamale 1 e 2. Naturalmente raddoppi anche l'uso dei pin; usi A0, quindi userai anche A1
Esempio:

int Speed1 = analogRead(A0);    
int Speed2 = analogRead(A1);

e all'inizio:

int forward1 = 2;    // pin 2   per motore 1
int reverse1 = 3;     // pin 3   per motore 1
int forward2 = 4;    // pin 4   per motore 2 
int reverse2 = 5;     //pin 5    per motore 2

Grazie!
pensi che così vada bene?

#include <Stepper.h>

int forward1 = 2;    // pin 2   per motore 1
int reverse1 = 3;     // pin 3   per motore 1
int forward2 = 4;    // pin 4   per motore 2 
int reverse2 = 5;     //pin 5    per motore 2

Stepper motor(200, 10,11,12,13);            

void setup() {
  pinMode(forward,INPUT);
  pinMode(reverse,INPUT);
    Serial.begin(9600);
}

void loop() {
  int Speed1 = analogRead(A0);    
  int Speed2 = analogRead(A1); 
  int RPM = map(Speed, 0, 1023, 0, 100);
  int f = digitalRead(forward);
  int r = digitalRead(reverse);
  if(f == 1 && r == 0 && RPM > 1){
  motor.step(1);
    motor.setSpeed(RPM);
    delay(.01);
  }
  if(r == 1 && f== 0  && RPM > 1){
    motor.step(-1);
    motor.setSpeed(RPM);
        delay(.01);
  }
  delay(5);
    Serial.println(RPM);
}

No, devi raddoppiare tutte le variabili.
Scusa, non son stato chiaro. Non volevo farlo io al tuo posto. Ti suggerivo un metodo ma senza farlo tutto io.

Importante è anche raddoppiare l'oggetto motor

Stepper motor1(200, 10,11,12,13);
Stepper motor2(200, 10,11,12,13);   --> ATTENZIONE: i 4 pin DEVONO essere altri non sò quali hai liberi

naturalmente motor nel programma non esiste più, cerca motor e sostituiscilo con motor1

Caspita sono nei guai!! Da dove comincio?? :astonished:

Ora che ci penso l' altro stepper andrebbe comandato solo con un potenziometro, dovrebbe girare solo quando ruoto il potenziometro, e fermarsi quando il potenziometro è fermo!

Hai già cominciato! :smiley:
Hai modificato in parte il codice. Lo hai capito cosa fa?
I potenziometri e il motore li hai collegati ad alcuni pin. Il programma li vede attraverso le variabili.

Raddoppia i collegamenti del motore e dei potenziometri.
Esempio il motore è collegato a pin 10,11,12,13 il secondo puoi collegarli ai pin 6,7,8,9 (se sono liberi)
I potenziometri a quali pin son collegati? Collega gli altri ad altri pin liberi.

Ok grazie..ora faccio una prova! Infatti quello che mi interessa è capire, non fare semplicemente "copia e incolla"! Così sarò autonomo!