«

»

gen 09

Motori passo-passo bipolari con Arduino – prima parte

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.

Motore passo-passo a 4 fili

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:

motori bipolari stepper a  quattro pin SN754410NE

Realizzandolo su di una breadboard puoi seguire i collegamenti come nelle figre sotto:

Motori bipolari primi collegamenti SN754410NE

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.

Motori bipolari alimentazione SN754410NE

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:

Motori bipolari pin 8 Arduino su SN754410NE

Motori bipolari pin 9 Arduino su SN754410NE

Motori bipolari pin 10 Arduino su SN754410NE

Motori bipolari pin 11 Arduino su SN754410NE

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:

Motori bipolari collegare la Fase A

Motori bipolari collegare la Fase B

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.

Important!


Ti è stato utile questo articolo?
Sostienimi cliccando sugli sponsor, io potrò continuare ad acquistare materiale per scrivere articoli e aiutarti nei tuoi progetti.

Basta un solo click al giorno.

Be Sociable, Share!

16 comments

4 pings

  1. Salvatore

    Ho letto con interesse il articolo e vorrei provare a realizzare il controller.

    Al momento non riesco a reperire un integrato SN754410NE ma ho a disposizione un L293NE
    Che tu sappia é funzionalmente equivalente? richiede accortezze particolari?

    1. Mauro Alfieri

      Ciao Salvatore,
      l’SN754410NE non è di facilissimo reperimento, io l’ho ordianto da Farnell.
      Ho recuperato il datasheet del L293D:
      http://www.datasheetcatalog.org/datasheets/90/69628_DS.pdf
      non ho trovato l’L293NE, in ogni caso a meno di qualche collegamento differente tra i due tipi dovrebbe andar bene.

      Sicuramente un’accortezza è quella di controllare l’assorbimento delle fasi e verificare che non assorbano più di quello che l’integrato può erogare, ed in ogni caso prevedere una aletta di raffreddamento adeguata.

      Lascio ad altri utenti del blog l’invito a correggere o integrare con le proprie conoscenze ed esperienza sull’argomento.

      Ciao
      Mauro

  2. Salvatore

    Quello che mi hai indicato penso proprio sia il datasheet di tutta la famiglia di integrati L293.

    Guardando ancora un po’ in rete ho trovato quanto segue

    D = diode

    L293D has output clamping diodes for inductive transient suppression while the L293NE does not. Since you’re going to drive a motor you will want to use clamping diodes to avoid inductive spikes from the motor killing the output transistors in the chip.

    If you can only find the L293NE you can add your own diodes. See the datasheet for how they are connected.

    Secondo te posso usare l’IC senza diodi per fare qualche test o ci vogliono? E nel caso che diodi? Uno per ogni uscita verso i motori? Grazie.

  3. Manuel

    Salve io vorrei sapere un’informazione devo attaccare 5 motori passo passa con questo integrato: SN754410ne su arduino peró ci sono riuscito solo con un motore. Ho provato ha copiare il listato uno sotto l’altro per 5 volte ovviamente cambiando le uscite ma niente come posso fare Per risolvere ????? Grazie

    1. Mauro Alfieri

      Ciao Manuel,
      come hai collegato i 5 integrati? Tutti in parallelo?

      Mauro

  4. gabriele

    ho recuperato unb motore della ventola dell’unità esterna di un condizionatore. pensavo ne uscissero tre fili,i soliti ma ne escono ben 5,due bianchi,un rosso ,un blu,un giallo.provando col tester tutti e cinque risultano collegati agli altri,cioè hanno continuità.(spero di usare termini giusti).come faccio a farlo funzionare collegandolo ai normali tre fili(fase,neutro,terra,)?per favore mi risponda alla mail…grazie

    1. Mauro Alfieri

      Ciao Gabriele,
      prima di tutto devi capire ne tipo di motore sia, da come scrivi sembra un passo-passo unipolare, nel blog trovi tutti gli articoli per “riconoscere i motori passo-passo” prova a leggerne qualcuno.
      Un motore passo-passo quando fai ruotare l’alberino a mano e senza alimentazione lo senti spostarsi a piccoli scattileggeri, non in modo fluido.

      Se si tratta di un passo-passo non puoi collegarlo con 3 fili. Prova a documentarti nel blog.

      P.S. Non mettere la tua email come testo dei commenti, mi arriva già compilando il campo email. in un commento rischi che malintenzionati la prendano per inviarti spam :-)

  5. Fabio

    Ciao Mauro, volevo chiederti una cosa, ma si può utilizzare un’altro integrato oltre a questo? Se si, quale? Grazie

    1. Mauro Alfieri

      Ciao Fabio,
      si, é possibile di integrati adatti ad essere usati come driver di potenza per motori passo passo c’è ne sono migliaia.

      La Motor shield Fe usa ad esempio un L298p ed io ho scritto dei tutorial per pilotar i motori passo passo.

      Puoi anche leggere l’articolo di settimana scorsa sul l’easydriver prodotto sparkfun e distribuito sul sito robot-domestici.

      Ci sono poi i driver della pololu, se cerchi in un sito di elettronica e robotica come quello indicato sopra ne troverai tanti altri.

      Mauro

      1. Fabio

        Ok, capito, grazie :)

  6. Leandro

    Ciao MAuro, ho seguito con molta attenzione tutti i tuoi tutorial sul pilotaggio dei motori passo passo e li ho trovati molto interessanti.
    Purtroppo io sono in possesso di un motore passo passo bipolare che richiede una tensione di alimentazione di 2,8 V. Sarebbe possibile pilotarlo utilizzando il driver SN754410NE?
    Che differenza c’è con il drivere L293DNE?
    Sei per caso a conoscenza di qualche sito dove poter eventualmente reperire delle informazioni per potersene realizzare uno da soli utilizzando componenti discreti?
    Grazie
    Saluti

    1. Mauro Alfieri

      Ciao Leandro,
      ho dato un occhio ai datasheet dei due integrati, entrabi doppio ponte-H, il motore che tu possiedi ha una tensione di alimentazione molto bassa ma la caratteristica che dovresti valutare è la corrente ( A ) assorbita, è in funzione della corrente puoi definire che tipo di integrato ti occorre.

      In merito al circuito, sul mio blog ci sono alcuni circuiti per l’SN754410NE realizzati non solo da me, poi puoi seguire i circuiti descritti nei datasheet e valutare se un EasyDriver può fare al caso tuo con pochi euro è già realizzato e sul blog trovi dei codici per utilizzarlo.

      Mauro

      1. Leandro

        Ciao Mauro,
        grazie mille per la risposta.

        La mia perplessità maggiore era proprio quella di riuscire a capire se gli integrati indicati erano in grado di fornire in uscita i 2,8 V necessari, perchè sui datasheet mi è parso di capire che in uscita non si può scendere sotto i 4,5 V. Oltretutto non saprei come collegare il piedino corrispondente dell’integrato visto che la scheda arduino uno non fornisce 2,8 V in uscita ma solo 5 o 3,3.
        Non so proprio come fare….

        1. Mauro Alfieri

          Ciao Leandro,
          i 2,8v come tutte le tensioni per alimentare i motori passo-passo con gli integrati SN754410NE o L293 deve essere esterna.
          La funzione di tali integrato è proprio alimentare separatamente i motori passo-passo, arduino non ha sufficente corrente per alimentare i motori sopratutto sotto sforzo.

          Resta valido che se non sai quanto assorbe ogni motore è impossibile definire alcun tipo di controllo.

          Mauro

  7. Albano

    Ciao Mauro

    Volevo chiedere quanti ampere per fase (massimi) di un passo-passo puo soportare l’integrato SN754410NE
    e visto che è di difficile reperimento se si puo al suo posto usare EASY DRIVER e come si collega ad ARDUINO ed al motore senza pulsanti (come in uno dei tuoi tutor) per girare diciamo ad 1/2 passo.
    Grazie!

    1. Mauro Alfieri

      Ciao Albano,
      si puoi sostituire l’SN754410NE con l’Easy Driver.
      Trovi alcuni articoli sul blog dedicati a questo driver per motori passo-passo.
      Tra gli ultimi articoli c’è anche come utilizzare l’easy driver con il 1/2 passo, 1/4 di passo, 1/8 di passo.

      Buona lettura
      Mauro

  1. Mauro Alfieri » Blog Archive » Motori passo-passo bipolari con Arduino – seconda parte

    [...] Mauro Alfieri Tweet Nel precedente articolo hai imparato come funziona un motore bipolare, e forse hai già sperimentato lo sketch di esempio [...]

  2. Mauro Alfieri » Blog Archive » Motori passo-passo bipolari comandati da interruttori – prima parte

    [...] 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 [...]

  3. Mauro Alfieri » Blog Archive » Come eccitare un motore passo passo bipolare – terza parte

    [...] 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. [...]

  4. Mauro Alfieri » Blog Archive » Motori passo-passo bipolari con Arduino controlla la velocità

    [...] 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 [...]

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>