Buongiorno, volevo esporvi il mio quesito. Io sto progettando un semplice meccanismo che prevede l'utilizzo di due motori stepper unipolari. Ho verificato a priori la correttezza dei collegamenti di tali motori ed è andato tutto bene, poi ho fatto qualche prova con codici semplici e anche qui tutto bene. Ora però mi trovo a un punto di stallo: quello che chiedo io al mio software è che faccia fare determinati movimenti ai miei motori ricevendo un input dalla tastiera del mio pc (ad esempio: se premo 'a' il mio motore numero 1 avanza di 20 step e il mio motore 2 avanza di 30, poi si fermano; se digito 'y' il mio motore uno avanza di 200 step e il motore 2 avanza di 50, poi si fermano; e così via...).
Vi posto il codice che ho scritto e vi sarei molto grato se riusciste a darmi qualche dritta e farmi capire gli errori che ho commesso, dal momento che sono un vero novizio della programmazione. Grazie a tutti in anticipo.
#include <Stepper.h>
#define STEPS1 200
#define STEPS2 200
// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper stepper1(STEPS1, 8, 9, 10, 11);
Stepper stepper2(STEPS2, 4, 5, 6, 7);
void setup(){ }
void loop()
{
if (Serial.available() > 0) {
int inByte = Serial.read();
switch (inByte) {
case 'a':
//code for a
stepper1.setSpeed(5);
stepper2.setSpeed(8);
stepper1.step(100);
stepper2.step(100);
stepper1.step(-100);
stepper2.step(-100);
break;
case 'b':
//code for b
stepper1.setSpeed(5);
stepper2.setSpeed(8);
stepper1.step(150);
stepper2.step(100);
stepper1.step(-150);
stepper2.step(-100);
break;
case 'c':
//code for c
stepper1.setSpeed(5);
stepper2.setSpeed(8);
stepper1.step(200);
stepper2.step(100);
stepper1.step(-200);
stepper2.step(-100);
break;
case 'd':
//code for d
stepper1.setSpeed(5);
stepper2.setSpeed(8);
stepper1.step(250);
stepper2.step(100);
stepper1.step(-250);
stepper2.step(-100);
break;
default:
// se nessuna opzione è tra quelle prestabilite
//code
stepper1.setSpeed(0);
stepper2.setSpeed(0);
stepper1.step(0);
stepper2.step(0);
}
}
}