#include <AccelStepper.h>
// Tipo di motore: 1 = DRIVER (usato per step/dir come A4988)
#define MOTOR_INTERFACE_TYPE 1
// Pin collegati a STEP e DIR
#define STEP_PIN 12
#define DIR_PIN 13
// Creazione oggetto motore
AccelStepper stepper(MOTOR_INTERFACE_TYPE, STEP_PIN, DIR_PIN);
float posizione_step=1500;
void setup() {
Serial.begin(9600);
// Impostazioni del motore
stepper.setMaxSpeed(5000); // passi al secondo
stepper.setAcceleration(500); // passi al secondo^2
}
void loop() {
// Imposta la posizione target (in passi)
stepper.moveTo(posizione_step); // ad esempio, muovi avanti di 2000 passi
// Muove il motore verso la posizione target
if (stepper.distanceToGo() != 0) {
stepper.run(); // chiama spesso per far muovere il motore
} else {
Serial.println("Invertiamo");
// Quando arriva a destinazione, inverti la direzione
posizione_step=-posizione_step;
stepper.moveTo(posizione_step);
}
}