codice motore passopasso

Salve

Vorrei scusarmi con gli interlocutori di un mio post (progetto bilancia) che ho trascurato dall’ottobre 2015
per motivi di lavoro. Il mio intento e’ comunque di riprendere la discussione appena risolto dubbi che mi accingo ad esporre su codice motore passopasso.

Essendo un principiante ho cercato la via forse piu’ semplice per comandare tre motorini passopasso.
Ho trascurato le librerie di arduino e riesco comunque a muoverli secondo alcuni ordini.
Vorrei che quando si mettono in moto entrambi il numero 2 e il numero 3 lo facessero con velocita’ differenti che non riesco ad impostare perche’ il codice me li fa muovere insieme ma sempre con la stessa velocita’ e ridotta.
La parte di codice e’ questa:(Ho utilizzato le due delay 3,10)

int prova;
 
 prova=1;
 for(prova;prova<1000;prova=prova+1)  {
   
  digitalWrite(  terzomotorPin4, HIGH);
  digitalWrite(  terzomotorPin3, LOW);
  digitalWrite(  terzomotorPin2, LOW);
  digitalWrite(  terzomotorPin1, LOW);
  delay(3);
  digitalWrite(  terzomotorPin4, LOW);
  digitalWrite(  terzomotorPin3, HIGH);
  digitalWrite(  terzomotorPin2, LOW);
  digitalWrite(  terzomotorPin1, LOW);
  delay(3);
  digitalWrite(  terzomotorPin4, LOW);
  digitalWrite(  terzomotorPin3, LOW);
  digitalWrite(  terzomotorPin2, HIGH);
  digitalWrite(  terzomotorPin1, LOW);
  delay(3);
  digitalWrite(  terzomotorPin4, LOW);
  digitalWrite(  terzomotorPin3, LOW);
  digitalWrite(  terzomotorPin2, LOW);
  digitalWrite(  terzomotorPin1, HIGH);
  delay(3);    
   
   
   
  
  digitalWrite( secondomotorPin4, HIGH);
   digitalWrite( secondomotorPin3, LOW);
   digitalWrite( secondomotorPin2, LOW);
   digitalWrite( secondomotorPin1, LOW);
   delay(10);
   digitalWrite( secondomotorPin4, LOW);
   digitalWrite( secondomotorPin3, HIGH);
   digitalWrite( secondomotorPin2, LOW);
   digitalWrite( secondomotorPin1, LOW);
   delay(10);
  digitalWrite( secondomotorPin4, LOW);
  digitalWrite( secondomotorPin3, LOW);
  digitalWrite( secondomotorPin2, HIGH);
  digitalWrite( secondomotorPin1, LOW);
  delay(10);
  digitalWrite( secondomotorPin4, LOW);
  digitalWrite( secondomotorPin3, LOW);
  digitalWrite( secondomotorPin2, LOW);
  digitalWrite( secondomotorPin1, HIGH);
  delay(10);

Grazie

Salve

Ho fatto riferimento ad una libreria di arduino.
Indubbiamente il codice si semplifica e sono riuscito a pilotare tre motorini avanti/indietro e con un numero di passi facilmente programmabile.
Ho inserito anche un led per cercare di prendere piu’ confidenza con il listato.
Considerando che le mie conoscenze si fermano a if e for mi chiedevo se era possibile aggiungere un codice che mi permettesse nella maniera piu’ semplice di pilotare 2 o 3 motorini insieme cioe’ che si possano muovere insieme con velocita’ differenti.
Il codice di esempio che ho scritto e’ questo:

#include <Stepper.h>
   #define STEPS  100  
   Stepper primomotore(100, 31, 33, 32, 34);
   Stepper secondomotore(100, 8, 10, 9, 11);
   Stepper terzomotore(100, 2, 4, 3, 5);
   int  giroprimomotore;
   int  girosecondomotore;
   int  giroterzomotore;
   void setup()  
   {
     
     pinMode(7,OUTPUT);
   }

   void loop()  
   {
     primomotore.setSpeed(300); //200 
     giroprimomotore  =  600; //2048 
     // Rotate CW For a complete rotation
     // Change this number for change the degrees of the rotation
     primomotore.step(giroprimomotore);
     delay(50);
     primomotore.setSpeed(300);//200  
     // Change this for change the speed
     giroprimomotore  =  -2048;  // Rotate CCW
     primomotore.step(giroprimomotore);
     delay(50);
   
 
     secondomotore.setSpeed(200);  
     girosecondomotore  =  1000; 
     secondomotore.step(girosecondomotore);
     delay(50);
     secondomotore.setSpeed(300);//200  
     girosecondomotore  =  -2048;   
     secondomotore.step(girosecondomotore);
     delay(50);

     digitalWrite(7, HIGH);
     delay(5000);
     digitalWrite(7, LOW);
     terzomotore.setSpeed(100); 
     giroterzomotore  =  1000; //2048 
     terzomotore.step(giroterzomotore);
     delay(50);
     terzomotore.setSpeed(300);//200  
     giroterzomotore  =  -2048;   
     terzomotore.step(giroterzomotore);
     delay(50);

@Reprep: cortesemente, in conformità al regolamento, punto 7, edita (in basso a destra del post, bottone More → Modify) il tuo post e racchiudi il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra). Grazie.

Guglielmo