Finita la serie di articoli sui Giochi di luce con Arduinoecco un articolo sui motori passo-passo. E’ molto tempo che non mi occupavo di motori passo-passo ed erano rimasti esclusi i motori bipolari.
Iniziamo subito riprendendo un mio precedente articolo in cui hai imparato a riconoscere i motori di tipo passo-passo. Dopo averli riconosciuti avrai letto come pilotare i motori di tipo unipolare, ma se hai riconoscuito che il tuo motore è di tipo bipolare, probabilmete ti sei chiesto … e adesso come lo piloto questo?
Ecco quindi un articolo su come pilotare i motori passo-passo bipolari.
I motori passo-passo bipolari di base presentano 4 avvolgimenti collegati come in figura, questo significa che se hai un motore a 5 o 6 fili puoi utilizzarlo come bippolare, facendo una forzatura e non utilizzando i 2 comuni, o se hai un motore a 8 fili puoi eseguire i collegamenti tra gli avvolgimenti per poterlo utilizare come bipolre.
A questo punto ti occorre un driver per pilotare questo tipo di motori, sul sito ufficiale Arduino ho trovato una pagina interessante, in cui sono rappresentati due integrati o driver utilizzabili per pilotare questi motori, per semplicità elettronica, non ci sono componenti extra da utilizzare, io ho deciso di utilizzare l’integrato SN754410NE:
Realizzandolo su di una breadboard puoi seguire i collegamenti come nelle figre sotto:
Collega i pin 4,5,12 e 13 a massa (GND), il pin 16 a Vcc (+5v) ed i pin 1 e 9 ai +5v ricordando che questi ultimi due sono l’enable del primo e del secondo avvolgimento, per cui potresti decidere di pilotarli con un segnale digitale da Arduino, per semplicità nello schema sono collegati al +5v ossia sempre abilitati.
Avrai notato che anche il pin 8 è connesso al +5v, questo pin dell’SN754410NE è destinato all’alimentazione esterna del motore, per cui se il tuo motore stepprer funziona a 12v è a questo pin che dovrai connettere tale alimentazione, nel mio esempio ti indico di connetterlo ai +5v perchè io ho utilizzato un motore funzionante a tale voltaggio.
Ed ecco come collegare l’SN754410NE ad Arduino, come anticipavo se anche il tuo circuito funziona a 5v collegherai il positivo ai +5v ed il negativo a massa (GND) di Arduino. Se non hai un circuito in funzione a 5v ricordati di collegare i +5v di arduino ai pin 1,9 e 16 e il pin 8 all’alimentazione esterna; Il negativo del cirduito devi collegarlo sia al GND di Arduino sia al negativo dell’alimentazione esterna, altrimenti non otterrai nessun movimento del motore.
Passa a collegare ad uno ad uno i pin di INPUT dell’SN754410NE ad Arduino, rispettivamente 7,2,10 e 15 del driver sui pin 8,9,10 e 11 di Arduino, come nelle figure seguenti:
Non ti resta che collegare il motore passo-passo al driver, prima di eseguire il collegamento dobrai aver chiaro quali siano i due distinti avvolgimenti del motore, se hai letto i miei articoli non avrai problemi di alcun genere, non potrai tuttavia determinare quale terminale del primo avvolgimento sia A+ e quale A- così anche per il secondo, occorreranno alcune prove invertendo i collegamenti mentre Arduino è in funzione, per determinare quali siano i pin corretti.
Non scoraggiarti se ti è chiaro come funziona un motore bipolare non ci metterai molto a capirlo, io ho impiegato poche decine di secondi, e ti consiglio di eseguire i test una coppia alla volta per non fare confusione.
Ecco come collegarli:
Se tutto è collegato correttamente quando caricherai lo sketch su Arduino vedrai muoversi il tuo motore passo-passo bipolare.
In questo articolo lo sketch lo pubblico per non asciarti in sospeso il lavoro e per farti verificare subito che tutto funziona, lasciandoti ai tuoi esperimenti per determinare come sono collegati gli avvolgimenti del motore, nel prossimo articolo analizzerai linea per linea lo sketch comprendendone il funzionamento.
Ecco lo sketch:
int motorPin1 = 8; int motorPin2 = 9; int motorPin3 = 10; int motorPin4 = 11; int delayTime = 100; void setup() { Serial.begin(9600); pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); } void loop() { digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay(delayTime); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay(delayTime); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay(delayTime); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(delayTime); }
Buon lavoro.
Prima di inserire un commento, per favore, leggi il regolamento
105 pings
Skip to comment form
[…] Mauro Alfieri Tweet Nel precedente articolo hai imparato come funziona un motore bipolare, e forse hai già sperimentato lo sketch di esempio […]
[…] Tweet Pilota un motore passo-passo con due interruttori. Nei precedenti articoli hai imparato a collegare e regolare la velocità di un motore passo-passo bipolare con […]
[…] Ovviamente utilizzare la libreria Stepper.h rende le cose davvero più semplici, di contro se vuoi capire quale sia il principio di funzionamento di un motore stepper, ti consiglio di partire dal primo articolo sull’argomento. […]
[…] il collegamento del motore all’SN754410NE ed Arduino puoi leggere l’articolo: Motori passo-passo bipolari con Arduino – prima parte in cui ho scattato delle foto passo dopo passo su come eseguire il […]