int step = 3;
int dir = 2;
int pinpuls = 5;
int pinpulstop = 7;
int statopul = 0;
int statostop = 0;
int largimpul = 20; //larghezza dell impulso in micros
int distimpul = 10;// distanza tra gli impulsi in millis piu si aumenta questo par e minore è la velocita
int numstep = 200;//numero di passi che facciamo fare al motore
void setup() {
pinMode(step, OUTPUT);
pinMode(dir, OUTPUT);
pinMode(pinpuls, INPUT);
pinMode(pinpulstop, INPUT);
}
void loop() {
statopul = digitalRead(pinpuls);
if (statopul) {
digitalWrite(dir, HIGH);
for (int i = 0; i < numstep; i++) {
statostop = digitalRead(pinpulstop);
if(statostop){
break;
}
digitalWrite(step, HIGH);
delayMicroseconds(largimpul);
digitalWrite(step, LOW);
delay(distimpul);
}
delay(100);
digitalWrite(dir, LOW);
for (int i = 0; i < numstep; i++) {
statostop = digitalRead(pinpulstop);
if(statostop){
break;
}
digitalWrite(step, HIGH);
delayMicroseconds(largimpul);
digitalWrite(step, LOW);
delay(distimpul);
}
}
}