Edoardo Vignali
Motori Stepper
Tutorials -
Martedì 27 Aprile 2010 17:32
Scritto da Edoardo Vignali

 

Come funzionano, come pilotarli e come utilizzarli.

Come funziona un motore stepper?

Un motore stepper, in italiano Passo-Passo, è un particolare tipo di motore. Per capire i motori stepper più complessi dobbiamo rifarci ad un caso semplice.
Supponiamo di avere uno stepper come quello in figura con soltanto 4 bobine:
motore stepper semplificato

All'interno dello stepper ci sono sempre un numero pari di bobine avvolte attorno allo statore, mentre l'asse del motore è solidale ad un magnete (rotore). La corrente che scorre all'interno delle bobine genera un campo elettromagnetico che fa orientare il rotore in una definita posizione. Le bobine vengono chiamate fasi, in questo caso abbiamo solo 2 fasi. I passi di questo stepper saranno di 90°, ma della realtà si trovano stepper molto più sensibili che hanno 4 fasi e un passo di 3.6 gradi, quindi 100 passi per rotazione.
Esempio di un 4 fasi:
motore stepper 4 fasi
Osservate adesso l'interno di uno stepper reale:
motore stepper aperto

Il rotore di questo stepper ha 2 magneti permanenti, uno magnetizzato come Nord e l'altro come Sud, le due ruote dentate hanno in genere 50 dentini e sono sfasate l'una dall'altra di mezzo passo. Lo statore ha invece 4 fasi e i denti rivolti verso il centro si chiamano coppette. Quando viene alimentata una fase, quindi una coppia di bobine, lo stepper compierà un passettino. Il passo degli stepper varia a seconda del numero dei denti e delle fasi
Successivamente vedremo con quanti fili si alimentano gli stepper, con quali integrati e che sequenze inviare da Arduino o da un'altro qualsiasi dispositivo digitale in grado di generare bit.

Caratteristiche di uno Stepper

Le caratteristiche più importanti di uno stepper sono:

  • Numero di passi: in commercio si trovano da 16, 20, 40, 100 e 200 passi.
  • Coppia: espressa in Nm.
  • Corrente di alimentazione.
  • Numero di fili
  • Tipo: Bipolare o unipolare

Differenza tra Bipolare o Unipolare

Il numero di fili identifica il tipo di stepper:

  • Unipolare: Ha 4 fasi disposte in antiparallelo, ha quindi 6 fili o 5 se CA e CB sono collegate. Lo schema elettrico lo vedete sotto:

stepper unipolare

questo tipo di motore si pilota come un bipolare, basterà individuare il CA e il CB e pilotarlo sugli altri ingressi.

  • Bipolare: Ha 2 fasi disposte su più assi.

stepper bipolare

 

Modalità di pilotaggio dei motori stepper

Uno stepper si presenta sempre con almeno 4 fili, nel caso ce ne fossero più di 4 utilizzeremo soltanto quelli collegati alle fasi. Per capire quali fili appartengono ad una stessa fase basterà collegare una batteria da 9v con il + su un filo e provare con gli altri fili a toccare il meno fin quando non vedremo una scintilla. Una volta individuate le 2 fasi collegheremo il nostro stepper ad un circuito di pilotaggio e le sequenze di bit che invieremo sulle fasi saranno diversi a seconda della modalità con cui vorremo pilotarlo.

  • Wavemode

 

FASE AVVOLGIMENTO
1 1
2 1
3 1
4 1

La modalità wave è la più semplice, consiste nell'iviare una sequenza di bit alti sulle fasi le quali si attiveranno e faranno ruotare il rotore. Un 1 sulla tabella indica che la fase è alimentata alla tensione nominale.

  • Two-phase on
FASE AVVOLGIMENTO
1 1 1
2 1 1
3 1 1
4 1 1

Nella modalità Two-phase vengono alimentate 2 fasi perpendicolari contemporaneamente, questo ci darà una coppia maggiore di quella nominale del 40%. Il rotore si posizionerà nelle zone intermedie rispetto a quando pilotiamo in wave-mode. Il consumo di corrente e di conseguenza il riscaldamento dello stepper raddoppiano.

  • Half-Step
FASE AVVOLGIMENTO
1 1
2 1 1
3 1
4 1 1
5 1
6 1 1
7 1
8 1 1

Questa tecnica consiste nel utilizzare le due tecniche precedenti per aumentare il numero degli step possibili. Il problema è che quando pilotiamo in wavemode avremo coppia 1 mentre quando piloteremo in halfstep avremo coppia 1.4. Per avere una coppia omogenea dovremo diminuire il valore di corrente durante il Two-phase on circolante sui 2 avvolgimenti.
Se durante la fase di Two-phase forniamo una diversa alimentazione agli avvolgimenti, potremo far fare al rotore ulteriori passi.

Velocità

Il problema maggiore degli stepper è la velocità massima, ci sono vari espedienti per aumentare questo valore ma quello più usato è il pwm con un valore di tensione maggiore di quello nominale. Facendo in questo modo la corrente all'interno della bobina salirà più velocemente e quindi il ritardo introdotto dalla bobina diminuirà.

Circuiti per pilotare uno stepper

Gli integrati che si usano più frequentemente per pilotare uno stepper sono dei doppi ponti H come ad sempio: SN754410, L293, L298 ecc ecc.
In figura un esempio di ponte H
ponteh
Il ponte H serve ad alimentare una fase dello stepper, quindi per poter pilotare questo motore correttamente ne serviranno due. Chiudendo i due interruttori 1 e 4 e lasciando aperti 3 e 2, la corrente percorrerà l'avvolgimento in un verso, mentre chiudendo gli interruttori 3 e 2 e lasciando aperti 1 e 4, la corrente percorrerà l'avvolgimento nell'altro verso. Naturalmente queste coppie di interruttori vengono pilotate contemporaneamente quindi da questo ponte H usciranno 2 fili.
Gli integrati che ho elencato sopra sono diversi l'uno dall'altro perchè ad esempio L293 e L298 sono senza diodi interni di protezione quindi andranno messi esterni, mentre SN754410 ha i diodi integrati all'interno.
In foto un esempio di come collegare arduino all'SN754410 e allo stepper
stepper 4 fili
In questo caso potrete usare la libreria stepper per farlo muovere. Come vedete dal disegno SN754410 ha bisogno di un alimentatore esterno, oppure potrete alimentare arduino con un alimentatore esterno e collegare il pin VIN di arduino al pin 8 dell'sn754410.
Provate questo sketch:
#include
//definisce il numero di step dello stepper
#define STEPS 100
//crea un istanza della libreria stepper e
//definisce lo stepper con il numero di step e a quali pin
// è collegato.
Stepper stepper(STEPS, 12, 11, 10,9);
void setup()
{
// setta la velocità a 30 RPMs
stepper.setSpeed(30);
}
void loop()
{
//lo stepper farà 100 step in un senso
stepper.step(100);
delay(100);
//lo stepper farà 100 step nell'altro senso
stepper.step(-100);
delay(100);
}
E' possibile, sempre con la stessa libreria, pilotare uno stepper con 2 fili, ma il circuito cambierà un po'. Avrete bisogno di due transistor npn (bc337 o 2n222) e di 4 resistenze. Seguite lo schema seguente:
stepper 2 fili

Dovrete semplicemente cambiare un'istruzione nello sketch precedente, alla linea 8. invece di definire lo stepper  Stepper stepper(STEPS, 12, 11, 10,9); definitelo come Stepper stepper(STEPS, 12, 11, 10,9); ed il gioco è fatto.
Buon divertimento.

Conclusioni

I motivi per cui usare uno stepper sono:

  • Non introduce nessun rumore dovuto a contatti striscianti sulle altre linee .
  • Facile da raffreddare
  • Robustezza
  • corrente e coppia lineari
  • sincrono

Vi allego alcuni video che ho fatto quando movimentavo alcuni stepper.
Questo stepper si muove grazie al secondo circuito, mentre questo si muove grazie al primo.

Bibliografia

[1] http://www.cyberhs.it/
[2] wikipedia

CC

 

Gioblu Robotics © 2010 - 2012 · Sitemap · privacy

gioscarab@gmail.com

Gioblu BOTServer è online dal 10 Aprile 2010 - 319.232 Visite - 1.027.175 Pagine visualizzate - 182.309 Visitatori unici - 536 utenti attivi