Si effettivamente il codice
postato senza librerie è molto piu' facile da usare
Codice: Seleziona tutto
/*
Il sistema è controllato da tre pulsanti.
1)il pulsante Start Avvia la sequenza lavorazione.
2)il pulsante Emergenza ferma la lavorazione
ma premendo nuovamente Start riparte da dove
aveva terminato.
3)il pulsante reset, azzera tutto
ripremendo il pulsante start riparte dal primo pezzo.
I pulsanti sono in INPUT_PULLUP, di consegueza
sono collegati a massa, e il pulsante è premuto
quando ha valore LOW.
*/
#define PulsanteStart 1
#define PulsanteEmergenza 2
#define PulsanteReset 3
/* Pin direzione motore e pin step motore */
#define Direzione 4
#define Step 5
/* Array di interi, contente la lunghezza dei pezzi in mm */
int Misure[4]={500,400,250,200};
/*Valore di spostamento a passo motore, da calcolare in base
alla macchina e trasmizzione, metto valore a caso di 0,1 mm
*/
float spostamentoPasso=0.1;
int contatore=0;
void setup(){
pinMode(PulsanteStart,INPUT_PULLUP);
pinMode(PulsanteEmergenza,INPUT_PULLUP);
pinMode(PulsanteReset,INPUT_PULLUP);
pinMode(Direzione,OUTPUT);
pinMode(Step,OUTPUT);
digitalWrite(Direzione,HIGH); // mettere HIGH o LOW a seconda della rotazione motore
}
void loop(){
if(digitalRead(PulsanteStart)==LOW){
delay(1000);
for(contatore=0;contatore<4;contatore++){
Move(Misure[contatore]);
}// end for
}// end if
contatore=0;
}//end loop()
void Move(int lunghezza){
int passi=lunghezza/spostamentoPasso;
int i=0;
while(i < passi) {
digitalWrite(Step, HIGH);
delay (10);
digitalWrite(Step, LOW);
delay(10);
i++;
/* se durante la lavorazione
viene premuto il pulsante Emergenza
entra in un while e attende-si ferma, finche
non viene premuto di nuovo il pulsante Start */
if(digitalRead( PulsanteEmergenza)==LOW){
delay(200);
while(digitalRead(PulsanteStart)==HIGH);
} //end if
/*se viene premuto il pusante Reset ferma tutto e
ricomincia da capo se si preme start */
if(digitalRead( PulsanteReset)==LOW){
delay(200);
contatore=0;
return ;
} //end if
}// end while
delay(6000); // ATTENDE 6 secondi per fare la lavorazione
}// end function Move()