Motori passo-passo    stepping motor

Sono utilizzati nelle stampanti a getto d’inchiostro, stampanti laser, stampanti 3D, negli scanner, nei CNC, nei robot industriali e in tutti i dispositivi che necessitano di un movimento preciso e stabile.

A differenza dei motori DC, che girano velocemente in una direzione o nell’altra, i motori passo-passo, si spostano lentamente con precisione e forza; questi spostamenti si chiamano passi (step).

Ci sono due tipi di motori passo-passo (stepping motor): unipolari e bipolari, si riconoscono dal numero di fili collegati al motore, 5 o 6 fili è unipolare, 4 fili è bipolare, quest’ultimi sono più potenti; si spostano con precisione e ripetibilità da un punto al successivo, rimanendo saldamente fermi, nella posizione in cui si trovano.

I motori passo-passo, sono caratterizzati dal movimento che avviene per passi; un tipico motore passo-passo ha 200 passi (step) per giro (360°), pertanto si sposterà di 1,8 gradi ogni passo.

Il numero di step dipende dal numero dei magneti e delle bobine.

per pilotare un motore stepper unipolare, servono solo 4 resistenze, 4 transistor in configurazione Darlington e altrettanti diodi di protezione.

Motori passo passo

I motori passo-passo bipolari, sono difficili da gestire, perché per farli muovere è necessario invertire la polarità di alimentazione delle bobine seguendo una precisa sequenza.

Generazione dello “step”

Quando una bobina è alimentata, il magnete del rotore sarà attratto in questa direzione, togliendo l’alimentazione a questa bobina e alimentando l’altra, il magnete sarà attratto verso quest’ultima. Alimentando nuovamente la prima bobina con polarità invertita, il magnete sarà attratto da questa, di seguito si toglie l’alimentazione alla bobina e si alimenta la seconda con polarità invertita, di nuovo il magnete seguirà quest’ultima, così di seguito passo dopo passo.

Oltre ai driver H-bridge, ci sono diversi circuiti integrati progettati per controllare i motori passo-passo che contengono all’interno transistor in configurazione Darlington (serie ULN 2002,2003,2004)

Senza utilizzare un microprocessore o Arduino, queste operazioni si possono fare utilizzando la coppia di circuiti integrati L297 (logica di controllo) e L298 (driver di potenza).

Seguendo opportune sequenze è possibile muovere il motore di mezzo passo, ad esempio alimentando le bobine contemporaneamente, il magnete si sposterà al centro delle due bobine.

Controllo della velocità di un motore passo-passo che cambia la direzione del movimento quando la barra rossa, tocca un microswitch.

Variabili di progetto.

  • ADC: variabile di tipo Byte, controlla il Delay, che fa aumentare o diminuire la velocità del motore.
  • SW1: variabile di tipo Bool, che contiene il valore, vero o falso, del microswitch 1.
  • SW2: variabile di tipo Bool, che contiene il valore, vero o falso, del microswitch 2.
Motori stepper variabili

Proprietà degli oggetti inseriti nel 3D System panel.

  • Stepper_generic: il collegamento delle bobine del motore passo-passo, è controllato dai pin 0,1,2 e 3 della porta B.
  • SW_micro_roller1: il microswitch 1 è connesso al pin 6 della porta B.
  • SW_micro_roller2: il microswitch 2 è connesso al pin 7 della porta B.
  • Pot_trim_finger1: il trimmer che regola la velocità è connesso all’ingresso analogico An0.
  • Shape1: la barra rossa è connessa, con target_object :shape1 nel pannello proprietà del motore passo-passo
Motori stepper oggetti proprietà

Diagramma di flusso

Motori stepper up

Per utilizzare il motore passo-passo è necessario abilitarlo, inserendo, all’inizio del programma, il Component Macro con la funzione EnableMotor.

Motori stepper enable

Ciclo principale.

Inserisco il Component Macro ADC=pot_trim_finger1::GetByte funzione della variabile ADC, che controlla il Delay della ripetizione del ciclo principale, che a sua volta controlla la velocità del motore, incrementando la rotazione di un passo in senso orario con il Component Macro, IncrementStep .

Motori stepper getbyte adc
Motori stepper incr decr

ADC + 5, serve per evitare la velocità eccessiva della simulazione del motore quando il trimmer è a zero.

Motori stepper delay

Se è premuto, B6->SW1, controlla se il microswitch collegato al pin 6 della porta B è premuto, e la funzione if SW1 fa eseguire il ciclo secondario.

La funzione Delay, controlla la velocità di rotazione del motore; qualora fosse necessario avere una velocità di ritorno, maggiore o minore rispetto alla rotazione in senso orario, è necessario introdurre una nuova variabile ADC2 da collegare a un secondo trimmer.

Motori stepper if sw1

Ciclo secondario: inversione del movimento.

Motori stepper down

Il Component Macro, stepper_generic::DecrementStep, inverte il senso di ritazione del motore passo_passo, ad ogni esecuzione del ciclo secondario.

B7-> SW2: controlla se il microswitch 2 è premuto, in tal caso la funzione if SW2, con la funzione goto Connection Point, rimanda il programma al Connection Point, invertendo il senso di rotazione.

Motori stepper if sw2
Motori stepper goto

rick 3Riccardo Monti