Pubblicato il

Easydriver Arduino come controllare Stepper Motori Passo Passo – Lezione 8

Premessa:

Questa guida permette di comandare un motore Passo Passo denominato anche STEPPER tramite un controller Easydriver collegato ad Arduino. Utile per molti progetti che gestiscono variabili molto precise come nello specifico caso delle stampanti 3D, che tramite i motori passo passo permettono di muovere gli assi X Y Z.

LISTA DEI MATERIALI:

Introduzione

I motori passo passo possiedono la capacità di essere pilotati con degli impulsi in modo da compiere un giro completo in un numero di passi stabilito. Se il motore passo passo che possiedi è un 200 step ( 200 passi ) vuol dire che l’albero per tornare nella sua posizione iniziale dopo aver eseguito un giro completo impegna 200 piccoli passi da 1,8° ciascuno ( 360°/200 = 1,8° ).

Quando trasferisci il movimento meccanico di rotazione ad una vite, il passo della vite identifica la distanza percorsa da un oggetto lungo la vite dopo una rotazione di 360° ( un giro di vite ):

Vite

Se conosci quanti mm è il PASSO di una vite puoi calcolare la precisione che puoi ottenere con il tuo motore; ad esempio nell’immagine della vite se il PASSO fosse di 5mm puoi calcolarti il grado di precisione come:

Precisione = ( PASSO / numero di step ) = ( 5 mm / 200 ) = 0,025 mm

A questo punto avrai già dedotto che se puoi incrementare il numero di passi dividendo il singolo passo per 1/2, 1/4 o 1/8 di passo puoi aumentare la precisione del tuo movimento meccanico in quanto otterrai:

200 * 2 = 400 passi
200 * 4 = 800 passi
200 * 8 = 1600 passi

e di conseguenza, tornando al PASSO della vite:

5mm / 400 passi = 0,0125 mm
5mm / 800 passi = 0,00625 mm
5mm / 1600 passi = 0,003125 mm

Ridurre l’ampiezza del passo in modo che un giro sia compiuto in 400, 800 o 1600 passi è possibile utilizzando i terminali MS1 ed MS2 presenti sul driver, seguendo questo schema:
Come gestire il controllo di precisione con easydriver:

easydriverarduinoms

La Easydriver gestisce due pin MS1 MS2 che permettono di impostare questi valori HIGH LOW e in base alla combinazione scelta decidere il passo che deve compiere il motore passo passo. Come potete vedere nell immagine sopra sono riportate le risoluzioni che posso essere demoltiplicate con il driver. questi due pin che nello schema elettrico e nello sketch sono MS1 = pin 4 arduino;(cavo blu) MS2 = pin 5 arduino;(cavo verde) permettono quindi di essere gestiti tramite i pin digitali dell arduino e impostare il numero di passi che dovra compiere lo Stepper (400,800,1600) Passi.

EasyDriverBoard

Schema elettrico e Componenti Hardware:

arduinolezione8

Software Easydriver arduino controllore stepper:

int DIR = 2;
int STEP = 3;
int MS1 = 4;
int MS2 = 5;

void setup() {
  Serial.begin(9600);
  pinMode(DIR, OUTPUT);
  pinMode(STEP, OUTPUT);
  pinMode(MS1, OUTPUT);
  pinMode(MS2, OUTPUT);

}

void loop()
{
    digitalWrite(MS1,  LOW);
    digitalWrite(MS2,  LOW);

    digitalWrite(DIR,HIGH);
    delay(50);

    for ( int i=0; i<200; i++) { stepGo(); delay(10);}
    delay(300);
}

void stepGo() {
        digitalWrite(STEP, HIGH);
        delayMicroseconds(100);
        digitalWrite(STEP, LOW);
        delayMicroseconds(100);
}