Motori passo-passo, pilotarli con arduino – prima parte

 

In questo articolo inzieremo a prendere confidenza con il pilotaggio dei motori passo-passo, ora che sappiamo riconoscerli.

Prima di partire facciamo la lista della spesa:

MINIBEA 200 step 0.44Auno o più motori passo-passo , io ho utilizzato i MINIBEA CO., LTD da 200passi e 0,44A

 

 

 

Arduino Uno
una scheda della famiglia Arduino Duemilanove ( in figura il nuovo modello della Arduino Uno )

 

 

 

 

ULN2003A
un integrato di tipo ULN2003A per ciascun motore che desideriemo utilizzare.

 

 

 

basetta prototipazione
una basetta ( Breadboard ) per prototipi, utilizzima in queste situazioni in cui quello che stiamo realizzando è temporaneo.

 

 

 

Cavi Breadboard
e dei cavi per breadboard, necessati ad eseguire i nostri collegamenti.

 

 

 

Su Arduino c’è poco, o molto, da dire, se non lo conosci ti suggerisco di visitare il sito ufficiale, o di ricercare in Google penso che come tutti noi appassionati rimarrai strabiliato delle sue potenzialità e della sua versatilità. Ed è un progetto tutto Italiano (orgoglio nazionale).

In merito all’integrato ULN2003A include un array di 7 transistor Darlington, ciascun transistor può gestire una corrente di 0,5A e tensioni fino a 50V; è di facile reperimento nei negozi di elettronica e il suo datasheet lo puoi trovare con una semplice ricerca.

Per questo articolo è tutto, puoi approfondire con ricerche su internet le caratteristiche dei componenti trattati, nelle prosime puntate vedremo:

  • schema di collegamento del nostro circuito
  • realizzeremo il circuito di test
  • scriveremo il codice per pilotare i motori
  • vedremo il risultato del nostro lavoro in un video

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/motori-passo-passo-pilotarli-con-arduino.html

28 comments

1 ping

Skip to comment form

    • wajdi on 2 gennaio 2012 at 12:55
    • Reply

    ciao,volevo farti un pò di domande ,avevo intenzione di autocostruirmi una fresa cnc amatoriale ma mi servirebbero i motori passopasso e la scheda elettronica peer comandarli, sapresti darmi qualche idea?

    1. Ciao,
      ti consiglio di cercare sul web informazioni su come è fatta una CNC, come funziona e le schede di gestione.
      Ce ne sono infinite e ognuna ha caratteristiche ottime, dipende olto da cosa vorrai realizzare, che tipo di materiali devi lavorare, che dimensione, quale precisione vuoi ottenere ecc…
      Sulle schede ci sono molte soluzioni, definite le caratteristiche descritte sopra potrai scegliere i motori e poi la scheda con cui realizzare il tutto.

      Ciao

    • mirko on 16 gennaio 2012 at 17:18
    • Reply

    ciao volevo farti una domanda mica si puo’ configurare il movimento di due motori passo passo attraverso i tasti direzionali del pc per eseguire un percorso stabilito??? grazie in anticipo

    1. Ciao Mirko, non so se definirla telepatia, proprio oggi sto srivendo il primo articolo su come utilizzare un tastierino a 4 puldanti per comandare un motore passo-passo.

      Buona lettura.

    • Artemis on 23 maggio 2012 at 20:25
    • Reply

    Ciao Mauro innanzitutto complimenti per i tuo esposti. Ti chiedo aiuto. Stavo provando a pilotare un motore passo passo unipolare con l’integrato ULN2003A, il motore però funziona a 12V (http://www.futurashop.it/index.html). Ho fatto tutti i collegamenti come i tuoi ma il motore non gira,ho provato a invertire le fasi e nulla.Però se lo utilizzo senza integrato(cioè collegando le uscite di Arduino direttamente al motore) il motore gira ma non rispetta i 7.5° del passo in quanto,credo, lo sto alimentando a 5V e quindi prende una corrente minore.
    Forse sbaglio in qualcosa?

    • Artemis on 24 maggio 2012 at 00:22
    • Reply

    scusa forse il link che ho mandato non è diretto, cmq il motore è a 6 fili 12V 200Ohm 48passi.
    Grazie

    1. Se il motore ha 6 fili devi collgare i due comuni assieme per usarlo come unipolare. Il fatto che non si muova con l’integrato può dipendere da:
      1. collegamenti errati;
      2. integrato collegato male ad Arduino;
      3. integrato rotto;
      Questo partendo dal fatto che se lo colleghi direttamente ad Arduino funziona, mi fa escludere che tu abbia sbagliato i collegamenti del motore, xchè li conosci e che il motore possa essere rotto.
      Tuttavia il fatto che salti qualche passo mi fa pensare che qualche terminale non è collegato in modo corretto.

      Ti consiglio di seguire il tutorial su come riconoscere i motori passo passo: http://www.mauroalfieri.it/elettronica/motori-passo-passo-come-riconoscerli.html

    • Artemis on 30 maggio 2012 at 23:03
    • Reply

    Grazie Mauro!

    • nick2000 on 27 marzo 2013 at 13:36
    • Reply

    ciao mauro,
    complimenti davvero per il blog!

    Precisamente, che tipo di motre passo passo hai usato per questo progetto?

    1. Ciao Nick,
      ho usato un passo-passo bipolare da 200step, smontato da una stampante se non ricordo male 🙂

      Mauro

    • roberto on 1 aprile 2013 at 15:22
    • Reply

    Ciao, e complimenti anche da parte mia per il blog.

    Ho una domanda, vorrei usare un motore passo-passo come motore principale di un vecchio giradischi (ha il motore originale bruciato)
    Innanzitutto ti sembra una buona idea ?

    Se si, hai qualche suggerimento o indicazione su dove trovarlo e quale tipo di motore serve ?
    A me servono circa 10W e 1400RPM.

    Grazie, Roberto.

    1. Ciao Roberto,
      ignoro come funzioni un giradischi, usano motori passo-passo?
      A mio avviso ti occorre un motore in cc con riduzione a 1400rpm.
      Il motore Stepper rischia di compromettere la fluidità del suono.

      Mauro

        • roberto on 2 aprile 2013 at 09:25
        • Reply

        Ciao e grazie per la risposta.
        I giradischi (vecchi) usavano motori AC a 2 o 4 poli con trazione su ruota gommata o tramite cinghia.
        Poi è stato il momento della trazione diretta, adesso sono tornati alla cinghia.

        Credo la tua soluzione sia la migliore, anche io pensavo ad un motore DC portato a 1400 giri con retroazione sulla velocità per stabilizzare il tutto.

        Hai da consigliarmi qualche negozio online affidabile?

        Grazie ancora, RA

        1. Ciao Roberto,
          io compro da robot-domestici.it e sono affidabili e seri.
          Dubito però abbiano un prodotto che fa al caso tuo, mi rivolgerei a qualche produttore diretto o in alternativa fai un giro alle fiere di elettronica, tra il surplus si trovano cose interessanti.

          Mauro

            • roberto on 2 aprile 2013 at 13:10

            Ok, grazie…molte

            buona giornata, RA

    • piero solidoro on 2 luglio 2013 at 18:50
    • Reply

    Ciao e complimenti.
    Subito al sodo:
    quanti motori passo passo riesco a pilotare con un singolo arduino? A me serve pilotarne 10; come devo affrontare il problema?

    1. Ciao Piero,
      dipende dal driver che usi e dal tipo di motore.
      Ci sono driver tipo l’EasyDriver o i pololu che con soli 2 pin pilotano un motore passo-passo bipolare.
      Arduino ha 14 pin utilizzabili per cui 10 li usi per i passi e 4 restano liberi per la direzione, ovviamente i pin di direzione dei 10 driver andranno collegati a soli 4 pin per cui alcuni motori dovranno per forza di cose a dare nella medesima direzione.

      Ti invito a leggere gli articoli sui driver per motori passo-passo.

      In alternativa c’é arduino Mega che ha 54 pin

      Mauro

  1. Vorrei realizzare un tester per motori stepper ma

    l’unico sketch che funziona purtroppo col mio hardware e’ “Motor Shield FE e
    motore bipolare con potenziometro” di cui allego file di testo.

    Dispongo di motori NEMA17-Minebea-Matsushita 17PM-K402-P4V acquistati su ebay rigenerati ma in ottime condizioni, fra l’altro possono funzionare sia come unipolari che bipolari.

    Ti chiedevo se si poteva aggiungere l’opzione per invertire il senso di
    rotazione con i pulsanti in quanto le guide nel blog non funzionano con lo
    shield in oggetto pur avendo ponticellato i pin riportati nel listato.

    [[ codice rimosso in automatico ]]

    Grazie Damiano.

    1. Ciao Damiano,
      in primo luogo, come scritto in fondo ad ogni articolo, è vietato inserire codici nei commenti, vengono rimossi.
      In secondo luogo se il codice è anche il mio è ridondante riportarlo, lo conosco già.
      I commenti servono a chiedere aiuto e chiarimenti.
      Per la tua richiesta ti consiglio di verificare le differenze tra questo sketch ed uno di quelli che ha le funzioni che desideri e adattare l’uno all’altro in autonomia. Come vedi ogni sketch è commentato linea per linea proprio per aiutarti nella realizzazione del tuo progetto.

    • Daniele on 31 dicembre 2015 at 16:25
    • Reply

    Ciao Mauro, tempo fa ti avevo chiesto, su questo sito, consigli per indiviuare le fasi in due motori passo-passo unipolari a 6 fili dei quali non conoscevo le fasi.
    (vedi: http://www.mauroalfieri.it/elettronica/motori-passo-passo-unipolari-riconoscerne-le-fasi-seconda-parte.html#comment-42707).

    Ora che li vorrei utilizzare in un progetto, A quale tensione potrei alimentarli? (la corrente probabilmente sarà di quache centinaia di mA).

    1. Ciao Daniele,
      ricordo la tua richiesta.
      Il voltaggio dei motori è un parametro che viene definito dal produttore del motore e non conosco dei metodi per ricavarlo.

        • Daniele on 5 gennaio 2016 at 16:11
        • Reply

        Ok, grazie lo stesso.

    • luisella on 25 gennaio 2016 at 14:28
    • Reply

    Salve, sto leggendo le varie pagine dedicate ai motori passo passo,
    infatti vorrei realizzare un robottino con arduino.
    L’obiettivo è costruire un semplice carrellino con 2 ruote motrici e un sistema sterzante.
    Quindi ho pensato di scegliere 2 motorini passo passo da collegare alle ruote
    L’intero sistema non deve sostenere un peso eccessivo, deve solo
    sostenere i pochi sensori collegati ad arduino, la batteria e forse una fotocamera.
    Mi potrebbe consigliare sia i motori che lei utilizzerebbe in questo caso e anche il tipo di batteria per alimentarli, grazie 1000

    1. Ciao Luisella,
      io non userei dei motori passo-passo, utili in tutt’altra applicazione, ma dei motori DC.
      Hai già letto gli articoli dedicati al Beginner Robot ?

        • luisella on 26 gennaio 2016 at 10:04
        • Reply

        grazie Mauro,
        perché dici che è meglio un motore DC?
        io ho un motore DC brushless che ho utilizzato con un ESC, per un precedente progettino, in cui ho costruito un hovercraft, però è molto rumoroso, mentre volevo qualcosa che potessi programmarlo per fare un percorso stabilito, dicendogli per esempio di fare un certo numero di passi, sapendo il rapporto tra numero di passi e distanza lineare e che fosse più silenzioso.
        Avrei individuato il motore 28BYJ-48 in un altro sito, che è unipolare con 5 fili, di cui uno per l’alimentazione e 4 che arrivano dalle bobine. Lo usano con il driver ULN2003.
        Si, forse si tratta di un motore un po’ limitato ….

        1. Ciao Luisella,
          perché non mi avevi descritto le particolarità che hai scritto in questo commento.
          In tal caso puoi optare per un passo-passo o per un DC con encoder.
          Ne esistono di molto silenziosi.

        • luisella on 26 gennaio 2016 at 10:10
        • Reply

        mi leggerò anche la sezione che hai suggerito, ma c’è un altro vantaggio con i motori passo passo: è che possono anche ruotare in senso inverso e se con una ruota vado avanti e l’altra indietro riesco a cambiare direzione facilmente, evitando il sistema sterzante, mentre con i motori che ho io, questo non è possibile: si può cambiare verso solo invertendo i fili, forse con uno switch…. non so, ma lo vedo più macchinoso o forse sbaglio, grazie

        1. Ciao Luisella,
          ti consiglio di leggere un po di articoli sui motori che ho scritto perché leggo che hai molta confusione sul funzionamento e sul tipo di controllo possibile con arduino o genuino.

  1. […] lo spazio del Blog è dedicato a Paolo Piras che con ingegno e seguendo i tutorial sui motori passo-passo ha realizzato la sua prima […]

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.