Board per driver A4988-DRV8825

Questa piccola board permette l’utilizzo dei moduli driver per motori passo-passo tipo:  A4988,  DRV8825  o altri con piedinatura identica. Dispone di zoccolo per l’inserimento del driver, un dip-switch per l’impostazione dei numero di step, tre connettori: uno con pin di controllo, uno di alimentazione e uno per il collegatore di un motore passo-passo a 4 pin.

Citazione dell’articolo nelle sezioni Articoli, Robotica del blog di Elettronica In

Foto della board driver A4988 DRV8825

Sotto sono riportate le foto dei due lati della scheda su cui possono essere istallati vari modelli di driver.
Ai lati sono presenti il pin-strip/connettori la cui funzione sarà trattata in dettaglio più avanti nell’articolo.

Specifiche tecniche

  • Tensione di alimentazione logica: 3,3 V – 5 V
  • Tensione di alimentazione motore passo-passo: fino a 30 V
  • Dimensioni: 43  x 35 mm
  • Peso: 9 grammi

Scheda compatibile

In rete si trova anche una scheda simile con le stesse caratteristiche:

  • Morsettiera di alimentazione del tipo a vite;
  • Presenza di due pin-strip 1 3 pin per l’alimentazione della logica
  • Un led che segnala la presenza della tensione
  • Dimensioni leggermente maggiori – 42x42x15mm

 

Schema elettrico Board driver A4988 DRV8825

Lo schema elettrico della Board driver A4988 DRV8825 sotto riportato è stato ricavato dal PCB, in quanto non è disponibile in rete.

Il componente principale è rappresentato dal modulo U1 che può essere un driver DRV8825A4988 o altro equivalente. Il modulo semplifica molto il circuito in quanto il circuito sarebbe molto più complesso

Schema elettrico del modulo A4988

Sono poi presenti due  pin-strip J1 e J2, un connettore per il motore CN e un DIP switch.

J1 – Pin-strip controllo motore

É la pin-strip che permette la gestione della rotazione del motore, sono presenti 3 pin, sotto la tabella con la loro funzione

SiglaFunzioneDescrizione
EEnablePin di abilitazione del driver, ma questo risulta sempre collegato a terra tramite un resistore da 4,7 kΩ. Per questo motivo il modulo è sempre abilitato, per cui non occorre collegarlo ad Arduino
DDirectionPin che controlla la direzione di rotazione del motore. Portandolo a livello HIGH fa girare il motore in senso orario, mentre portandolo a livello LOW farà girare in motore in senso antiorario.
Se la direzione di rotazione è fissa si può collegare direttamente a +5V o GND.
SStepPin che controlla i microsteps del motore. Ogni impulso ALTO inviato a questo pin aziona il motore in base al numero di microsteps determinato dai pin di selezione dei microsteps. Maggiore è la frequenza degli impulsi, più velocemente girerà il motore.

J2 – Pin-strip alimentazione

A questo connettore si devono collegare i cavi di alimentazione. Sia quello per alimentare la logica (+5V e GND) sia per l’alimentazione del motore. Per il motore il valore indicato pari a 9V è solo indicativo.
Sfortunatamente, almeno per quelli relativi al motore, non son previsti dei connettori a viti che garantirebbero una migliore stabilità del collegamento.
Sul circuito del motore è presente un condensatore C1 elettrolitico da 100µF, la sua funzione è quella di fornire la corrente di spunto al momento di partenza del motore.  La sua tensione di lavoro è di 35 V, e questa è la massima tensione che potrà essere fornita al motore.

Impostazione Step

Il DIP switch permette di variare la risoluzione degli step per ogni rotazione, di default, sono in posizione OFF – FULL STEP. Sotto le tabelle che riportano la configurazione per ottenere il numero di step richiesto

TABELLA PER A4988

DIP1DIP2DIP3Risoluzione
OFFOFFOFFFull Step
ONOFFOFF1/2 Step
OFFONOFF1/4 Step
ONONOFF1/8 Step
ONONON1/16 Step

TABELLA PER DRV8825

DIP1DIP2DIP3Riloluzione
OFFOFFOFFFull Step
ONOFFOFF1/2 Step
OFFONOFF1/4 Step
ONONOFF1/8 Step
OFFOFFON1/16 Step
ONOFFON1/32 Step
OFFONON1/32 Step
ONONON1/32 Step

Connettore motore

Il connettore motore è di tipo JST XH passo 2,5mm, 4 pin polarizzato. Il motore passo-passo dovrebbe avere lo stesso connettore. Può essere utilizzato anche un connettore tipo DUPONT 4 pin femmina passo 2.5 mm.
In quest’ultimo caso se notate che il motore ruota in senso opposto a quello voluto, basterà invertire il connettore.

Dove trovare la Board per driver A4988-DRV8825

La Board per driver A4988-DRV8825 può essere acquistata presso il sito di Futura elettronica codice 2846-DRIVERBOARD. Il suo costo al momento della pubblicazione di questo articolo è di 4 €.

Qualche informazione sul modulo A4988

Lo stepper motor driver tipo A4988 ( originale Allegro) permette di comandare un motore passo-passo  tramite una scheda Arduino o altri microcontrollori.
La scheda, disponibile a seconda dei lotti con circuito stampato ROSSO o VERDE, necessita di alimentazione di 5Vdc per la logica e una tensione da 8 e 35Vdc per il motore.
L’uscita può pilotare motori fino a 2A con dissipatore o ventilazione e gestisce il pilotaggio di stepper in micropasso.

Il micro passo (passo intero, 1/2, 1/4, 1/8 o 1/16 di passo) è impostabile tramite gli appositi ingressi siglati “MS1-MS2-MS3” ( consultare il datasheet del Chip).
E’ possibile la regolazione della corrente di uscita tramite un potenziometro a vite. Dotata di shutdown termico a temperatura eccessiva e blocco sotto tensione.
La scheda  misura: 20×15 mm, per un peso di soli 4 gr.
Per altre informazioni vedere l’articolo Stepper motor driver A4988 – Esempio applicativo

Dove trovare il modulo A4988

Il driver A4988 può essere acquistato presso:

Qualche informazione sul modulo DRV8825

Il driver è compatibile con il modello A4988,  capace di controllare un motore passo-passo bipolare, può fornire fino a 1.5A per fase senza necessità di dissipatori, mentre se è dotato di dissipatore può raggiungere i 2.2A per bobina

Stepper motor driver DRV8825

La scheda deve essere alimentata con una tensione operativa compresa nel range 8.2V~45V.
Fornisce una limitazione di corrente selezionabile, protezione contro sovracorrente e surriscaldamento ed inoltre fornisce 6 risoluzioni di microstepping impostabile tramite gli appositi ingressi siglati “M0-M1-M2”  (consultare il datasheet del Chip).
Per altre informazioni vedere l’articolo Stepper motor driver DRV8825 – Esempio applicativo

Dove trovare il modulo DRV8825

Il driver DRV8825 può essere acquistato presso :

Quali sono le differenze tra A4988 e DRV8825

Sotto sono riportate alcune differenze tra i moduli A4988 e DRV8825, tra l’altro sono di diverso colore:  l’A4988 è verde o rosso, mentre il DRV8825 è di colore viola.

Alimentazione e corrente

  • Tensione di alimentazione – Il DRV8825 ha una tensione di alimentazione massima più elevata rispetto all’A4988 (45 V contro 35 V), il che significa che il DRV8825 può essere utilizzato in modo più sicuro a tensioni più elevate ed è meno suscettibile ai danni causati dai picchi di tensione;
  • Corrente fornita – Il DRV8825 può fornire una corrente più elevata all’A4988 senza alcun raffreddamento aggiuntivo;

  • Posizione trimmer – Il trimmer per la regolazione del limite di corrente si trova in una posizione diversa;
  • Pin alimentazione motore- Il DRV8825 utilizza una convenzione di denominazione diversa per le uscite del motore passo-passo, ma sono funzionalmente uguali ai pin corrispondenti sul supporto A4988 , quindi le stesse connessioni a entrambi i driver determinano lo stesso comportamento del motore passo-passo.
Stepper motor driver A4988

A4988

DRV8825

  • Pin di alimentazione logica –  Il pin utilizzato per fornire la tensione logica all’A4988 viene utilizzato come uscita FAULT del DRV8825. Il DRV8825 non richiede un’alimentazione logica mentre l’A4988 non ha un’uscita di errore. Non vi sono problemi comunque se si collega il pin FAULT direttamente a un’alimentazione logica in quanto è presente un resistore da 1,5k tra l’uscita IC e il pin per proteggerlo;
  • Pin SLEEP – Il pin SLEEP sul DRV8825 non è attivato per impostazione predefinita come sull’A4988;
  • Impostazione del limite di corrente – La relazione tra l’impostazione del limite di corrente e la tensione del pin di riferimento è diversa.

Gestione degli step

  • Regolazione micro stepping – Il DRV8825 offre micro stepping da 1/32 passi ; l’ A4988 offre solo sino a 1/16 di passo ;
  • Pin per impostazione micro stepping – Gli ingressi del pin di selezione della modalità corrispondenti a 1/16 di passo sull’A4988 si traducono in un micro stepping di 1/32 di passo sul DRV8825;
  • Temporizzazione degli impulsi – I requisiti di temporizzazione per le durate minime degli impulsi sul pin STEP sono diversi per i due driver. Con il DRV8825, gli impulsi STEP alto e basso devono essere ciascuno di almeno 1,9 us; mentre possono essere brevi fino a 1 us quando si utilizza l’ A4988.

Limitazione di corrente

Prima del collegamento, è necessario regolare la corrente del driver in base alla corrente del motore passo-passo che si collegherà.
Come calcolare la corrente per il driver A4988 leggi qui, per il driver DRV8825 leggi qui .
E’ inoltre, se necessario, installare un dissipatore di calore per raffreddare il driver.

Collega il motore passo-passo NEMA17 .  Nell’esempio, non userò il pin EN, collegherò STEP al pin 3 su Arduino e DIR al pin 2 su Arduino. Resta da collegare l’alimentazione, 5V al pin 5V su Arduino e 9V alla fonte di alimentazione, nel mio caso 12V, non dimenticate di collegare la terra.

Schema base di cablaggio per Arduino

Prima di tutto occorre installare il driver A4988 ( DRV8825) nei connettori presenti su PCB.
Far riferimento alla serigrafia riportata.

Per il collegamento, oltre alla Board per driver A4988-DRV8825 si sono utilizzati:

  • La scheda di controllo Keyestudio PLUS (codice KS0486 ) compatibile con la Arduino UNO, è prodotta dalla Keyestudio ed è completamente compatibile con l’ambiente di sviluppo Arduino IDE.
    Vedere articolo Scheda Keyestudio PLUS KS0486
  • Un convertitore DC/DC step-down in grado di convertire una tensione continua d’ingresso compresa tra 5 e 23 volt, in una tensione continua di uscita da 0 a 16,5 volt, con una corrente massima di 2 A (3 A di picco). Vedere articolo MP2307 Convertitore DC-DC Step-Down regolabile
  • Piccolo motore passo-passo NEMA-11 che genera 600 g-cm di coppia di mantenimento a 0,67 A. La versione provata è fornito con l’albero posteriore esposto, quindi è possibile montare un encoder o un accoppiatore dell’albero. Il motore ha una velocità massima di circa 426 RPM.

Scheda Keyestudio PLUS KS0486

MP2307 DC-DC Step-Down regolabile

Caratteristiche del motore 28STH32 NEMA-11

 

Schema dei collegamenti

Sotto lo schema utilizzato, come detto nell’articolo, non è necessario collegare il pin Enable in quanto questo risulta già collegato a massa, per cui il modulo è già abilitato.

Controllo rotazione del motore passo-passo

Sotto è riportato il codice che fa effettuare al motore una rotazione completa dell’albero, prima in un senso e poi in senso opposto. Il primo in senso orario e poi antiorario. Nel caso non  fosse così probabilmente il connettore è inserito in moto errato, provate ad invertirlo.
Il valore inserito per la variabile stepsPerRevolution pari a 200 deriva dal fatto che il motore utilizzato ha un angolo per passo intero pari a 1,8 °, per cui 360 / 1,8= 200 numero di passi per giro

Angolo del passo intero Numero di divisioni del giro
7,5° 48
3,6° 100
1,8° 200
0,9° 400

Il valore di 200 è valido per il passo intero, se si modifica l’impostazione del DIP switch occorre modificare il valore inserito per avere una rotazione completa

Rotazione del motore passo-passo utilizzando la libreria AccelStepper

Lo schizzo seguente aggiungerà accelerazione e decelerazione ai movimenti del motore passo-passo.
Per funzionare occorrerà scaricare la libreria  chiamata “AccelStepper“, per informazioni sulla libreria vedere il link.


Per altre informazioni su come installare le librerie vedete l’articolo Arduino – Tutorial, come installare una libreria.
Il motore funzionerà avanti e indietro con una velocità di 200 passi al secondo e un’accelerazione di 30 passi al secondo.

Controllo rotazione con potenziometro

La velocità di rotazione può essere controllata anche tramite un potenziometro. In questo caso il variare della tensione letta dal pin analogico varierà il valore utilizzato come ritardo.
La funzione utilizzata e il comando map con la seguente sintassi

map(variabile,daMin,daMax,aMin,aMax)

La funzione map richiede in input i seguenti parametri:

  • La variabile che conterrà il valore “mappato”.
  • l minimo valore dell’intervallo da cui si vuole partire. Nel nostro caso 0
  • Il massimo valore dell’intervallo da cui si vuole partire. Nel nostro caso 1023
  • Il minimo valore dell’intervallo in cui si vuole convertire. Nel nostro caso il valore minimo degli step
  • Il massimo valore dell’intervallo in cui si vuole convertire. Nel nostro caso il valore massimo degli step

 

 

Altra scheda per controllo motori stepper

Sotto è visibile la scheda CNC SHIELD V3 per A4988/ DRV8825 Controller, si tratta di uno shield per Arduino compatibile con  i driver controller tipo A4988 o DRV8825.
Viene utilizzata di solito per realizzare piccole macchine CNC o 3D printer.
Per informazioni vedere l’articolo CNC SHIELD V3 per A4988/ DRV8825 Controller