Motore passo passo con il comando switch case

Vorrei aiuto a capire come variare la senso di rotazione dello stepper mediante l'utilizzo del comando SWITCH CASE modificando questo sketch

//dichiariamo le variabili dei pin del motore
int motorPin1 = 8; // Blue - 28BYJ48 pin 1
int motorPin2 = 9; // Pink - 28BYJ48 pin 2
int motorPin3 = 10; // Yellow - 28BYJ48 pin 3
int motorPin4 = 11; // Orange - 28BYJ48 pin 4
// Red - 28BYJ48 pin 5 (VCC)

int motorSpeed = 1200; //variabile per impostare la velocità del motore
int count = 0; // contatore dei passi fatti
int countsperrev = 512; // numero dei passi per una rotazione completa
int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001}; //vettore binario che rappresenta la switching sequence
//la switchin seuence del vettore va letta da destra verso sinistra

//////////////////////////////////////////////////////////////////////////////
void setup() {
//dichiarazione degli output ed attivazione della comunicazione seriale
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
Serial.begin(9600);
}

//////////////////////////////////////////////////////////////////////////////
void loop(){
if(count < countsperrev ) clockwise();
// se il contatore "count" è minore del numero di passi presenti in un giro completo attiva la void clockwise

else if (count == countsperrev * 2) count = 0;
// se il contatore "count" è uguale doppio del numero di passi presenti in un giro completo azzera il contatore
else anticlockwise();
// se il contatore "count" è maggiore del numero di passi presenti in un giro completo e minore del doppio del
//numero di passi presenti in un giro completo attiva la void anticlockwise
count++;
//Incrementa il contatore di una unità
}

//////////////////////////////////////////////////////////////////////////////
//set pins to ULN2003 high in sequence from 1 to 4
//delay "motorSpeed" between each pin setting (to determine speed)
void anticlockwise()
{
for(int i = 0; i < 8; i++)
{
setOutput(i);
//invoca la void setOutput
delayMicroseconds(motorSpeed);
}
}

void clockwise()
{
for(int i = 7; i >= 0; i--)
{
setOutput(i);
//invoca la void setOutput
delayMicroseconds(motorSpeed);
}
}

void setOutput(int out)
{
digitalWrite(motorPin1, bitRead(lookup[out], 0));
//scrivi su motorPin1 del vettore lookup del termine out quello che sta in posizione 0
digitalWrite(motorPin2, bitRead(lookup[out], 1));
//scrivi su motorPin1 del vettore lookup del termine out quello che sta in posizione 1
digitalWrite(motorPin3, bitRead(lookup[out], 2));
//scrivi su motorPin1 del vettore lookup del termine out quello che sta in posizione 2
digitalWrite(motorPin4, bitRead(lookup[out], 3));
//scrivi su motorPin1 del vettore lookup del termine out quello che sta in posizione 3
}

Potete aiutarmi?
Grazie

Buongiorno, :slight_smile:
essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ...

... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread e sistemato il codice come da regolamento, nessuno ti potrà rispondere, quindi ti consiglio di fare il tutto al più presto. :wink:

Semplificati la vita, usa la libreria Stepper...