// defines pins
#define stepPin 4
#define dirPin 6

int girmin = 20;
int step = 200;
unsigned long previousMillis = 0;
unsigned long stepDelay;  // tempo tra ogni passo del motore stepper

void setup() {
  // Sets the two pins as Outputs
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  digitalWrite(dirPin, HIGH);

  // Calcola il ritardo tra i passi per ottenere 10 giri al minuto
  stepDelay = 60000 / (step * girmin);
}

void loop() {
  // Ottieni il tempo attuale in millisecondi
  unsigned long currentMillis = millis();

  // Controlla se è passato il tempo per il prossimo passo
  if (currentMillis - previousMillis >= stepDelay) {
    // Memorizza il tempo dell'ultimo passo
    previousMillis = currentMillis;

    // Cambia la direzione se necessario
    digitalWrite(dirPin, HIGH);  // HIGH o LOW a seconda della direzione desiderata

    // Esegui un passo
    digitalWrite(stepPin, HIGH);
    delay(1);  // Breve ritardo per assicurare che il pin step rimanga alto abbastanza a lungo
    digitalWrite(stepPin, LOW);
  }

  // Altri compiti possono essere eseguiti qui senza attendere il ritardo
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
stepper1:A-
stepper1:A+
stepper1:B+
stepper1:B-
A4988
drv1:ENABLE
drv1:MS1
drv1:MS2
drv1:MS3
drv1:RESET
drv1:SLEEP
drv1:STEP
drv1:DIR
drv1:GND.1
drv1:VDD
drv1:1B
drv1:1A
drv1:2A
drv1:2B
drv1:GND.2
drv1:VMOT
pot1:VCC
pot1:SIG
pot1:GND
sw1:1
sw1:2
sw1:3