- Motori passo-passo:
- Calcolo dei passi per giro per il motore passo-passo:
- Perché quindi abbiamo bisogno di moduli driver per motori passo-passo?
- Schema e spiegazione del circuito di controllo della posizione del motore passo-passo Arduino:
- Codice per la scheda Arduino:
- Funzionamento del motore passo-passo con Arduino:
I motori passo-passo stanno prendendo sempre più posizione nel mondo dell'elettronica. Partendo da una normale telecamera di sorveglianza a complicate macchine / robot CNC, questi motori passo-passo vengono utilizzati ovunque come attuatori poiché forniscono un controllo accurato. Un motore passo-passo è un motore sincrono senza spazzole che completa una rotazione completa in una serie di passaggi. In questo tutorial sul motore passo-passo Arduino impareremo a conoscere il motore passo-passo più comunemente disponibile 28-BYJ48 e come interfacciarlo con Arduino utilizzando il modulo motore passo-passo ULN2003.
Motori passo-passo:
Diamo un'occhiata a questo motore passo-passo 28-BYJ48.
Ok, quindi a differenza di un normale motore CC, questo ha cinque fili di tutti i colori fantasiosi che ne escono e perché è così? Per capirlo dobbiamo prima sapere come funziona uno stepper e qual è la sua specialità. Prima di tutto i motori passo-passo non ruotano, scorrono e quindi sono noti anche come motori passo-passo. Significa che si muoveranno solo un passo alla volta. Questi motori hanno una sequenza di bobine presenti in essi e queste bobine devono essere eccitate in un modo particolare per far ruotare il motore. Quando ogni bobina viene eccitata il motore fa un passo e una sequenza di eccitazione farà compiere al motore passi continui facendolo ruotare. Diamo uno sguardo alle bobine presenti all'interno del motore per sapere esattamente da dove provengono questi fili.
Come puoi vedere, il motore ha una bobina unipolare a 5 conduttori. Ci sono quattro bobine che devono essere eccitate in una sequenza particolare. I fili rossi verranno forniti con + 5V e i restanti quattro fili verranno tirati a terra per attivare la rispettiva bobina. Usiamo un microcontrollore come Arduino per eccitare queste bobine in una sequenza particolare e fare in modo che il motore esegua il numero di passaggi richiesto.
Allora, perché questo motore si chiama 28-BYJ48 ? Sul serio!!! Non lo so. Non vi è alcun motivo tecnico per cui questo motore sia stato chiamato così; forse dovremmo immergerci molto più a fondo. Vediamo alcuni dei dati tecnici importanti ricavati dalla scheda tecnica di questo motore nella foto qui sotto.
Questa è una testa piena di informazioni, ma dobbiamo esaminarne alcune importanti per sapere quale tipo di stepper stiamo utilizzando in modo da poterlo programmare in modo efficiente. Per prima cosa sappiamo che è un motore passo-passo da 5V poiché eccitiamo il filo rosso con 5V. Quindi, sappiamo anche che si tratta di un motore passo-passo a quattro fasi poiché aveva quattro bobine. Ora, il rapporto di trasmissione è 1:64. Ciò significa che l'albero che vedete all'esterno farà una rotazione completa solo se il motore all'interno ruota per 64 volte. Ciò è dovuto agli ingranaggi che sono collegati tra il motore e l'albero di uscita, questi ingranaggi aiutano ad aumentare la coppia.
Un altro dato importante da notare è l' angolo di falcata: 5.625 ° / 64. Ciò significa che il motore, quando funziona in una sequenza di 8 fasi, si muoverà di 5,625 gradi per ogni fase e saranno necessari 64 passaggi (5,625 * 64 = 360) per completare una rotazione completa. Puoi saperne di più sul funzionamento dei motori passo-passo con ARM LPC2148, microcontrollore ATMega16, MSP430.
Calcolo dei passi per giro per il motore passo-passo:
È importante sapere come calcolare i passi per giro del tuo motore passo-passo perché solo così potrai programmarlo in modo efficace.
In Arduino opereremo il motore in sequenza a 4 fasi, quindi l'angolo di falcata sarà di 11,25 ° poiché è 5,625 ° (dato nella scheda tecnica) per la sequenza a 8 passi sarà 11,25 ° (5,625 * 2 = 11,25).
Passi per giro = 360 / angolo di passo
Qui, 360 / 11,25 = 32 passi per giro.
Perché quindi abbiamo bisogno di moduli driver per motori passo-passo?
La maggior parte dei motori passo-passo funzionerà solo con l'aiuto di un modulo driver. Questo perché il modulo controller (nel nostro caso Arduino) non sarà in grado di fornire abbastanza corrente dai suoi pin I / O per il funzionamento del motore. Quindi useremo un modulo esterno come il modulo ULN2003 come driver del motore passo-passo. Esistono molti tipi di moduli driver e il valore di uno cambierà in base al tipo di motore utilizzato. Il principio principale per tutti i moduli driver sarà quello di generare / assorbire corrente sufficiente per il funzionamento del motore.
Schema e spiegazione del circuito di controllo della posizione del motore passo-passo Arduino:
Lo schema del circuito per il progetto di controllo del motore passo-passo arduino è mostrato sopra. Abbiamo utilizzato il motore passo-passo 28BYJ-48 e il modulo driver ULN2003. Per eccitare le quattro bobine del motore passo-passo stiamo usando i pin digitali 8,9,10 e 11. Il modulo driver è alimentato dal pin 5V della scheda Arduino.
Ma, alimenta il driver con un alimentatore esterno quando colleghi un carico al motore steppa. Dato che sto usando il motore solo a scopo dimostrativo, ho usato il binario + 5V della scheda Arduino. Ricorda inoltre di collegare la massa di Arduino con la massa del modulo Diver.
Codice per la scheda Arduino:
Prima di iniziare a programmare con il nostro Arduino, cerchiamo di capire cosa dovrebbe effettivamente accadere all'interno del programma. Come detto in precedenza, utilizzeremo il metodo della sequenza in 4 fasi, quindi avremo quattro passaggi da eseguire per eseguire una rotazione completa.
Passo |
Pin eccitato |
Bobine eccitate |
Passo 1 |
8 e 9 |
A e B |
Passo 2 |
9 e 10 |
B e C |
Passaggio 3 |
10 e 11 |
C e D |
Passaggio 4 |
11 e 8 |
D e A |
Il modulo Driver avrà quattro LED che ci consentono di controllare quale bobina viene eccitata in un dato momento. Il video che mostra la sequenza di energizzazione si trova alla fine di questo tutorial.
In questo tutorial andremo a scrivere il codice del motore stepper arduino e per questo programmeremo Arduino in modo tale da poter inserire il numero di passi che devono essere compiuti dal motore stepper tramite il monitor seriale di Arduino. Il programma completo si trova alla fine del tutorial, alcune righe importanti sono spiegate di seguito.
Il numero di passi per giro per il nostro motore passo-passo è stato calcolato essere 32; quindi lo inseriamo come mostrato nella riga sottostante
#define PASSAGGI 32
Successivamente devi creare istanze in cui specifichiamo i pin a cui abbiamo collegato il motore Stepper.
Stepper stepper (STEPS, 8, 10, 9, 11);
Nota: il numero di pin è disordinato come 8,10,9,11 di proposito. Devi seguire lo stesso schema anche se cambi i pin a cui è collegato il tuo motore.
Poiché stiamo utilizzando la libreria stepper di Arduino, possiamo impostare la velocità del motore utilizzando la riga sottostante. La velocità può variare da 0 a 200 per i motori passo-passo 28-BYJ48.
stepper.setSpeed (200);
Ora, per far muovere il motore di un passo, possiamo usare la seguente riga.
stepper.step (val);
Il numero di passi da spostare sarà fornito dalla variabile “val”. Poiché abbiamo 32 passi e 64 come rapporto di trasmissione, dobbiamo muoverci di 2048 (32 * 64 = 2048), per fare una rotazione completa.
Il valore della variabile “val” può essere inserito dall'utente utilizzando il monitor seriale.
Funzionamento del motore passo-passo con Arduino:
Una volta stabilita la connessione, l'hardware dovrebbe essere simile a questo nell'immagine sottostante.
Ora carica il programma seguente nel tuo Arduino UNO e apri il monitor seriale. Come discusso in precedenza, dovremo fare 2048 passi per fare una rotazione completa, quindi quando entriamo in 2048 il motore farà una rotazione completa in senso orario facendo 2048 passi. Per ruotare in senso antiorario è sufficiente inserire il numero con il segno negativo “-“. Quindi, inserendo -1024 il motore ruoterà per metà in senso antiorario. È possibile inserire qualsiasi valore desiderato, come se si immettesse 1, il motore eseguirà un solo passaggio.
Spero che tu abbia capito il progetto e ti sia piaciuto realizzarlo. Il funzionamento completo del progetto è mostrato nel video sottostante. Se hai dei dubbi, pubblicali nella sezione commenti sotto il nostro sui nostri forum.