// 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-
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