Salve
Ho seguito il consiglio di Torn24 e per muovere il braccio robotico sto utilizzando la libreria accelstepper. Il codice che ho scritto dovrebbe a 4000 passi di distanza dall'arrivo dello stepper1 muovere gia' lo stepper 2 che a sua volta prima che arrivi in fondo corsa(5000) e precisamente a meno di 2500 passi dovrebbe muovere lo stepper 3 che arrivando in fondo corsa fa indietreggiare di 4000 passi lo stepper 1. l'introduzione di una variabile(prova) impostata ora sullo zero dovrebbe farmi ripetere il ciclo sempre. Purtroppo non e' cosi',completato il ritorno dello stepper 1 il ciclo si ferma. Se qualcuno mi sa indicare il perche' lo ringrazio. Saluti
#include
int prova=0;
//int verso = 1;
AccelStepper stepper1(AccelStepper::FULL2WIRE,2,3 );
AccelStepper stepper2(AccelStepper::FULL2WIRE,6,7 );
AccelStepper stepper3(AccelStepper::FULL2WIRE,10,9 );
void setup()
{
stepper1.setMaxSpeed(100000.0);
stepper1.setAcceleration(2000.0);
stepper2.setMaxSpeed(100000.0);
stepper2.setAcceleration(2000.0);
stepper3.setMaxSpeed(100000.0);
stepper3.setAcceleration(2000.0);
stepper1.move(8000);
pinMode(13,OUTPUT);
}
void loop()
{
if(stepper1.distanceToGo () == 4000 &&(prova==0))
{
stepper2.move(5000);
digitalWrite(13,HIGH);
prova=1;
}
if(stepper2.distanceToGo() ==2500 &&(prova==1))
{
stepper3.move(1500);
prova=2;
}
if(stepper3.distanceToGo() ==0 &&(prova==2))
{
stepper1.move(-4000);
prova=0;
}
stepper1.run();
stepper2.run();
stepper3.run();
}