Tutorial: Easy Driver Arduino riduzione del passo

Se hai già letto il mio tutorial sull’EasyDriver sai di cosa sto parlando e sai che anche in questo articolo potrai leggere come pilotare i motori passo-passo bipolari con easy driver.

EasyDriver montato

Sulla pagina ufficiale dell’Easy Driver prodotto dalla Sparkfun puoi leggere che è in grado di pilotare motori stepper bipolari o unipolari collegati come bipolari, sia in modalità full-step ossia passo per passo sia di ottenere delle riduzioni sui passi da 1/2 passo, 1/4 di passo e 1/8 di passo.

Ho voluto provare le caratteristiche del driver e riuscire a evidenziare con uno sketch come puoi utilizzare l’easy driver per realizzare la tua stampante 3D, dolly project, cnc casalinga o altro progetto in cui la precisione è un fattore importante.

Perché ridurre il passo con l’Easy Driver

I motori passo passo possiedono la capacità di essere pilotati con degli impulsi in modo da compiere un riro completo in un numero di passi stabilito. Se il motore passo passo che possiedi è un 200step ( 200 passi ) vuol dire che l’albero per tornare nella sua posizione iniziale dopo aver eseguito un giro completo impegna 200 piccoli passi da 1,8° ciascuno ( 360°/200 = 1,8° )

Quando trasferisci il movimento meccanico di rotazione ad una vite, il passo della vite identifica la distanza percorsa da un oggetto lungo la vite dopo una rotazione di 360° ( un giro di vite ):

vite easy driver

per convenzione mi riferirò a PASSO quando parlo di quello della vite e userò passo per indicare il singolo step del motore, in modo da evitare confusione.

Se conosci quanti mm è il PASSO puoi calcolare la precisione che puoi ottenere con il tuo motore; ad esempio nell’immagine della vite se il PASSO fosse di 5mm puoi calcolarti il grado di precisione come:

Precisione = ( PASSO / numero di step ) = ( 5 mm / 200 ) = 0,025 mm

A questo punto avrai già dedotto che se puoi incrementare il numero di passi dividendo il singolo passo per 1/2, 1/4 o 1/8 di passo puoi aumentare la precisione del tuo movimento meccanico in quanto otterrai:

  • 200 * 2 = 400 passi
  • 200 * 4 = 800 passi
  • 200 * 8 = 1600 passi

e di conseguenza, tornando al PASSO della vite:

  • 5mm / 400 passi = 0,0125 mm
  • 5mm / 800 passi = 0,00625 mm
  • 5mm / 1600 passi = 0,003125 mm

Ora sai il motivo per cui ho provato questo l’easy driver ed in particolare la caratteristica di riduzione dei passi.

Come l’easy driver demoltiplica il passo

Ridurre l’ampiezza del passo in modo che un giro sia compiuto in 400, 800 o 1600 passi è possibile utilizzando i terminali MS1 ed MS2 presenti sul driver, seguendo questo schema:

Terminali MS1 ed MS2

in pratica collegando questi terminali ai pin arduino ed utilizzando uno sketch puoi ottenere la divisione di un giro in un numero di passi superiori a quelli dichiarati dal costruttore.

Ecco lo schema dei collegamenti che io ho utilizzato per questo tutorial:

schema dei collegamenti dell'easy driver

avrai notato che sono presenti quattro pulsanti, il primo partendo da sinistra ( collegato ad arduino con il cavo di colore giallo ) è connesso al pin 8 e serve a far avanzare il motore di un passo alla volta; il secondo è connesso al pin 7 fa eseguire al motore 200 passi; il terzo ed il quarto sono collegati rispettivamente al pin 8 e 9 e serviranno per inviare segnali alto o basso all’easy driver sui terminali MS1 ed MS2 in funzione dei quali potrai dimezzare un passo o ridurlo di 1/4 o di 1/8.

Lo sketch per l’easy Driver

Puoi utilizzare lo sketch che ti propongo per eseguire i tuoi test con l’easy driver:

int DIR = 2;
int STEP = 3;
int MS1 = 4;
int MS2 = 5;

int Rotate = 7;
int pinGo = 8;
int pinMS1 = 9;
int pinMS2 = 10;

void setup() {
  Serial.begin(9600);
  pinMode(DIR, OUTPUT);
  pinMode(STEP, OUTPUT);
  pinMode(MS1, OUTPUT);
  pinMode(MS2, OUTPUT);

  pinMode( pinGo,INPUT );
  pinMode( pinMS1,INPUT );
  pinMode( pinMS2,INPUT );

  pinMode( Rotate,INPUT );
}

void loop()
{
    digitalWrite(MS1, digitalRead( pinMS1 ) );
    digitalWrite(MS2, digitalRead( pinMS2 ) );

    digitalWrite(DIR,HIGH);
    delay(50);

    if ( digitalRead( Rotate ) == HIGH ) {
      for ( int i=0; i<200; i++) { stepGo(); delay(10); }
    }
    if ( digitalRead( pinGo ) == HIGH ) {
        Serial.print( "Step MS1 " );
        Serial.print( digitalRead( pinMS1 ) );
        Serial.print( " MS2 " );
        Serial.print( digitalRead( pinMS2 ) );
        Serial.print( " \n" );
  delay( 300 );
        stepGo();
    }
}

void stepGo() {
        digitalWrite(STEP, HIGH);
        delayMicroseconds(100);
        digitalWrite(STEP, LOW);
        delayMicroseconds(100);
}

la base dello sketch non è molto differente da quella presentata nel primo articolo dedicato all’easy driver, a quello sketch ho aggiunto alcune linee:

linee 03-04: definici i pin a cui hai collegato i pin dell’easy driver MS1, MS2;

linee 06-09: definisci i pin a cui hai collegato i bottoni, se leggi il paragrafo precedente troverai ogni singolo bottone a cosa serve;

linee 13-22: definisci quali pin utilizzerai come INPUT e quali come OUTPUT;

linea 27: con il comando digitalRead( pin ) leggi il valore proveniente dal pulsante connesso al pinMS1 e con il comando digitalWrite( pin, value ) trasferisci questo valore al pin di OUTPUT, in pratica se premi il pulsante connesso al pinMS1 il valore letto sarà HIGH e il corrispondente pin MS1 dell’easy driver riceverà il segnale HIGH;

linea 28: fa la medesima operazione della linea 27 sul pulsante pinMS2;

linea 30: imposti la direzione di rotazione del motore, in questo test è di minore importanza per cui la puoi lasciare a HIGH;

linee 33-35: se premi il pulsante Rotate ossia quello connesso al pin 7 il ciclo for presente alla linea 34 fa eseguire al motore i 200 passi impostati nella condizione del for, per ciascun passo chiama la funzione goStep() definita alla linea 47 e attende 10 millisecondi prima di eseguire il passo successivo;

linne 36-44: imposti lo sketch in modo che alla pressione del pulsante connesso al pinGo ( pin 8 di arduino ) il motore esegua un solo step o passo;

Il video

per comprendere meglio il funzionamento dell’easy driver quando riduci i passi ho realizzato un video demo utilizzando un quadrante di cartoncino su cui ho disegnato delle linee a 0°, 180° ( 1/2 giro ), 90° ( 1/4 di giro ) e 45° ( 1/8 di giro ):

Quadrante Stepper Motor

guarda la demo:

nel video premendo il pulsante connesso al pin 7 lo sketch esegue sempre 200 passi, come hai visto, ma variando l’ampiezza di ogni singolo passo puoi notare che la lancetta esegue 360°, 180°, 90°, 45° rispondenti alle divisioni:

  • Passo intero -> 200 passi = 360° ( 360° / 1 = 360° )
  • Mezzo passo -> 200 passi = 180° ( 360° / 2 = 180° )
  • Un quarto di passo -> 200 passi = 90° ( 360° / 4 = 90° )
  • Un ottavo di passo -> 200 passi = 45° ( 360° / 8 = 45° )

Ora che ti è tutto più chiaro non ti resta che provare.

Buon divertimento !!!

  • 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/tutorial-easy-driver-arduino-stepper.html

44 commenti

1 ping

Vai al modulo dei commenti

    • Roberto il 26 Novembre 2012 alle 11:52
    • Rispondi

    Ciao Mauro,
    sono contento che tu sia riuscito a fare questa prova (per il mio progetto fondamentale) e che sia fattibile mi rendi felice…

    Una Domanda: hai verificato se ci sono perdite di forza nel motore?
    grazie mille
    Roberto

    1. Ciao Roberto,
      non ho eseguito prove in merito alla forza esercitata dagli step del motore, considera che solitamente si ricorre alla riduzione dei passi anche per incrementarne la coppia.

      Mauro

    • gianni il 1 Dicembre 2012 alle 08:44
    • Rispondi

    Grandissimo tutorial
    Grazie Mauro

    • Pasquale il 13 Marzo 2013 alle 17:36
    • Rispondi

    ciao Mauro
    ho seguito il tuo consiglio, ho preso 2 motori e 2 easy driver, una sono riuscito a farla funzionare la seconda no si surriscalda e nn mi fa ruotare il motore, me ne sono fatto spedire una terza ma anche questa ha lo stesso problema, ora nn so che fare anche xke nn credo di aver sbagliato a montarla dato che la prima nn mi ha dato problemi,

    in realta vorrei chiederti un consiglio
    vorrei creare una piattaforma che cali in modo regolare e controllato con i miei motori (come una ghigliottina)
    ho pensato a delle gear racks per il moto lineare dato che mi permetterebbero una velocità maggiore da applicare su delle guide scorrevoli
    la piattaforma dovrebbe calare di 70 cm dall’alto verso il basso e poi risalire.

    che ne pensi?
    ulteriore problema non esistono cremagliere di 70 cm in plastica(devono essere leggere)

    ho pensato a questa soluzione xke ho bisogno di un buon rapporto affidabilità precisione xke il tutto deve essere triggherato in eeg
    ed è importante in queste misure una costanza al millesimo di secondo.

    come puoi capire nn posso spenderci molto xke se vuoi fare ricerca in ITALIA te la devi autofinanziare, e quando poi nn ti pagano neppure …..puoi immaginare il resto

    1. Ciao Pasquale,
      per gli easydriver, prova a collegare il secondo o il terzo al posto del primo e vedi se funzionano, potrebbe essere un errore di connessione o un errore dello sketch che stai usando.

      Per le crimagliere mi vengono in mente due soluzioni:
      1) cerca con Google chi produce ciò che ti serve
      2) disegnale e fattele stampare da un prototipatore, io faccio così quando realizzo un prototipo.

      Comprendo che l’autofinanziamento è duro, io lo pratico ogni giorno per mantenere questo Blog, posso dirti che se credi in un progetto puoi cercare anche dei finanziatori, ma deve avere uno scopo il progetto.

      Mauro

    • Pasquale il 14 Marzo 2013 alle 11:51
    • Rispondi

    ciao, Mauro oggi ho passato la mattinata con il voltometro 🙁

    cioè su 3 solo una funziona -voglio piangere-
    x lo sketch è impossibile è lo stesso usato per la prima, i contatti sono gli stessi, l’ho montata sulla stessa boardbord anche in punti diversi.
    guarda la prima(quella che funziona) nn la stacco neanche morto 🙂 mi stacco un braccio piuttosto 🙂
    ho trovato una strana differenza di potenziale tra M+ e step/dir
    è probabile che sia una partita difettata nn so, ne ordinerò un altra chiedendo se me la controllano prima non so che fare!

    per i gear rack sto pensando di prendere questi: http://www.ebay.com/itm/10-pcs-x-Gear-Rack-0-5-modulus-Plastic-rack-pinion-drive-rod-DIY-parts-Sss-/380562815314?pt=LH_DefaultDomain_0&hash=item589b4fb952

    dovrò attaccarli tra loro, speriamo non ci sia lasco tra una e l’atra….
    avevo pensato anche ad un aduttore lineare a vite…. ma è troppo lento e poi avrei avuto il problema lunghezza vite o filettatura o compatibilità vite dado…

    se riesco a fare sta cosa…
    sempre se tu avessi voglia potresti ospitare sul tuo sito il progetto
    non te l’ho voluto dire prima xke me lo devono prima approvare e la prassi non è breve…

    1. Ciao Pasquale,
      si è sfiga, confermo.
      Ho visto le guide sono molto interessanti 🙂

      Spero tu riesca a far approvare il progetto e se desideri rilasciarlo open, questo è lo spirito del blog, io ti riservo un articolo.

      Mauro

    • Emiliano il 30 Marzo 2013 alle 18:49
    • Rispondi

    Ciao,

    puoi dirmi dove posso comprare tutto il kit, breadboard compresa e motore?
    Se ne trovano anche di dimensioni piccole per un torque minimo?
    Devo pilotare il movimento di un orologio da parete.

    Buona Pasqua,
    Emiliano

    1. Ciao Emiliano,
      il mio negozio di riferimento on-line é robot-domestici.it, sono veloci e competenti.
      Se scrivi loro dicendo che te li ho consigliati puoi provare a chiedere se ti applicano lo sconto che fanno a me 🙂

      Mauro

    • mimmo il 26 Dicembre 2013 alle 20:42
    • Rispondi

    Ciao Mauro, bei progetti e suggerimenti molto validi.
    Io mi interesso di astronomia e ho intenzione di motorizzare il mio telescopio con un sistema arduino uno e easy driver full alfa step in modo da poter avere una precisione elevata nel far girare la corona dentata attraverso la vite senza fine che a sua volta e’ collegata al motorino stepper. per caso hai gia avuto altre richieste in merito????? esiste gia un tuo suggerimento sul blog??? sono gia in possesso dell’arduino uno e prox acquistero l’easy driver
    Grazie
    Mimmo

    1. Ciao Mimmo,
      progetto interessante.
      mi è già arrivata in passato richiesta per progetti simili.
      Nessun progetto è mai identico ad altri ed io ho conoscenze nulle di astronomia per poter eseguire un tale progetto.

      Tu puoi seguire i miei tutorial con Easy Driver per realizzare il tuo progetto e certamente hai le capacità che a me mancano per riuscire.

      Mauro

    • mimmo il 31 Dicembre 2013 alle 18:18
    • Rispondi

    Ciao Mauro, grazie per la risposta, comunque ho gia letto molto sui tuoi articoli in riguardo agli stepper sia uni,che bipolari, alla fine ho optato di seguirti i bipolari, proprio per la loro versatilita’ nell’essere gestiti sulla frazione dello step, questo oltre a garantire una precisione alta, riduce notevolmente le vibrazioni per lo spostamento a scatto.

    Grazie
    Mimmo

    1. Buon anno Mimmo,
      ottima scelta, la condivido 🙂

      Mauro

    • Alberto il 5 Gennaio 2014 alle 17:47
    • Rispondi

    Ciao Mauro, stesso problema, le connessioni sono giuste, le ho controllate più e più volte, la scheda si surriscalda parecchio già dopo pochi secondi ed il motore non gira in modo corretto.
    Ti confido di non avere molta dimestichezza con elettronica ma ritengo di non aver commesso errori.
    Utilizzo per l’alimentazione della scheda una batteria 12V da moto.
    E’ forse questo l’errore ???
    Grazie per quanto puoi dirmi. Ciao Alberto.

    1. Ciao Alberto,
      è molto imporatnete conoscere bene le caratteristiche del tuo motore ed in particolare:
      Voltaggio di alimentazione ( V )
      Corrente assorbita per fase ( A )
      Numero di step per giro

      La maggior parte delle volte in cui si verifica il comportamento che descrivi è dovuto ad un eccessivo assorbimento di corrente del motore per fase che causa l’efferro di surriscaldamento del driver.

      Mauro

    • Alberto il 6 Gennaio 2014 alle 23:57
    • Rispondi

    Grazie Mauro, vedrò di ottimizzare il tutto.

    • jsas il 11 Aprile 2014 alle 09:22
    • Rispondi

    Salve, sono un grande ignorante in materia di elettronica in senso assoluto. Per una mia passione fotografica mi sono cimentato in un’impresa più grande di me in quanto dopo essermi costruito una dolly ho pensato che sarebbe stato relativamente facile motorizzarla, niente di più impensabile!!!
    Comunque per farla breve mi sono documentato un pò e ho comprato una scheda arduino 2009, uno Stepper Motor – 125 oz.in (200 steps/rev) che purtroppo per me ha 6 fili. Dopo aver seguito per bene lo schema (Tutorial: Easy Driver Arduino riduzione del passo) sopra riportato, non sono riuscito a far muovere di un “passetto” il mio motorino.

    Sul sito dove ho comprato il motorino mi diceva che per usarlo come bipolare dovevo solo isolare i cavi GIALLO e BIANCO, cosa che ho fatto, ma nonostante le varie prove e copiato pari pari la sopracitata lezione, sia come connessione cavi che la programmazione da caricare su arduino, il tutto si è risolto in un nulla di fatto.
    Ora io chiedo a voi luminari dell’elettronica: mi potete aiutare a risolvere il problema facendomi il tutto con schema collegamento fili con relativo programma da caricare su arduino? vi sarò molto grato.
    In attesa di una gradita risposta…un grosso grazie anticipato.

    1. Ciao Jsas,
      purtroppo quello che chiedi non è semplicissimo, a partire dal motore a 6 fili che è certamente un unipolare e che trasformarlo in un bipolare non penso sia fattibile solo isolando dei fili ( ti consiglio di leggere il mio articolo sui motori passo-passo come riconoscerli ) e dalle geometrie interne provare a ricavare la tua e convertire il motore per usarlo come bipolare.
      Discorso differente è il dolly per cui ho realizzato diversi articoli e versioni in kit che ti consiglio di acquistare così da avere già lo sketch pronto a cui applicare solo le modifiche che desideri e le nuove funzionalità.

      Infine sono a lavoro per realizzare un controller dolly completo ed un kit anche con la meccanica se desideri essere informato sulla disponibilità ti consiglio l’iscrizione alla newsletter del blog.

        • jsas il 11 Aprile 2014 alle 23:37
        • Rispondi

        Ciao mauro,
        grazie per aver risposto al mio grido d’aiuto. Sono riuscito a capire le due coppie di cavi, e dopo averli collegati sono riuscito a vedere che il motorino gira premendo i pulsanti del pin 7 e 8, ma gli altri due ovvero il 9 e il 10 non fanno una piega. Proverò per bene sia i collegamenti che i dati da inviare ad arduino.

        Nel frattempo mi potresti indicare a quali articoli e versioni in kit con già gli sketch pronti a cui ti riferisci e dove li posso reperire per vedere se mi sono d’aiuto?

        ciao a risentirci

        1. Ciao Jsas, ottimo risultato. Per gli articoli sul dolly cerca “dolly” nel mio blog o su google “mauroalfieri dolly”

    • Gianluca il 9 Settembre 2014 alle 14:22
    • Rispondi

    Ciao Mauro e complimenti per il sito che è fatto veramente bene. Mi è arrivata da pochi giorni la scheda easydriver 4.4 e per provarla subito ho copiato il tuo schema, ma non va… l’unica differenza è che non ho messo le resistenze ed ho collegato 5V anziché 9V. Quando poi premo i pulsanti la spia dell’easydriver sparisce per poi riaccendersi quando lo rilascio, a te non succede. eppure non credo dipenda dal basso voltaggio perché alcune volte il motore si muove quindi ha la forza per spingerlo. Non saprei… in ogni caso continuerò con le prove, grazie ancora,
    Gianluca

    1. Ciao Gianluca,
      senza le resistenze mandi in corto-circuito i pulsanti e rischi di bruciare tutto, ecco l’effetto che ottieni, si spegne tutto per segnalarti un problema.

        • Gianluca il 9 Settembre 2014 alle 18:52
        • Rispondi

        Ops! sto alimentando a 5 V 1 A con un caricatore per telefonini, servono comunque resistenze da 330? Grazie mille per avermi salvato le schede.
        Gianluca

        1. Ciao Gianluca,
          ti consiglio di leggere i primi articoli che ho scritto su come si collegano i pulsanti per capire a cosa servano le resistenze e come devono essere utilizzate per salvaguardare le tue schede.

    • Marco il 23 Settembre 2014 alle 00:25
    • Rispondi

    Buongiorno Mauro, ho provato questo circuito, e finalmente qualcosa si comincia a vedere, volevo provare a modificare alcuni tempi regolando un potenziometro aggiungendolo a questo sketch, a parte dichiarare la variabile su cui collegare il potenziometro posso fare riferimento e studiarmelo prima di chiedertelo (se non riesco )su qualche articolo?
    Mi serviva perchè volevo ampliare la mia pratica e provare a modificare appunto il tempo, e cercare di farlo cambiare anche senso di rotazione
    le altre connessioni di easy driver a cosa servono?
    PFD, RST, Enable e SLP

    1. Ciao Marco,
      per il potenziometro che controlla i tempi puoi leggere gli articoli dedicati all’uso dei potenziometri con arduino ed agli articoli in cui descrivo come variare la velocità di un motore passo-passo, i concetti sono gli stessi anche se usi la easyDriver.
      Per le connessioni ti invito a far riferimento al manuale del produttore, ci sono molte cose interessanti che puoi fare consultando il manuale.

        • Marco il 7 Ottobre 2014 alle 19:47
        • Rispondi

        Ciao Mauro ho installato qualche giorno fa ” fritzing” ho provato ad usarlo ma quando vado x stampare non fa segno di stampa come se il pulsante x la stampa é nullo e non esiste nessun collegamento, hai qualche idea a riguardo?

        1. Ciao Marco,
          non ho mai provato ad usare la funzione di stampa di fritzing, prova a verificare sul loro sito se nelle faq ci sia una segnalazione simile.

        • Marco il 7 Ottobre 2014 alle 19:51
        • Rispondi

        Ciao Mauro ti volevo chiedere ma la Easy driver riesce a pilotare anche motori passo passo a 5 o 6 fili?

        1. Ciao Marco,
          a memoria mi sembra che la EasyDriver possa controllare solo motori bipolari ( 4 fili ) ma puoi leggere il mio articolo sui motori passo-passo e verificare se i tuoi motori a 5 e 6 fili possano essere collegati con configurazione bipolare.

    • Marco il 22 Ottobre 2014 alle 18:12
    • Rispondi

    Ciao Mauro, volevo sapere, ma i motori passo passo hanno dei passi standard?
    cioè mi spiego meglio, siccome tutti i motori passo passo che possiedo li ho ricavati da stampanti e x fortuna ne ho trovati 2 bipolari da 200 passi ho fatto caso che questi si trovano nelle stampanti Epson, a parte questo,

    i motori con 200 passi hanno tra i loro passi uno sfasamento di 1,8°,
    ne ho trovato anche uno da 96 passi, ti dico 96 perchè li ho contati azionando il motore stesso e questo ha 1 sfasamento di 3,75°, lo so perchè l’ho ricavato dal calcolo 360°(un giro completo)/96passi=3,75°

    per te esiste questo motore con questo numero di passi?

    ho usato questo codice dell’easy driver x azionare il motore a 200 passi, e fino qui va bene posso invertire anche il senso di marcia
    quando ho sostituito il motore con quello da 96 passi se lo aziono facendogli fare tutti e 96 passi interi è ok,
    se poi aumento il numero dei passi in un giro (1/2, 1/4, 1/8,)non si riesce a definire il movimento mentre quello con 200passi anche se il movimento è piccolo ma è percettibile ad occhio per tutti e 200 passi,
    poi x questo tipo di motore non mi accetta l’inversione di marcia

    non vorrei dipendesse dai gradi di sfasamento cioè 3,75°, fosse non compatibile con il codice?

    1. Ciao Marco,
      i motori passo-passo si producono con caratteristiche varie, non mi stupisce il valore 96 passi giro.
      Non penso che il comportamento decritto possa dipendere dall’angolo ma più probabilmente da un errore nell’individuare le fasi, la loro successione o il tempo di lavoro tra una fase e la successiva.

    • francesco il 12 Dicembre 2014 alle 23:38
    • Rispondi

    ciao Mauro, non ho letto da nessuna parte da quanto sono le resistenze in uso in questo caso. Le solite da 10 KOhm? in attesa della risposta partirò da quelle, altrimenti riduco di un pò

    1. Ciao Francesco,
      negli articoli in cui l’argomento principale non sono i pulsanti non trovi descritte le parti accessorie, questo come regola del blog.
      I colori negli schemi sono reali per cui in questo esempio sono 220ohm, tuttavia se leggi gli articoli in cui parlo di pulsanti capirai facilmente che quella resistenza è alquanto indifferente da 220 a 10K il suo scopo è solo di pull-down o pull-up dei pin.

  1. Ciao Mauro, complimenti per il chiarissimo sito web.
    Vorrei utilizzare una scheda Arduino per controllare un motore passo passo. il motore dovrebbe regolare un Condensatore A vuoto che sviluppa tutta la sua capacità con 22 giri dello shaft. Se collego il motore passo passo con due comandi “avant”i ed “indietro” ( come ho visto nell’altro tuo tutorial ) , il motore mi da la posizione in cui si trova prima di pilotarlo? Conoscerne la posizione mi servirebbe per non forzare il condensatore oltre i suoi punti di arresto iniziale e finale. ( perdonami se la domanda ti apparirà sciocca, ma non è propriamente il mio mestiere, anche se mi affascina moltissimo ) .
    Grazie!

    1. Ciao Andrea,
      purtroppo no, il motore passo-passo non ha feedback la posizione è data da un calcolo che esegui sapendo quanti passi hai impostato al motore e quanto vale ogni passo in gradi.
      In pratica ad ogni uso / accensione dovrai far ruotare il condensatore fino alla sua posizione di min o max e da li contare i passi.
      Una alternativa potrebbe essere l’uso della EEPROM in cui andare a memorizzare la posizione una volta raggiunta e recuperarla ad ogni utilizzo, complica un po lo sketch e devi considerare che le possibilità di scrittura in una medesima cella non sono infinite.

    • Matteo il 5 Gennaio 2016 alle 22:52
    • Rispondi

    Ciao Mauro,
    complimenti e grazie per tutte le guide che pubblichi!!
    Ti volevo chiedere una cosa, che forse sarà banale, sul sito della SparkFun, ho letto che easy driver richiede, per il motore un’alimentazione dai 6 ai 30, quindi non posso utilizzare un motore da 3V, giusto?
    Un’altra cosa, io necessiterei di un motore, meglio se “NEMA-17”, da controllare con easydriver, potresti darmi qualche link per acquistarlo?

    1. Ciao Matteo,
      a memoria ricordo che l’easy driver sia adatto a motori non inferiori ai 6v di alimentazione nominale.
      Per il tipo di motore che ti occorre puoi verificare sul sito robotics-3d.com che è anche rivenditore dei prodotti sparkfun per cui puoi acquistare tutto li.

    • mimmo il 11 Dicembre 2016 alle 11:57
    • Rispondi

    salve Mauro, in pratica per la riduzione del passo con ms1 e 2 arduino da una tensione positiva o negativa ai pin dell’easy driver????

    Grazie

    Mimmo

    1. Si Mimmo.

    • Attilio il 20 Febbraio 2017 alle 18:25
    • Rispondi

    grazie mille per la ben fatta guida. Volevo chiederti se aggiungendo nel codice un opportuno valore i delay posso gar compiere al motore un giro completo in 24 ore. Grazie Attilio

    1. Ciao Attilio,
      si è possibile .. io farei una semplice divisione matematica ipotizzando di avere uno stepper da 200 passi giro e 24ore = 86400 secondi = 86400000 millisecondi puoi fare:

      86400000 / 200 = 432000 come delay

      Sconsiglio di ritenere questo un orologio, avrai delle perdite dovute ai tempi computazionali.

    • Francesco il 23 Maggio 2018 alle 19:33
    • Rispondi

    Signor Mauro buonasera, volevo porle la seguente domanda: Volevo realizzare una cnc con arduino ed
    ho acquistato 3 motori passo passo a 6 fili dove ho individuato i 4 fili appartenenti alle due rispettive bobine,
    il motore è questo ( 57BYGH420 ) ho acquistato anche tre schede easydriver volevo sapere che tensione devo collegare alla scheda easydriver perchè il motore porta una tensione di 3v possibile? mi sembrano pochi 3 v a cosa si riferiscono questi 3v ?
    Poi volevo sapere a cosa serve quel piccolo potenziometro sulla scheda easydriver da girare con il cacciavite.
    Mi può spiegare come devo fare per far funzionare il tutto senza creare danni alle schede e ai motori. Grazie!!
    Insomma in tutto utilizzo i seguenti componenti :
    Arduino Uno, 3 Schede EasyDriver, 3 Motori Passo Passo ( 57BYGH420 ) e GRBL Controller come programma.
    Vorrei sapere quanta tensione immettere nella scheda EasyDriver, se bisogna regolare quel piccolo potenziometro e se si come o se no in che posizione va lasciato GRAZIE!!! Stò uscendo Pazzo!!!

    1. Ciao Francesco,
      in merito alla tensione dei motori mi sembra davvero poca prova a verificare con il produttore che tipo di informazione rappresenta quel 3v, forse per avvolgimento e quindi devi conoscere quale sia il numero di avvolgimenti per fase, ma questa è solo una ipotesi.
      In merito alla regolazione presente sulla easy driver serve solitamente a regolare la corrente che eroga il driver al motore, ho scritto un tutorial su come impostarla per i driver delle stampanti 3D, è una formula, la trovi anche in internet, e devi calcolarla quando hai tutti i dati dei motori.

  1. […] L’uso del driver pololu a4983 del tutto simile al modello a4988 che lo ha sostituito lo hai già letto nell’articolo dedicato a questo driver, ed in precedente articolo hai già visto come si possono dimezzare o ridurre a 1/4 ed 1/8 i passi di un motore bipolare con l’easy driver. […]

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.