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
  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/motori-passo-passo-pilotarli-con-arduino.html

28 commenti

1 ping

Vai al modulo dei commenti

    • wajdi il 2 Gennaio 2012 alle 12:55
    • Rispondi

    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 il 16 Gennaio 2012 alle 17:18
    • Rispondi

    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 il 23 Maggio 2012 alle 20:25
    • Rispondi

    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 il 24 Maggio 2012 alle 00:22
    • Rispondi

    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: https://www.mauroalfieri.it/elettronica/motori-passo-passo-come-riconoscerli.html

    • Artemis il 30 Maggio 2012 alle 23:03
    • Rispondi

    Grazie Mauro!

    • nick2000 il 27 Marzo 2013 alle 13:36
    • Rispondi

    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 il 1 Aprile 2013 alle 15:22
    • Rispondi

    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 il 2 Aprile 2013 alle 09:25
        • Rispondi

        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 il 2 Aprile 2013 alle 13:10

            Ok, grazie…molte

            buona giornata, RA

    • piero solidoro il 2 Luglio 2013 alle 18:50
    • Rispondi

    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 il 31 Dicembre 2015 alle 16:25
    • Rispondi

    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: https://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 il 5 Gennaio 2016 alle 16:11
        • Rispondi

        Ok, grazie lo stesso.

    • luisella il 25 Gennaio 2016 alle 14:28
    • Rispondi

    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 il 26 Gennaio 2016 alle 10:04
        • Rispondi

        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 il 26 Gennaio 2016 alle 10:10
        • Rispondi

        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

Il tuo indirizzo email non sarà pubblicato.

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