BigEasyDriver arduino e pulsanti

Da tempo ho sentito parlare di questo driver e finalmente ho trovato l’occasione di acquistare e testare il BigEasyDriver con arduino e dei pulsanti.

BigEasyDriver

L’esperimento che ho eseguito è simile a quello che già ti ho mostrato con la sorella minore: EasyDriver che qualche settimana fa ho bruciato nel tentativo di testare i suoi limiti con motori molto potenti.

Il collegamento della BigEasyDriver

Lo schema delle connessioni è indicato sul sito ufficiale:

BigEasyDriver

ho riprodotto il collegamento utilizzando anche arduino e cinque pulsanti con cui regolare sia il taglio dei passi ( full,half,quarter,eighth ) sia il verso di rotazione, ed ho realizzato un video del montaggio:

Oltre al video puoi consultare le foto per verificare i collegamenti del motore alla BigEasyDriver:

BigEasyDriver passo-passo

e dei pulsanti ad Arduino:

BigEasyDriver pulsanti

Ricorda che ciascun pulsant ha una resistenza di 33ohm verso il polo negativo che ti serve ad evitare di mandare in corto circuito arduino alla pressione del pulsante stesso.

Caratteristiche della BigEasyDriver

Puoi leggere il Datasheet ufficiale della sparkfun sul driver da loro realizzato tuttavia alcune caratteristiche principali sono:

  • Massimo 2A per Phase
  • Massimo Voltaggio: 35V
  • Regolatore di alimentazione 5V/3.3V già sulla BigEasyDriver
queste caratteristiche ti indicano i livelli massimi di funzionamento del driver e ti indicano la possibilità di ricavare già dal driver i 5v con cui alimentare Arduino, vedrai che quando eseguo il test arduino è scollegato dal Pc/Mac, ed alimentato dalla BigEasyDriver.

inoltre la BigEasyDriver è in grado di gestire in completa autonomia anche frazioni di passo ossia il 1/2 passo, il 1/4 di passo, l’1/8 di passo ed il 1/16 di passo semplicemente portando ad HIGH o LOW i valori di MS1,MS2 ed MS3 secondo lo schema:

BigEasyDriver passi

per il test puoi collegare questi pin ad arduino, rispettivamente ai pin 9,10 ed 11 e collegare 3 pulsanti ai pin 4,5,6 normalmente collegati al pin negativo mediante la resistenza da 330ohm e quindi LOW che alla pressione portano i pin arduino al valore HIGH.

Il compito di arduino in questo caso è solo quello di trasferire tale valore al pin MSx corrispondente.

Sketch di test della BigEasyDriver

int DIR  = 2;
int STEP = 3;

int pinMS1 = 4;
int pinMS2 = 5;
int pinMS3 = 6;
int pinDir = 7;
int pinGo  = 8;

int MS1  = 9;
int MS2  = 10;
int MS3  = 11;

void setup() {
  pinMode(DIR, OUTPUT);
  pinMode(STEP, OUTPUT);
  pinMode(MS1, OUTPUT);
  pinMode(MS2, OUTPUT);
  pinMode(MS3, OUTPUT);

  pinMode( pinDir,INPUT );
  pinMode( pinGo,INPUT );
  pinMode( pinMS1,INPUT );
  pinMode( pinMS2,INPUT );
  pinMode( pinMS3,INPUT );
}

void loop()
{
    digitalWrite(MS1, digitalRead( pinMS1 ) );
    digitalWrite(MS2, digitalRead( pinMS2 ) );
    digitalWrite(MS3, digitalRead( pinMS3 ) );
    digitalWrite(DIR,digitalRead( pinDir ));

    if ( digitalRead( pinGo ) == HIGH ) {
      stepGo();
      delay(1);
    }
}

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

Troverai molte similitudini con precedenti sketch utilizzati per il test di driver simili, tuttavia ci sono alcune differenze che ti elenco:

linee 01-02: definisci i pin a cui hai collegato i segnali di DIR ( direzione ) e STEP ( passo );

linee 04-08: definisci i pin a cui hai collegato i pin dei pulsanti, 4,5,6 per MSx, 7 per il pin con cui scegli la direzione e 8 per il pin che attiva la rotazione;

linee 10-12: imposta i pin a cui hai collegato i terminale MS1,2 e 3 della BigEasyDriver;

linee 15-19: attiva la modalità OUTPUT per i pin DIR,STEP,MS1,MS2,MS3 che inviano i comandi al driver;

linee 21-25: attiva i pin relativi ai 5 pulsanti in modalità INPUT;

linee 30-32: per ciascun pin di INPUT connesso ai pulsanti MS1,MS2 ed MS3 leggi con il comento digitalRead() il suo valore e invialo al pin di OUTPUT corrispondente con il comendo digitalWrite();

linea 33: leggi il valore del pulsante DIR ed  invialo al rispettivo pin STEP, otterrai che premendo o rilasciando il pulsante connesso al pin 7 il motore ruoterà in senso orario o antiorario;

linea 35: alla pressione del pulsante pinGo ( 8 ) il valore letto dal comando digitalRead() passerà a HIGH e la condizione sarà verificata eseguendo quando definito tra l parentesi graffe;

linea 36: richiama la funzione stepGo() che impartisce il comando al driver;

linea 37: attendi 1 millisecondo per consentire al motore di eseguire il passo prima di ricominciare il coclo di loop();

linee 41-46: definisci la funzione di tipo void stepGo() il cui scopo è far avanzare il motore di un passo ogni volta che viene invocata. Per impartire tale comando utilizza digitalWrite() intervallato da tempo in microsecondi di 100. Il passaggio da HIGH a LOW del pin STEP indica al motre di eseguire un passo ( step ).

Il video del test

Puoi vedere il test di funzionamento del driver nel video seguente:

Ora sai come utilizzare al meglio il BigEasyDriver per il tuo progetto. Puoi iniziare a sperimentare e scrivere il tuo sketch di progetto.

Buon divertimento !!!

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/elettronica/bigeasydriver-arduino-e-pulsanti.html

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.