int step = 3;
int Pot = A0;
int ValPot = 0;
int dir = 2;
int pinpuls = 5;
int statopul = 0;
int largimpul = 20; //larghezza dell impulso in micros
int distimpul = 0;// 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);
}
void loop() {
statopul = digitalRead(pinpuls);
if (statopul) {
digitalWrite(dir, HIGH);
for (int i = 0; i < numstep; i++) {
ValPot = analogRead(Pot);// leggo valore del potenziometro
distimpul = map(ValPot,0,1023,0,300);
digitalWrite(step, HIGH);
delayMicroseconds(largimpul);
digitalWrite(step, LOW);
delay(distimpul);
}
delay(100);
digitalWrite(dir, LOW);
for (int i = 0; i < numstep; i++) {
ValPot = analogRead(Pot);// leggo valore del potenziometro
distimpul = map(ValPot,0,1023,0,300);
digitalWrite(step, HIGH);
delayMicroseconds(largimpul);
digitalWrite(step, LOW);
delay(distimpul);
}
}
}