Come pilotare i motori passo passo con Arduino
Introduzione
Quando si parla di Arduino, subito può venire in mente l'automazione e in questa branchia della tecnologia, il controllo dei motori è un argomento molto importante, che spesso trova impiego nelle più svariate applicazioni. Molte volte, col micro controllore made in Italy, si usano i cosiddetti "servo motori" con l'apposita libreria, ma può essere necessario governare motori più potenti, come quelli in continua, però allo stesso tempo molto precisi come i suddetti servo. In questo caso, i motori "passo passo", o in inglese "step motors", sono la soluzione migliore. Ecco allora come pilotare i motorini passo passo con Arduino.
Occorrente
- Connessione Internet
- Computer
- Scheda driver
- Resistori di rilevamento
- Arduino
Il motorino unipolare
Esistono due grandi famiglie di step motors: unipolari e bipolari. I primi sono più facili da governare ma hanno più pin, i secondi richiedono l'utilizzo di correnti inverse riducendo i pin. Nell'articolo si vedrà il controllo con Arduino solo dei primi, in quanto sono molto più facili e molto più usati. Il motorino passo passo unipolare si presenta con 5 o 6 fili: 4 collegati alle fasi singolarmente e i restanti collegati a tutte le fasi. Di norma, ai fili in comune va data la massa (0V) e agli altri verrà data l'alimentazione tramite un transistor di potenza per ogni fase, ognuno attivato da un sistema di controllo, nel caso in questione, Arduino.
Il principio di funzionamento
Il principio di funzionamento è il seguente: per ottenere la rotazione bisognerà dare tensione in modo tale che in una sola fase per volta circoli corrente. Supponendo di avere le fasi "A - An - B - Bn" e supponendo l'alimentazione pari a GND = 0V e Vcc = 12V, si avrà: istante 1 "A (Vcc) - An (GND) - B (GND) - Bn (GND)"; istante 2 "A (GND) - An (Vcc) - B (GND) - Bn (GND)"; istante 3 "A (GND) - An (GND) - B (Vcc) - Bn (GND)"; istante 4 "A (GND) - An (GND) - B (GND) - Bn (Vcc)". Tutto questo riguarda un senso di rotazione, per commutare il senso basterà invertire l'ordine di attivazione.
La programmazione
Adesso si dovrà semplicemente tradurre questo principio su Arduino. Nulla di complicato per chi sa già accendere un led, in quanto si tratta semplicemente di attivare o disattivare uscite digitali. Aprendo l'IDE, basterà copiare il semplice programma per programmare la rotazione nel senso che, convenzionalmente, definiremo positivo. Questo è già un driver a tutti gli effetti per il proprio step motor. Collegando il motorino nel modo illustrato in figura con i transistor e le resistenze, oltre al micro controllore; basterà alimentare Arduino da PC e il motorino con un alimentatore apposito per vederlo ruotare.
La scheda driver
Esistono diversi modi per far funzionare un motore con Arduino, il tutto dipende dal motore e dall'elettronica disponibile. Una scheda driver Darlington ULN2003, generalmente è venduta con piccoli stepper a ingranaggi, questo richiede quattro pin digitali e Arduino deve guidare direttamente ogni bobina. Una scheda driver / schermo con un driver a tensione costante, come Adafruit Motor Shield, funziona su SPI (quindi ha bisogno solo di due pin) e può far girare molti tipi di stepper e motori normali. Un driver 'chopper' varia la tensione per mantenere una corrente costante, come il chip A4988 o DRV8825, direttamente o tramite una scheda / schermo come Stepstick o Pololu. La corrente nominale è la corrente massima che utilizza. La tensione si calcola attraverso una corrente costante in rapporto alla corrente nominale, per la resistenza dei motori (V = I x R, V = 2.0A x 1,4 Ohm = 2,8 V).
I collegamenti e i driver
Lo schermo del motore di Adafruit non può fornire 2 A e ha problemi con tensioni inferiori a circa 5 V. Per usare un motore Arduino correttamente, sono necessari 4 collegamenti contrassegnati con 1A, 1B e 2A, 2B. Collegare la prima bobina 1A e 1B e la seconda bobina a 2A e 2B. Quando il pin viene abbassato, la scheda viene abilitata e il motore energizzato. Quando è impostato alto, la scheda è disabilitata e il motore è diseccitato.
Imposta la corrente massima per evitare danni al chip del driver, utilizza circuiti per limitare la corrente massima che può essere utilizzata. Questo viene impostato tramite il resistore regolabile sulla scheda, in collaborazione con alcuni degli altri componenti, i resistori di rilevamento (S1 e S2) e il resistore (R1). Poiché i diversi driver possono avere componenti diversi (in particolare le importazioni cinesi generiche) è meglio controllare questi valori prima di continuare.
Guarda il video
Consigli
- IImposta la corrente massima per evitare danni al chip del driver, utilizza circuiti per limitare la corrente massima che può essere utilizzata