#include "StepperTNT.h"
int job = 0;
uint32_t target, oldTarget;
#define DIR 5
#define STEP 2
int dir_pin = 5;
int step_pin = 2 ;
StepperTNT stepper(DIR, STEP);
// interrupt service routine wrapper
ISR(TIMER1_OVF_vect)
{
stepper.isrCallback();
}
void setup() {
stepper.setSpeed(2000);
stepper.setAcceleration(20000);
}
void loop () {
// Se il motore è arrivato in posizione, passiamo al job successivo
if ( stepper.distanceToGo() == 0 ) {
// Giusto per rendere evidente la posizione raggiunta,
// aggiungo un ritardo prima di far partire di nuovo il motore
delay(1000);
switch (job) {
case 0:
target = 2400;
job = 1;
break;
case 1:
target = 180;
job = 0;
break;
}
}
if (target != oldTarget) {
oldTarget = target;
// Imposto il target (numero di step da eseguire)
stepper.moveTo(target);
// Avvio del movimento
stepper.start();
}
}